poset: Remove IncoherentInstances and define our own Ord class.
commit10a3ee3ea93c713aca5604f7c0c6a897a3d75e2f
authorNick Bowler <nbowler@draconx.ca>
Mon, 23 Nov 2009 00:29:17 +0000 (22 19:29 -0500)
committerNick Bowler <nbowler@draconx.ca>
Mon, 23 Nov 2009 00:38:02 +0000 (22 19:38 -0500)
treec558194bafa4dede302dd8c7a04ca3fafb0bbb58
parentef2e57811e9ca2fa38244aad567169f74882827c
poset: Remove IncoherentInstances and define our own Ord class.

The "every Ord is a Poset" logic turned out to cause major problems when
trying to define instances of a class such as

  class Poset a => Fooable a.

The result was that the type checker still tried to find an Ord instance
even when a Poset instance was available.

So we flip the logic around and create our own Ord class, then say
"Every instance of Ord is an instance of Prelude.Ord".  This means we
need to manually add Poset instances for everything, but it should solve
most issues.
Data/Floating/Instances.hs
Data/Poset.hs
Data/Poset/Instances.hs [new file with mode: 0644]
Data/Poset/Internal.hs
altfloat.cabal