I see. Maybe there should be a separate function

efficientConstrEq :: Constr -> Constr -> Bool

so that people don't get confused with the standard Eq definition? How
often is the efficient version needed?

In any case, it seems like we should document the fact that the Constr
Eq instance doesn't work in the usual way.

Frederik

On Thu, Dec 29, 2005 at 11:23:15AM -0800, Ralf Lammel wrote:
> As of today, this is done so to be efficient.
> You can easily compare the data types of the constructors to further
> constrain equivalence, when this is necessary, while the base check only
> compares an Integer value for the constructors.
> Ralf
> 
> 
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> [mailto:glasgow-haskell-
> > [EMAIL PROTECTED] On Behalf Of Frederik Eaton
> > Sent: Thursday, December 29, 2005 10:57 AM
> > To: glasgow-haskell-bugs@haskell.org
> > Subject: Constr and Eq
> > 
> > > toConstr True
> > True
> > > toConstr [()]
> > (:)
> > > toConstr True == toConstr [()]
> > True
> > > show (toConstr True) == show (toConstr [()])
> > False
> > 
> > I don't understand the utility of Constr's Eq definition. It isn't
> > really documented though. Why return True when the constructors being
> > compared are different? Am I supposed to use (show.toConstr) to
> > compare constructors?
> > 
> > Here is the documentation I could find:
> > 
> > data Constr
> > Representation of constructors
> > Instances
> > Show Constr
> > Eq Constr
> > 
> > This is ghc 6.4.1.
> > 
> > Thanks,
> > 
> > Frederik
> > _______________________________________________
> > Glasgow-haskell-bugs mailing list
> > Glasgow-haskell-bugs@haskell.org
> > http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
> 
_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to