0 | ||| Interact with Standard library
 1 | module Control.Eff.Interface
 2 |
 3 | import Control.MonadRec
 4 | import Control.Monad.Free
 5 | import Data.Union
 6 | import Control.Eff.Internal
 7 |
 8 | export
 9 | Has IO fs => HasIO (Free (Union fs)) where
10 |    liftIO = send
11 |
12 | export
13 | Has f fs => Cast (f t) (Eff fs t) where
14 |   cast = send
15 |
16 | export
17 | Subset fs fs' => Cast (Eff fs a) (Eff fs' a) where
18 |   cast = lift
19 |