[Haskell-cafe] Re: Improved documentation for Bool

ajb at spamcop.net ajb at spamcop.net
Mon Jan 19 19:22:07 EST 2009


G'day all.

On Mon, 2009-01-19 at 19:33 +0000, Andrew Coppin wrote:

>> My only problem with it is that it's called Bool, while every other
>> programming language on Earth calls it Boolean. (Or at least, the
>> languages that *have* a name for it...)

Jonathan Cast commented:

> Except C++?

And perhaps more to the point, "Boolean" is an adjective, not a noun.
Therefore, it would be better reserved for a typeclass.

class (PartialOrder a) => JoinSemilattice a where
     (||) :: a -> a -> a

class (MeetSemilattice a) => BoundedJoinSemilattice a where
     bottom :: a

class (PartialOrder a) => MeetSemilattice a where
     (&&) :: a -> a -> a

class (MeetSemilattice a) => BoundedMeetSemilattice a where
     top :: a

class (BoundedJoinSemilattice a, BoundedMeetSemilattice a) => Heyting a where
     implies :: a -> a -> a

     not :: a -> a
     not x = x `implies` bottom

class (Heyting a) => Boolean a where
     {- the additional axiom that x || not x == top -}

Cheers,
Andrew Bromage


More information about the Haskell-Cafe mailing list