{- - Copyright (C) 2009-2010 Nick Bowler. - - License BSD2: 2-clause BSD license. See LICENSE for full terms. - This is free software: you are free to change and redistribute it. - There is NO WARRANTY, to the extent permitted by law. -} -- | 'Poset' for instances of 'Prelude.Ord' {-# LANGUAGE CPP #-} module Data.Poset.Instances where import qualified Data.Poset.Internal as Poset import Data.Poset.Internal (Poset, partialOrder) import Data.Ratio import Data.List import Data.Word import Data.Int #define POSET_ORD_INSTANCE(ctx, v) instance ctx Poset (v) where { \ posetCmp = (partialOrder .) . compare; \ (<==>) = const $ const True; \ () = const $ const False } POSET_ORD_INSTANCE(, Bool) POSET_ORD_INSTANCE(, Char) POSET_ORD_INSTANCE(, Int) POSET_ORD_INSTANCE(, Int8) POSET_ORD_INSTANCE(, Int16) POSET_ORD_INSTANCE(, Int32) POSET_ORD_INSTANCE(, Int64) POSET_ORD_INSTANCE(, Word) POSET_ORD_INSTANCE(, Word8) POSET_ORD_INSTANCE(, Word16) POSET_ORD_INSTANCE(, Word32) POSET_ORD_INSTANCE(, Word64) POSET_ORD_INSTANCE(, Integer) POSET_ORD_INSTANCE(Integral a =>, Ratio a)