{-# 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