[Haskell-cafe] unification would give infinite type

Rafael verganic at gmail.com
Tue Dec 4 09:52:45 EST 2007


Hi Emil,  I'm beginning in monad area...

I don't know about monomorphis restriction, but foldM works, a lot of thanks...
Matias.... tnks too, i'm conscious about "return" in the monadic chain.

thnks.

On Dec 4, 2007 12:00 PM, Emil Axelsson <emax at cs.chalmers.se> wrote:
> Hi,
>
> Depending on what you want, you should either remove 'return' or change to
> 'foldM' (from Control.Monad). If you choose the latter, you also need to add a
> type signature to f (because of the monomorphism restriction).
>
> / Emil
>
>
>
>
> On 2007-12-04 14:43, Rafael wrote:
> > Hi... I give this error using hugs for the code:
> >
> > ---------------------------------------------------
> > f = foldl (\x y -> add x y) 0 [1,2,3]
> > add x y = return (x + y)
> > ---------------------------------------------------
> > I try:
> >
> > f = foldl (\x y -> counter x y) (return 0) [1,2,3]
> >
> > but it dont solve,  and with ghci:
> >
> > "
> >     Occurs check: cannot construct the infinite type: b = m b
> >       Expected type: b
> >       Inferred type: m b
> >     In the expression: add x y
> >     In a lambda abstraction: \ x y -> add x y
> > "
> >
> > thnks.
> >
> > att
> > Rafael
> > _______________________________________________
> > Haskell-Cafe mailing list
> > Haskell-Cafe at haskell.org
> > http://www.haskell.org/mailman/listinfo/haskell-cafe
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>


More information about the Haskell-Cafe mailing list