{-# 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
	Boolean
True == :: Boolean -> Boolean -> Boolean
== Boolean
True = Boolean
True
	Boolean
False == Boolean
False = Boolean
True
	Boolean
_ == Boolean
_ = Boolean
False

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

instance Setoid Ordering where
	Ordering
Less == :: Ordering -> Ordering -> Boolean
== Ordering
Less = Boolean
True
	Ordering
Equal == Ordering
Equal = Boolean
True
	Ordering
Greater == Ordering
Greater = Boolean
True
	Ordering
_ == Ordering
_ = Boolean
False

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