@@ -16,35 +16,35 @@ record RWST : Type -> Type -> Type -> (Type -> Type) -> Type -> Type where
1616 (runRWST : r -> s -> m (a, s, w)) -> RWST r w s m a
1717
1818instance Monad m => Functor (RWST r w s m) where
19− map f (MkRWST m) = MkRWST $ \r => \s => do (a, s', w) <- m r s
20− return (f a, s', w)
19+ map f (MkRWST m) = MkRWST $ \r,s => do (a, s', w) <- m r s
20+ return (f a, s', w)
2121
2222instance (Monoid w, Monad m) => Applicative (RWST r w s m) where
23− pure a = MkRWST $ \_ => \s => return (a, s, neutral)
24− (MkRWST f) <$> (MkRWST v) = MkRWST $ \r => \s => do (a, s', w) <- v r s
25− (fn, ss, w') <- f r s
26− return (fn a, ss, w <+> w)
23+ pure a = MkRWST $ \_,s => return (a, s, neutral)
24+ (MkRWST f) <$> (MkRWST v) = MkRWST $ \r,s => do (a, s', w) <- v r s
25+ (fn, ss, w') <- f r s
26+ return (fn a, ss, w <+> w)
2727
2828instance (Monoid w, Monad m) => Monad (RWST r w s m) where
29− (MkRWST m) >>= k = MkRWST $ \r => \s => do (a, s', w) <- m r s
30− let MkRWST ka = k a
31− (b, ss, w') <- ka r s'
32− return (b, ss, w <+> w')
29+ (MkRWST m) >>= k = MkRWST $ \r,s => do (a, s', w) <- m r s
30+ let MkRWST ka = k a
31+ (b, ss, w') <- ka r s'
32+ return (b, ss, w <+> w')
3333
3434instance (Monoid w, Monad m) => MonadReader r (RWST r w s m) where
35− ask = MkRWST $ \r => \s => return (r, s, neutral)
36− local f (MkRWST m) = MkRWST $ \r => \s => m (f r) s
35+ ask = MkRWST $ \r,s => return (r, s, neutral)
36+ local f (MkRWST m) = MkRWST $ \r,s => m (f r) s
3737
3838instance (Monoid w, Monad m) => MonadWriter w (RWST r w s m) where
39− tell w = MkRWST $ \_ => \s => return ((), s, w)
40− listen (MkRWST m) = MkRWST $ \r => \s => do (a, s', w) <- m r s
41− return ((a, w), s', w)
42− pass (MkRWST m) = MkRWST $ \r => \s => do ((a, f), s', w) <- m r s
43− return (a, s', f w)
39+ tell w = MkRWST $ \_,s => return ((), s, w)
40+ listen (MkRWST m) = MkRWST $ \r,s => do (a, s', w) <- m r s
41+ return ((a, w), s', w)
42+ pass (MkRWST m) = MkRWST $ \r,s => do ((a, f), s', w) <- m r s
43+ return (a, s', f w)
4444
4545instance (Monoid w, Monad m) => MonadState s (RWST r w s m) where
46− get = MkRWST $ \_ => \s => return (s, s, neutral)
47− put s = MkRWST $ \_ => \_ => return ((), s, neutral)
46+ get = MkRWST $ \_,s => return (s, s, neutral)
47+ put s = MkRWST $ \_,_ => return ((), s, neutral)
4848
4949instance (Monoid w, Monad m) => MonadRWS r w s (RWST r w s m) where {}
5050