{-
- Copyright (C) 2009 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.
-}-- | Top level module for alternative floating point support.moduleData.Floating(Double,Float,moduleData.Floating.Classes,moduleData.Floating,toFloating)whereimportPreludehiding(RealFloat(..),Double,Float)importData.Floating.ClassesimportData.Floating.InstancesimportData.Floating.DoubleimportData.Floating.TypesimportControl.MonadisInfinite::RealFloata=>a->BoolisInfinite=(==FPInfinite).classifyisNaN::RealFloata=>a->BoolisNaN=(==FPNaN).classifyisNormal::RealFloata=>a->BoolisNormal=(==FPNormal).classifyisSubNormal::RealFloata=>a->BoolisSubNormal=(==FPSubNormal).classifyisFinite::RealFloata=>a->BoolisFinite=not.liftM2(||)isInfiniteisNaNisNegativeZero::RealFloata=>a->BoolisNegativeZero=liftM2(&&)((==FPZero).classify)((==(-1)).signum)