
On Mon, Oct 23, 2006 at 10:43:36PM +0100, Conor McBride wrote:
This is one thing we've got that we shouldn't flaunt. If I can't have Zero, please may I have
data Naught
naughty :: Naught -> y
innocent :: Functor f => f Naught -> f x
or some such?
I am liking the 'Void' idea proposed earlier, so we have
module Data.Void where
data Void deriving(Typeable,Data,Eq,Ord,...) -- ^ a lot of valid classes -- are defined for _|_
fromVoid :: forall a . Void -> a fromVoid = unsafeCoerce#
as a bonus, with void, we get to be reminded of b-movie titles like this friday, at your local theater: "BEWARE! the catamorph from the VOID!" I am not sure what a catamorph would be, depending on whether it is preceded by cuddly or deadly I'd say a sidekick on thundercats or a metamorphic feline killing machine. speaking of which, there should be a contest among category theorists to come up with the best definition for a 'Xenomorphism'. I am not sure what it would be, but I doubt it would be structure preserving.. John -- John Meacham - ⑆repetae.net⑆john⑈