[Haskell-cafe] About "Fun with type functions" example

Daniel Peebles pumpkingod at gmail.com
Thu Nov 18 19:07:19 EST 2010


The best you can do with fromInt is something like Int -> (forall n. (Nat n)
=> n -> r) -> r, since the type isn't known at compile time.

On Thu, Nov 18, 2010 at 2:52 PM, Arnaud Bailly <arnaud.oqube at gmail.com>wrote:

> Thanks a lot, that works perfectly fine!
> Did not know this one...
> BTW, I would be interested in the fromInt too.
>
> Arnaud
>
> On Thu, Nov 18, 2010 at 8:22 PM, Erik Hesselink <hesselink at gmail.com>
> wrote:
> > On Thu, Nov 18, 2010 at 20:17, Arnaud Bailly <arnaud.oqube at gmail.com>
> wrote:
> >> Hello,
> >> I am trying to understand and use the Nat n type defined in the
> >> aforementioned article. Unfortunately, the given code does not compile
> >> properly:
> >
> > [snip]
> >
> >> instance (Nat n) => Nat (Succ n) where
> >>  toInt   _ = 1 + toInt (undefined :: n)
> >
> > [snip]
> >
> >> And here is the error:
> >>
> >> Naturals.hs:16:18:
> >>    Ambiguous type variable `n' in the constraint:
> >>      `Nat n' arising from a use of `toInt' at Naturals.hs:16:18-39
> >>    Probable fix: add a type signature that fixes these type variable(s)
> >
> > You need to turn on the ScopedTypeVariables extension (using {-#
> > LANGUAGE ScopedTypeVariables #-} at the top of your file, or
> > -XScopedTypeVariables at the command line). Otherwise, the 'n' in the
> > class declaration and in the function definition are different, and
> > you want them to be the same 'n'.
> >
> > Erik
> >
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20101118/a9497c63/attachment.html


More information about the Haskell-Cafe mailing list