Hi Garrett,

> I get an error "No instance for (Fractional a) arising from the use of
> '/'"  This seems odd to me, since Div is constrained to have
> fractional arguments.  Is there something obvious I'm missing?

Unless GADTs are handled specially, and I don't think they are in this case, this problem is not specific to GADTs but related to how
type constraints on constructors are handled in general. Basically, a
constraint on a constructor has no effect beyond beyond constraining what the constructor can be applied to (see the Haskell 98 report 4.2.1). In particular, when you take a constructed value apart through
pattern matching, the constraints do not come into play: hence the "no
instance" message.

It has been suggested a number of times that constraints on
constructors should have a more profound meaning, and
maybe GADTs make this even more desirable, as your example suggest.

Best regards,

/Henrik

--
Henrik Nilsson
School of Computer Science and Information Technology
The University of Nottingham
[EMAIL PROTECTED]


This message has been checked for viruses but the contents of an attachment
may still contain software viruses, which could damage your computer system:
you are advised to perform your own checks. Email communications with the
University of Nottingham may be monitored as permitted by UK legislation.

_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to