packages feed

pandora-0.3.0: Pandora/Paradigm/Primary/Object.hs

{-# OPTIONS_GHC -fno-warn-orphans #-}

module Pandora.Paradigm.Primary.Object (module Exports) where

import Pandora.Paradigm.Primary.Object.Ordering as Exports
import Pandora.Paradigm.Primary.Object.Boolean as Exports

import Pandora.Pattern.Object.Setoid (Setoid ((==)))
import Pandora.Pattern.Object.Chain (Chain ((<=>)))

instance Setoid Boolean where
	True == True = True
	False == False = True
	_ == _ = False

instance Chain Boolean where
	True <=> True = Equal
	True <=> False = Greater
	False <=> True = Less
	False <=> False = Equal

instance Setoid Ordering where
	Less == Less = True
	Equal == Equal = True
	Greater == Greater = True
	_ == _ = False

instance Chain Ordering where
	Less <=> Less = Equal
	Less <=> Equal = Less
	Less <=> Greater = Less
	Equal <=> Less = Greater
	Equal <=> Equal = Equal
	Equal <=> Greater = Equal
	Greater <=> Less = Greater
	Greater <=> Equal = Greater
	Greater <=> Greater = Equal