-- instance Monad m => MonadFree (Command i o) (DSL i o m) where
--     wrap = _

send :: Monad m => o -> DSL i o m ()
send x = liftF (Send x ())
send :: Monad m => o -> DSL i o m ()
send x = liftF (Send x ())
send x = liftF (Send x ())