[project @ 1998-12-02 13:17:09 by simonm]
[ghc-hetmet.git] / ghc / interpreter / test / typechecker / t005.hs
1 --!!! Test for error in type error message (fixed in Hugs 1.4)
2 module TyErr where
3
4 newtype StateMonad m s a = MkStateMonad (s -> (m (s, a)))
5
6 instance Monad m => Monad (StateMonad m s) where
7     (>>=) (MkStateMonad fn1) f
8         = MkStateMonad (\st -> (do res <- fn1 st
9                                    case res of
10                                        (st', res') -> extrStateMonad (f res') st'))
11     return val = MkStateMonad (\st -> (return (st, val)))
12                            
13 extrStateMonad (MkStateMonad f) = f
14
15 getState :: Monad m => StateMonad m s s
16 getState = MkStateMonad (\st -> return (st, st))
17
18 -- popIndentList :: StateMonad IO Int ()
19 popIndentList = 
20     (do getState
21         return ())