Motor.FSM
class MonadFSM m
data Name n
data n :-> a
data To a b
data Add s
data Delete s
type family FromActions (as :: [*]) (rs :: Row *) :: Row * where ...
type NoActions m r a
type Actions m as r a
type OnlyActions m as a
type i !--> o
type n !+ s
type n !- s
data FSM m i o a
runFSM