@@ -0,0 +1,28 @@
4+import Control.Monad.Eff
6+newtype T a = T (Eff (trace :: Trace) a)
8+runT :: forall a. T a -> Eff (trace :: Trace) a
11+instance functorT :: Functor T where
12+ (<$>) f (T t) = T (f <$> t)
14+instance applyT :: Apply T where
15+ (<*>) (T f) (T x) = T (f <*> x)
17+instance applicativeT :: Applicative T where
20+instance bindT :: Bind T where
21+ (>>=) (T t) f = T (t >>= \x -> runT (f x))
23+instance monadT :: Monad T