Just after hitting the button send, it appeared to me that fromInt was not obvious at all, and probably impossible. Not sure I understand your answer though: What would be the second parameter (forall n . (Nat n) => n -> r) -> r) ?
Thanks Arnaud On Fri, Nov 19, 2010 at 1:07 AM, Daniel Peebles <pumpkin...@gmail.com> wrote: > 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.oq...@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 <hessel...@gmail.com> >> wrote: >> > On Thu, Nov 18, 2010 at 20:17, Arnaud Bailly <arnaud.oq...@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@haskell.org >> http://www.haskell.org/mailman/listinfo/haskell-cafe > > _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe