Oh....
You are correct... I thought from "Num numberType => SquareConstructor numberType" We could deduce that (in English rather than get Haskell and FOL confusion) all values of "SquareConstructor a"....the type of a would have be be in class Num?.. is this not correct?....if not....why not? ________________________________ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of David Menendez Sent: 21 December 2007 17:05 To: Nicholls, Mark Cc: Jules Bean; haskell-cafe@haskell.org Subject: Re: [Haskell-cafe] nice simple problem for someone struggling.... On Dec 21, 2007 11:50 AM, Nicholls, Mark <[EMAIL PROTECTED]> wrote: Now I have.... module Main where data SquareType numberType = Num numberType => SquareConstructor numberType This is a valid declaration, but I don't think it does what you want it to. The constraint on numberType applies only to the data constructor. That is, given an unknown value of type SquareType a for some a, we do not have enough information to infer Num a. For your code, you want something like: instance (Num a) => ShapeInterface (SquareType a) where area (SquareConstructor side) = side * side -- Dave Menendez <[EMAIL PROTECTED]> <http://www.eyrie.org/~zednenem/ >
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe