> the following instance declaration doesn't work any
> more with ghc-5.02.3, it worked before.
> 
> > newtype ST state a = ST { unST :: state -> (a,state) }
> > 
> > instance Monad (ST c) where
> >  return x  = ST (\state -> (x,state))  
> > (m >>= f) = ST (\state -> let (x,state1) = unST m state
> >                               (y,state2) = unST (f x) state1
> >                           in (y,state2)) 
> 
> Error message:
>     Can't handle multiple methods defined by one pattern binding
>       (m >>= f)
>           = ST (\ state
>                     -> let
>                          (y, state2) = ...
>                          (x, state1) = ...
>                        in (y, state2))
> 
> What can I do instead?

Remove the parentheses on the left hand side - that's not legal Haskell
98.  The error message is a bit cryptic though, the renamer should
really spot that it isn't a valid pattern binding first.

Cheers,
        Simon
_______________________________________________
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to