Control.Ether.Abbr
data tag --> r
data tag <-- w
data tag <-> s
data tag -!- e
type family Ether (abbrs :: [*]) m :: Constraint where ...
type family ReifyAbbr (abbr :: *) (m :: * -> *) :: Constraint