module System.IO.Order (
newMinimum,
newMaximum,
newAfter,
newBefore
) where
import Data.Order
import Data.Order.Internals (OrderRep, newOrderRep)
import qualified Data.Order.Internals as Internals
import Data.Order.Raw.Algorithm
import System.IO.Unsafe
newMinimum :: IO (Element Global)
newMinimum = Internals.newMinimum globalOrderRep
newMaximum :: IO (Element Global)
newMaximum = Internals.newMaximum globalOrderRep
newAfter :: Element Global -> IO (Element Global)
newAfter elem = Internals.newAfter elem globalOrderRep
newBefore :: Element Global -> IO (Element Global)
newBefore elem = Internals.newBefore elem globalOrderRep
globalOrderRep :: OrderRep Global
globalOrderRep = unsafePerformIO $ newOrderRep defaultRawAlgorithm