stricter Enabled

This commit is contained in:
Evgeny Poberezkin
2020-07-10 14:50:52 +01:00
parent b19b5be50e
commit 283eacd9a5
2 changed files with 7 additions and 5 deletions
+1
View File
@@ -17,6 +17,7 @@ ghc-options:
- -Wredundant-constraints
- -Wincomplete-record-updates
- -Wincomplete-uni-patterns
- -Wunused-type-patterns
dependencies:
- aeson
@@ -45,7 +45,7 @@ $( singletons
)
type family HasState (p :: Party) (s :: ConnState) :: Constraint where
HasState Recipient s = ()
HasState Recipient _ = ()
HasState Broker None = ()
HasState Broker New = ()
HasState Broker Secured = ()
@@ -55,10 +55,11 @@ type family HasState (p :: Party) (s :: ConnState) :: Constraint where
HasState Sender Confirmed = ()
HasState Sender Secured = ()
type Enabled rs bs =
( (rs == New || rs == Pending || rs == Confirmed || rs == Secured) ~ True,
(bs == New || bs == Secured) ~ True
)
type family Enabled (rs :: ConnState) (bs :: ConnState) :: Constraint where
Enabled New New = ()
Enabled Pending New = ()
Enabled Confirmed New = ()
Enabled Secured Secured = ()
type PartyCmd = (Party, ConnState, ConnState)