h*wj]      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                                                                                                                                                                                 0.6.0$Copyright (C) 2009-2011 John GoerzenBSD3$John Goerzen  provisionalportable Safe-Inferred./=lmixed-types-num)How we indicate that there was an error. mixed-types-num?A typeclass that represents something that can be converted. A Convertible a b instance represents an a that can be converted to a b. mixed-types-numConvert a to b, returning Right on success and Left on error. For a simpler interface, see . mixed-types-num$The result of a safe conversion via . mixed-types-numConvert from one type of data to another. Raises an exception if there is an error with the conversion. For a function that does not raise an exception in that case, see .  $Copyright (C) 2009-2011 John GoerzenBSD3$John Goerzen  provisionalportable Safe-Inferred./=mixed-types-numUtility function to perform bounds checking as part of a conversion.Does this be examining the bounds of the destination type, converting to the type of the source via , comparing to the source value. Results in an error if the conversion is out of bounds. mixed-types-numUseful for defining conversions that are implemented in terms of other conversions via an intermediary type. Instead of: instance Convertible CalendarTime POSIXTime where safeConvert a = do r <- safeConvert a safeConvert (r :: ClockTime)we can now write: instance Convertible CalendarTime POSIXTime where safeConvert = convertVia (undefined::ClockTime)which does the same thing -- converts a CalendarTime to a ClockTime, then a ClockTime to a POSIXTime, both using existing  instances.mixed-types-numFunction to do the conversionmixed-types-num Input datamixed-types-numResultmixed-types-num provisionalportable Safe-Inferred./=K5Prelude without operations that clash with MixedTypes(c) Michal KonecnyBSD3mikkonecny@gmail.com experimentalportable Safe-Inferred./=@*):7+,-.51=>?0893/4"Ajk('$GHI BC srpq2 6<;!yz{|}~#%&DfuKT^EFJLMNOPQRSUVWXYZ[\]_`abcdeghilmnovwx@*):7+,-.51=>?0893/4"Ajk('$GHI BC srpq2 6<;!yz{|}~#%&DfuKT^EFJLMNOPQRSUVWXYZ[\]_`abcdeghilmnovwx Safe-Inferred/=!#%Repeat declaration for multiple types(c) Michal KonecnyBSD3mikkonecny@gmail.com experimentalportable Safe-Inferred./="mixed-types-numA toy example of use: class HasTT t where type TT t getTT :: t -> TT t $(declForTypes [[t| Integer |], [t| Int |], [t| Rational |]] ( t -> [d| instance HasTT $t where type TT $t = () getTT _ = () |])) (Fixed-type numeric literals, conversions(c) Michal KonecnyBSD3mikkonecny@gmail.com experimentalportable Safe-Inferred./=(mixed-types-num!A runtime representative of type t>. Used for specialising polymorphic tests to concrete types.mixed-types-numDefine our own ConvertibleExactly since convertible is too relaxed for us. For example, convertible allows conversion from Rational to Integer, rounding to nearest integer. We prefer to allow only exact conversions.mixed-types-num*Restore if-then-else with RebindableSyntaxmixed-types-numReplacement for  using the RebindableSyntax extension. This version of fromInteger arranges that integer literals are always of type /.mixed-types-numReplacement for  using the RebindableSyntax extension. This version of fromRational arranges that rational literals are always of type 2. mixed-types-numHSpec properties that each implementation of CanBeInteger should satisfy.mixed-types-numconversion function mixed-types-numsame-type operation mixed-types-nummixed-type operation mixed-types-numconversion function mixed-types-numsame-type operation mixed-types-nummixed-type operation mixed-types-numsame-type operation mixed-types-nummixed-type operation mixed-types-numsame-type operation mixed-types-nummixed-type operation 99"Bottom-up typed Boolean operations(c) Michal KonecnyBSD3mikkonecny@gmail.com experimentalportable Safe-Inferred./=1+mixed-types-numA type constraint synonym that stipulates that the type behaves very much like Bool, except it does not necessarily satisfy the law of excluded middle, which means that the type can contain a "do-not-know" value or an error. Examples: Bool, Kleenean, CollectErrors Boolmixed-types-numBinary logical  and ( for generalised Booleans. For example:  (Just True) && False = Just False (Just (Just True)) || False = (Just (Just True)) mixed-types-num5Compound type constraint useful for test definition. mixed-types-numThis is negation is both the numeric negation as well as the Boolean negation. Example of non-standard Boolean negation: " negate (Just True) = Just False mixed-types-num*Tests for truth or falsity. Beware, when isCertainlyTrue returns False, it does not mean that the proposition is false. It usually means that we failed to prove the proposition.mixed-types-num6If l is certainly True, then r is also certainly True.mixed-types-num6If l is certainly True, then r is not certainly False.mixed-types-numHSpec properties that each implementation of CanTestCertainly should satisfy.mixed-types-num A synonym of . mixed-types-numHSpec properties that each Boolean implementation of CanNeg should satisfy.mixed-types-num A synonym of . mixed-types-num A synonym of . mixed-types-numHSpec properties that each implementation of CanAndOr should satisfy.mixed-types-numHSpec properties that each implementation of CanAndOr should satisfy.mixed-types-numHSpec properties that each implementation of IsBool should satisfy.!!32 !Bottom-up typed order comparisons(c) Michal KonecnyBSD3mikkonecny@gmail.com experimentalportable Safe-Inferred./=3mixed-types-num-HSpec properties that each implementation of  should satisfy.mixed-types-num-HSpec properties that each implementation of  should satisfy. 444444444444 $Bottom-up typed equality comparisons(c) Michal KonecnyBSD3mikkonecny@gmail.com experimentalportable Safe-Inferred./=8qmixed-types-numHSpec properties that each implementation of HasEq should satisfy.mixed-types-numHSpec properties that each implementation of HasEq should satisfy.mixed-types-num,HSpec property of there-and-back conversion.mixed-types-num Given a list [(a1,b1),(a2,b2),...]' and assuming that at least one of  a1,a2,... is non-zero, pick one of them and return the corresponding pair (ai,bi). If none of  a1,a2,...: is zero, either throws an exception or loops forever.)The default implementation is based on a " instance and is not parallel.mixed-types-numHSpec property checking the validity of unary operations' results.mixed-types-nummixed-types-numA replacement for Prelude's  and . If t1 = t2 and Ord t1, then one can use the default implementation to mirror Prelude's min and max.mixed-types-numHSpec properties that each implementation of CanMinMax should satisfy.mixed-types-numHSpec properties that each implementation of CanMinMax should satisfy.mixed-types-numA replacement for Prelude's . If Num t, then one can use the default implementation to mirror Prelude's abs.mixed-types-numHSpec properties that each numeric implementation of CanNeg should satisfy.mixed-types-numHSpec properties that each implementation of CanAbs should satisfy. (Bottom-up typed addition and subtraction(c) Michal KonecnyBSD3mikkonecny@gmail.com experimentalportable Safe-Inferred./=BHmixed-types-num#A replacement for Prelude's binary .If  CanNeg t2 and CanAdd t1 (NegType t2)6, then one can use the default implementation via a-b = a + (-b).mixed-types-numA replacement for Prelude's . If t1 = t2 and Num t1, then one can use the default implementation to mirror Prelude's +.mixed-types-numHSpec properties that each implementation of CanAdd should satisfy.mixed-types-numHSpec properties that each implementation of CanAdd should satisfy.mixed-types-numHSpec properties that each implementation of CanAddSameType should satisfy.mixed-types-numHSpec properties that each implementation of CanSub should satisfy.mixed-types-numHSpec properties that each implementation of CanSub should satisfy.66-Bottom-up typed multiplication with ring laws(c) Michal KonecnyBSD3mikkonecny@gmail.com experimentalportable Safe-Inferred./=Emixed-types-numA replacement for Prelude's . If t1 = t2 and Num t1, then one can use the default implementation to mirror Prelude's *.mixed-types-numHSpec properties that each implementation of CanMul should satisfy.mixed-types-numHSpec properties that each implementation of CanMul should satisfy.mixed-types-numHSpec properties that each implementation of CanMulSameType should satisfy.  7"Bottom-up typed round, floor, etc.(c) Michal KonecnyBSD3mikkonecny@gmail.com experimentalportable Safe-Inferred./=H[mixed-types-numA replacement for Prelude's  operations, such as round in which the result type is fixed to Integer.If  RealFrac t and CanTestPosNeg t, then one can use the default implementation to mirror Prelude's round, etc.+In other cases, it is sufficient to define .mixed-types-numHSpec properties that each implementation of CanRound should satisfy.mixed-types-numHSpec properties that each implementation of CanRound should satisfy.mixed-types-numHSpec properties that each implementation of CanRound should satisfy.Ring type classes(c) Michal KonecnyBSD3mikkonecny@gmail.com experimentalportable Safe-Inferred./=IBBottom-up typed exponentiation(c) Michal KonecnyBSD3mikkonecny@gmail.com experimentalportable Safe-Inferred./=Krmixed-types-numAbility to detect whether a numeric type is restricted to (a subset of) integers.This is useful eg when checking the arguments of the power operator in the CN instance for power.mixed-types-num#A replacement for Prelude's binary  and .mixed-types-numHSpec properties that each implementation of CanPow should satisfy.88Bottom-up typed division(c) Michal KonecnyBSD3mikkonecny@gmail.com experimentalportable Safe-Inferred./=Mmixed-types-num#A replacement for Prelude's binary . If t1 = t2 and  Fractional t1, then one can use the default implementation to mirror Prelude's /.mixed-types-numHSpec properties that each implementation of CanDiv should satisfy.mixed-types-numHSpec properties that each implementation of CanDiv should satisfy.  7Bottom-up typed division(c) Michal KonecnyBSD3mikkonecny@gmail.com experimentalportable Safe-Inferred./=N)squash generated numbers to a given range(c) Michal KonecnyBSD3mikkonecny@gmail.com experimentalportable Safe-Inferred./=Pmixed-types-numenforceRange (Just l, Just u) a where l < u returns an arbitrary value b with  u < b < l. Moreover, the returned values are distributed roughly evenly if the input values a are distributed roughly evenly in a large neighbourhood of the interval [l,r]. In most cases, when l?0893/4"Ajk('$GHI BC srpq2 6<;!yz{|}~#%&DfuKT^EFJLMNOPQRSUVWXYZ[\]_`abcdeghilmnovwxtt!Order with generic Bool-like type(c) Michal KonecnyBSD3mikkonecny@gmail.com experimentalportable Safe-Inferred./=\  44444432 !"#$#%&'()*+,+-+.+/012345676869:;<=>?@+A+BCDEF6GHIJK4LMNOPQRS TUV TW TX TY TZ[\]^_ T`6a Tb Tc Tdef Tg^h^i Tjekel Tm Tn ToJpJq+r+stutvtwxyz{|}~######################JJJJJJ++++66666HHHHHHHHHHHHEEEEeNNNNNNNNNNNNNN&&&&&&&&&&&&PPPP                                                                                                                                                                                                                                                                                                         6 666HHHHHH ,mixed-types-num-0.6.0-HT9S5QQWf541iFSr1ltROL Numeric.MixedTypes.PreludeHidingMixedTypesNumPreludeData.Convertible.BaseData.Convertible.UtilsData.Convertible.Instances.NumUtils.TH.DeclForTypesNumeric.MixedTypes.LiteralsNumeric.MixedTypes.BoolNumeric.MixedTypes.OrdNumeric.MixedTypes.EqNumeric.MixedTypes.ReduceNumeric.MixedTypes.MinMaxAbsNumeric.MixedTypes.AddSubNumeric.MixedTypes.MulNumeric.MixedTypes.RoundNumeric.MixedTypes.RingNumeric.MixedTypes.PowerNumeric.MixedTypes.DivNumeric.MixedTypes.FieldUtils.Test.EnforceRangeNumeric.MixedTypes.ElementaryNumeric.MixedTypes.ComplexNumeric.OrdGenericBoolmixed-types-numPaths_mixed_types_numPrelude fromInteger fromRationalbaseGHC.Base++ghc-primGHC.PrimseqGHC.Listfilterzip System.IOprint otherwisemap$GHC.EnumenumFrom enumFromThen enumFromToenumFromThenTo>>=>>fmapreturnControl.Monad.FailfailGHC.Real fromIntegral realToFrac toRational<>memptymappendmconcat<*>pure*>BoundedEnumMonadFunctorGHC.ReadReadReal GHC.Float RealFloatGHC.ShowShow MonadFail Applicative Data.FoldableFoldableData.Traversable Traversable SemigroupMonoid GHC.TypesBoolStringCharDoubleFloatInt ghc-bignumGHC.Num.IntegerInteger GHC.MaybeMaybeOrderingRational~IOWord Data.EitherEitherFalseNothingJustTrueLeftRightLTEQGTShowSshowminBoundmaxBoundGHC.ErrerrorerrorWithoutStackTrace undefinedliftA2<*<$=<<idconst.flip$!untilasTypeOfGHC.Numsubtract Data.Maybemaybeheadtaillastinitscanlscanl1scanrscanr1iteraterepeatcycle takeWhile dropWhilespanbreakreverselookupzip3zipWithzipWith3unzipunzip3 showsPrecshowListshowsshowChar showString showParensuccpredtoEnumfromEnum%evenoddgcdlcm floatRadix floatDigits floatRange decodeFloat encodeFloatexponent significand scaleFloatisDenormalizedisNegativeZeroisIEEEatan2 Data.Tuplefstsndcurryuncurry Data.Functor<$>Text.ParserCombinators.ReadPReadS readsPrecreadList readParenlexeither Text.ReadreadsreadfoldMapfoldrfoldlfoldr1foldl1nullelemmapM_ sequence_concat concatMapanyallnotElem Data.OldListlinesunlineswordsunwordsGHC.IO.ExceptionIOError userErrorGHC.IOFilePathioErrorputCharputStrputStrLngetChargetLine getContentsinteractreadFile writeFile appendFilereadLnreadIOtraverse sequenceAmapMsequence-collect-errors-0.1.6.0-7JEyJSxdU33LMjh7mPSzMxNumeric.CollectErrors.TypeclearPotentialErrorsCNcnunCN ConvertErrorconvSourceValueconvSourceType convDestTypeconvErrorMessage Convertible safeConvert ConvertResultconvert convErrorprettyConvertError$fEqConvertError$fReadConvertError$fShowConvertErrorboundedConversion convertVia$fConvertibleIntegerInteger$fConvertibleWord64Char$fConvertibleCharWord64$fConvertibleWord32Char$fConvertibleCharWord32$fConvertibleWord16Char$fConvertibleCharWord16$fConvertibleWord8Char$fConvertibleCharWord8$fConvertibleWordChar$fConvertibleCharWord$fConvertibleInt64Char$fConvertibleCharInt64$fConvertibleInt32Char$fConvertibleCharInt32$fConvertibleInt16Char$fConvertibleCharInt16$fConvertibleInt8Char$fConvertibleCharInt8$fConvertibleIntChar$fConvertibleCharInt$fConvertibleIntegerChar$fConvertibleCharInteger$fConvertibleRatioDouble$fConvertibleDoubleRatio$fConvertibleRatioFloat$fConvertibleFloatRatio$fConvertibleDoubleFloat$fConvertibleFloatDouble$fConvertibleRatioInteger$fConvertibleFloatInteger$fConvertibleDoubleInteger$fConvertibleIntegerRatio$fConvertibleIntegerFloat$fConvertibleIntegerDouble$fConvertibleWord64Integer$fConvertibleIntegerWord64$fConvertibleWord32Integer$fConvertibleIntegerWord32$fConvertibleWord16Integer$fConvertibleIntegerWord16$fConvertibleWord8Integer$fConvertibleIntegerWord8$fConvertibleWordInteger$fConvertibleIntegerWord$fConvertibleInt64Integer$fConvertibleIntegerInt64$fConvertibleInt32Integer$fConvertibleIntegerInt32$fConvertibleInt16Integer$fConvertibleIntegerInt16$fConvertibleInt8Integer$fConvertibleIntegerInt8$fConvertibleIntInteger$fConvertibleIntegerInt$fConvertibleWord64Word32$fConvertibleWord64Word16$fConvertibleWord64Word8$fConvertibleWord64Word$fConvertibleWord64Int64$fConvertibleWord64Int32$fConvertibleWord64Int16$fConvertibleWord64Int8$fConvertibleWord64Int$fConvertibleWord32Word64$fConvertibleWord32Word16$fConvertibleWord32Word8$fConvertibleWord32Word$fConvertibleWord32Int64$fConvertibleWord32Int32$fConvertibleWord32Int16$fConvertibleWord32Int8$fConvertibleWord32Int$fConvertibleWord16Word64$fConvertibleWord16Word32$fConvertibleWord16Word8$fConvertibleWord16Word$fConvertibleWord16Int64$fConvertibleWord16Int32$fConvertibleWord16Int16$fConvertibleWord16Int8$fConvertibleWord16Int$fConvertibleWord8Word64$fConvertibleWord8Word32$fConvertibleWord8Word16$fConvertibleWord8Word$fConvertibleWord8Int64$fConvertibleWord8Int32$fConvertibleWord8Int16$fConvertibleWord8Int8$fConvertibleWord8Int$fConvertibleWordWord64$fConvertibleWordWord32$fConvertibleWordWord16$fConvertibleWordWord8$fConvertibleWordInt64$fConvertibleWordInt32$fConvertibleWordInt16$fConvertibleWordInt8$fConvertibleWordInt$fConvertibleInt64Word64$fConvertibleInt64Word32$fConvertibleInt64Word16$fConvertibleInt64Word8$fConvertibleInt64Word$fConvertibleInt64Int32$fConvertibleInt64Int16$fConvertibleInt64Int8$fConvertibleInt64Int$fConvertibleInt32Word64$fConvertibleInt32Word32$fConvertibleInt32Word16$fConvertibleInt32Word8$fConvertibleInt32Word$fConvertibleInt32Int64$fConvertibleInt32Int16$fConvertibleInt32Int8$fConvertibleInt32Int$fConvertibleInt16Word64$fConvertibleInt16Word32$fConvertibleInt16Word16$fConvertibleInt16Word8$fConvertibleInt16Word$fConvertibleInt16Int64$fConvertibleInt16Int32$fConvertibleInt16Int8$fConvertibleInt16Int$fConvertibleInt8Word64$fConvertibleInt8Word32$fConvertibleInt8Word16$fConvertibleInt8Word8$fConvertibleInt8Word$fConvertibleInt8Int64$fConvertibleInt8Int32$fConvertibleInt8Int16$fConvertibleInt8Int$fConvertibleIntWord64$fConvertibleIntWord32$fConvertibleIntWord16$fConvertibleIntWord8$fConvertibleIntWord$fConvertibleIntInt64$fConvertibleIntInt32$fConvertibleIntInt16$fConvertibleIntInt8$fConvertibleWord64Ratio$fConvertibleRatioWord64$fConvertibleWord32Ratio$fConvertibleRatioWord32$fConvertibleWord16Ratio$fConvertibleRatioWord16$fConvertibleWord8Ratio$fConvertibleRatioWord8$fConvertibleWordRatio$fConvertibleRatioWord$fConvertibleInt64Ratio$fConvertibleRatioInt64$fConvertibleInt32Ratio$fConvertibleRatioInt32$fConvertibleInt16Ratio$fConvertibleRatioInt16$fConvertibleInt8Ratio$fConvertibleRatioInt8$fConvertibleIntRatio$fConvertibleRatioInt$fConvertibleWord64Float$fConvertibleFloatWord64$fConvertibleWord32Float$fConvertibleFloatWord32$fConvertibleWord16Float$fConvertibleFloatWord16$fConvertibleWord8Float$fConvertibleFloatWord8$fConvertibleWordFloat$fConvertibleFloatWord$fConvertibleInt64Float$fConvertibleFloatInt64$fConvertibleInt32Float$fConvertibleFloatInt32$fConvertibleInt16Float$fConvertibleFloatInt16$fConvertibleInt8Float$fConvertibleFloatInt8$fConvertibleIntFloat$fConvertibleFloatInt$fConvertibleWord64Double$fConvertibleDoubleWord64$fConvertibleWord32Double$fConvertibleDoubleWord32$fConvertibleWord16Double$fConvertibleDoubleWord16$fConvertibleWord8Double$fConvertibleDoubleWord8$fConvertibleWordDouble$fConvertibleDoubleWord$fConvertibleInt64Double$fConvertibleDoubleInt64$fConvertibleInt32Double$fConvertibleDoubleInt32$fConvertibleInt16Double$fConvertibleDoubleInt16$fConvertibleInt8Double$fConvertibleDoubleInt8$fConvertibleIntDouble$fConvertibleDoubleInt declForTypesTConvertibleExactlysafeConvertExactly CanBeDoubleHasRationalsWithSample HasRationals CanBeRationalCanBeIntHasIntegersWithSample HasIntegers CanBeIntegerHasIfThenElseSameType HasIfThenElseIfThenElseType ifThenElseintegerintegers fromInteger_fromIntegerWithSample!!length replicatetakedropsplitAtspecCanBeIntegerprintArgsIfFails2intintsrational rationals fromRational_fromRationalWithSampledoubledoublesconvertExactlyconvertExactlyTargetSampletInttInteger tCNInteger tRational tCNRationaltDoubletBooltMaybe tMaybeBooltMaybeMaybeBoolconvertFirstUsingconvertSecondUsing convertFirst convertSecond$fHasIfThenElseCollectErrorst$fHasIfThenElseBoolt $fConvertibleExactlyDoubleDouble$fConvertibleExactlyIntDouble!$fConvertibleExactlyIntegerDouble$fConvertibleExactly(,)Ratio$fConvertibleExactly(,)Ratio0 $fConvertibleExactlyIntegerRatio$fConvertibleExactlyIntRatio$fConvertibleExactlyIntegerInt$fConvertibleExactlyRatioRatio$fConvertibleExactlyIntInt$fConvertibleExactly(,)Integer$fConvertibleExactlyIntInteger"$fConvertibleExactlyIntegerInteger$$fConvertibleExactly(,)CollectErrors%$fConvertibleExactly(,)CollectErrors0'$fConvertibleExactlyDoubleCollectErrors&$fConvertibleExactlyRatioCollectErrors$$fConvertibleExactlyIntCollectErrors($fConvertibleExactlyIntegerCollectErrors%$fConvertibleExactlyBoolCollectErrorsIsBoolCanAndOrSameType CanAndOrWithCanAndOrAsymmetric AndOrTypeand2or2CanAndOrCanTestCertainlyXCanNegSameTypeCanNegNegTypenegateCanTestCertainlyisCertainlyTrueisCertainlyFalseHasBools isNotFalse isNotTruestronglyImplies weaklyImpliesstronglyEquivalentToweaklyEquivalentTospecCanTestCertainlynotspecCanNegBool&&||andor specCanAndOrspecCanAndOrNotMixed specIsBool$fConvertibleExactlyBoolBool$fCanTestCertainlyCollectErrors$fCanTestCertainlyBool$fCanNegCollectErrors $fCanNegBool%$fCanAndOrAsymmetricBoolCollectErrors%$fCanAndOrAsymmetricCollectErrorsBool.$fCanAndOrAsymmetricCollectErrorsCollectErrors$fCanAndOrAsymmetricBoolBoolHasOrderAsymmetricOrderCompareTypelessThan greaterThanleqgeqHasOrderCertainlyAsymmetricHasOrderCertainlyHasOrder><>=<=?>??=??<=?!>!!=!!<=! specHasOrderspecHasOrderNotMixed.$fHasOrderAsymmetricCollectErrorsCollectErrors$fHasOrderAsymmetricDoubleInt$fHasOrderAsymmetricIntDouble!$fHasOrderAsymmetricDoubleInteger!$fHasOrderAsymmetricIntegerDouble $fHasOrderAsymmetricRatioInteger $fHasOrderAsymmetricIntegerRatio$fHasOrderAsymmetricRatioInt$fHasOrderAsymmetricIntRatio$fHasOrderAsymmetricIntegerInt$fHasOrderAsymmetricIntInteger $fHasOrderAsymmetricDoubleDouble$fHasOrderAsymmetricRatioRatio"$fHasOrderAsymmetricIntegerInteger$fHasOrderAsymmetricIntInt$fHasOrderAsymmetric()() CanTestPosNegisCertainlyPositiveisCertainlyNonNegativeisCertainlyNegativeisCertainlyNonPositive'$fHasOrderAsymmetricCollectErrorsDouble'$fHasOrderAsymmetricDoubleCollectErrors&$fHasOrderAsymmetricCollectErrorsRatio&$fHasOrderAsymmetricRatioCollectErrors$$fHasOrderAsymmetricCollectErrorsInt$$fHasOrderAsymmetricIntCollectErrors($fHasOrderAsymmetricCollectErrorsInteger($fHasOrderAsymmetricIntegerCollectErrors$fCanTestPosNegCollectErrors$fCanTestPosNegDouble$fCanTestPosNegRatio$fCanTestPosNegInteger$fCanTestPosNegIntHasEqAsymmetric EqCompareTypeequalTo notEqualToHasEqCertainlyHasEqCertainlyAsymmetricHasEq==/=certainlyEqualTocertainlyNotEqualTonotCertainlyDifferentFrom?==?!==!!/=! specHasEqspecHasEqNotMixedspecConversion+$fHasEqAsymmetricCollectErrorsCollectErrors$fHasEqAsymmetricMaybeMaybe$fHasEqAsymmetricListList$fHasEqAsymmetric(,,,,)(,,,,)$fHasEqAsymmetric(,,,)(,,,)$fHasEqAsymmetric(,,)(,,)$fHasEqAsymmetric(,)(,)$fHasEqAsymmetricDoubleInt$fHasEqAsymmetricIntDouble$fHasEqAsymmetricDoubleInteger$fHasEqAsymmetricIntegerDouble$fHasEqAsymmetricRatioInteger$fHasEqAsymmetricIntegerRatio$fHasEqAsymmetricRatioInt$fHasEqAsymmetricIntRatio$fHasEqAsymmetricIntegerInt$fHasEqAsymmetricIntInteger$fHasEqAsymmetricDoubleDouble$fHasEqAsymmetricRatioRatio$fHasEqAsymmetricIntegerInteger$fHasEqAsymmetricIntInt$fHasEqAsymmetricCharChar$fHasEqAsymmetricBoolBool$fHasEqAsymmetric()()CanPickNonZero pickNonZero CanTestZeroisCertainlyZeroisCertainlyNonZeroCanTestIntegercertainlyNotIntegercertainlyIntegercertainlyIntegerGetIt CanTestFinite isInfiniteisFinite CanTestNaNisNaN CanTestValidisValidspecResultIsValid1specResultIsValid1PrespecResultIsValid2specResultIsValid2PrespecCanTestZerospecCanPickNonZero$$fHasEqAsymmetricCollectErrorsDouble$$fHasEqAsymmetricDoubleCollectErrors#$fHasEqAsymmetricCollectErrorsRatio#$fHasEqAsymmetricRatioCollectErrors!$fHasEqAsymmetricCollectErrorsInt!$fHasEqAsymmetricIntCollectErrors%$fHasEqAsymmetricCollectErrorsInteger%$fHasEqAsymmetricIntegerCollectErrors#$fHasEqAsymmetricCollectErrorsMaybe#$fHasEqAsymmetricMaybeCollectErrors"$fHasEqAsymmetricCollectErrorsBool"$fHasEqAsymmetricBoolCollectErrors$fCanTestNaNCollectErrors$fCanTestNaNRatio$fCanTestNaNInteger$fCanTestNaNDouble$fCanTestFiniteCollectErrors$fCanTestFiniteRatio$fCanTestFiniteInteger$fCanTestFiniteInt$fCanTestFiniteDouble$fCanTestIntegerCollectErrors$fCanTestIntegerDouble$fCanTestIntegerRatio$fCanTestIntegerInt$fCanTestIntegerInteger$fCanTestZeroCollectErrors$fCanTestZeroDouble$fCanTestZeroRatio$fCanTestZeroInteger$fCanTestZeroInt$fCanPickNonZeroCollectErrors$fCanPickNonZeroRatio$fCanPickNonZeroInteger$fCanPickNonZeroIntCanGiveUpIfVeryInaccurategiveUpIfVeryInaccuratenumErrorVeryInaccurate!$fCanGiveUpIfVeryInaccurateDouble $fCanGiveUpIfVeryInaccurateRatio"$fCanGiveUpIfVeryInaccurateInteger$fCanGiveUpIfVeryInaccurateIntCanMinMaxSameType CanMinMaxThisCanMinMaxAsymmetric MinMaxTypeminmax CanMinMaxmaximumminimum specCanMinMaxspecCanMinMaxNotMixed$fCanMinMaxAsymmetricIntegerInt$fCanMinMaxAsymmetricIntInteger!$fCanMinMaxAsymmetricDoubleDouble$fCanMinMaxAsymmetricRatioRatio#$fCanMinMaxAsymmetricIntegerInteger$fCanMinMaxAsymmetricIntInt$fCanMinMaxAsymmetricRatioInt$fCanMinMaxAsymmetricIntRatio!$fCanMinMaxAsymmetricRatioInteger!$fCanMinMaxAsymmetricIntegerRatio/$fCanMinMaxAsymmetricCollectErrorsCollectErrors$fCanMinMaxAsymmetricMaybeMaybe$fCanMinMaxAsymmetricListList $fCanMinMaxAsymmetricDoubleRatio $fCanMinMaxAsymmetricRatioDouble$fCanMinMaxAsymmetricDoubleInt$fCanMinMaxAsymmetricIntDouble"$fCanMinMaxAsymmetricDoubleInteger"$fCanMinMaxAsymmetricIntegerDoubleCanAbsSameTypeCanAbsAbsTypeabs specCanNegNum specCanAbs$fCanNegDouble $fCanNegRatio$fCanNegInteger $fCanNegInt($fCanMinMaxAsymmetricCollectErrorsDouble($fCanMinMaxAsymmetricDoubleCollectErrors'$fCanMinMaxAsymmetricCollectErrorsRatio'$fCanMinMaxAsymmetricRatioCollectErrors%$fCanMinMaxAsymmetricCollectErrorsInt%$fCanMinMaxAsymmetricIntCollectErrors)$fCanMinMaxAsymmetricCollectErrorsInteger)$fCanMinMaxAsymmetricIntegerCollectErrors$fCanAbsCollectErrors$fCanAbsDouble $fCanAbsRatio$fCanAbsInteger $fCanAbsIntCanSubSameType CanSubThisCanSubSubTypesubCanAddSameType CanAddThisCanAddAsymmetricAddTypeaddCanAdd+-sum specCanAddspecCanAddNotMixedspecCanAddSameType specCanSubspecCanSubNotMixed,$fCanAddAsymmetricCollectErrorsCollectErrors$fCanAddAsymmetricMaybeMaybe$fCanAddAsymmetricListList$fCanAddAsymmetricDoubleRatio$fCanAddAsymmetricRatioDouble$fCanAddAsymmetricDoubleInteger$fCanAddAsymmetricIntegerDouble$fCanAddAsymmetricDoubleInt$fCanAddAsymmetricIntDouble$fCanAddAsymmetricRatioInteger$fCanAddAsymmetricIntegerRatio$fCanAddAsymmetricRatioInt$fCanAddAsymmetricIntRatio$fCanAddAsymmetricIntegerInt$fCanAddAsymmetricIntInteger$fCanAddAsymmetricDoubleDouble$fCanAddAsymmetricRatioRatio $fCanAddAsymmetricIntegerInteger$fCanAddAsymmetricIntInt"$fCanSubCollectErrorsCollectErrors$fCanSubMaybeMaybe$fCanSubListList$fCanSubDoubleRatio$fCanSubRatioDouble$fCanSubDoubleInteger$fCanSubIntegerDouble$fCanSubDoubleInt$fCanSubIntDouble$fCanSubRatioInteger$fCanSubIntegerRatio$fCanSubRatioInt$fCanSubIntRatio$fCanSubIntegerInt$fCanSubIntInteger$fCanSubDoubleDouble$fCanSubRatioRatio$fCanSubIntegerInteger$fCanSubIntInt%$fCanAddAsymmetricCollectErrorsDouble%$fCanAddAsymmetricDoubleCollectErrors$fCanSubCollectErrorsDouble$fCanSubDoubleCollectErrors$$fCanAddAsymmetricCollectErrorsRatio$$fCanAddAsymmetricRatioCollectErrors$fCanSubCollectErrorsRatio$fCanSubRatioCollectErrors"$fCanAddAsymmetricCollectErrorsInt"$fCanAddAsymmetricIntCollectErrors$fCanSubCollectErrorsInt$fCanSubIntCollectErrors&$fCanAddAsymmetricCollectErrorsInteger&$fCanAddAsymmetricIntegerCollectErrors$fCanSubCollectErrorsInteger$fCanSubIntegerCollectErrorsCanMulSameTypeCanMulByCanMulAsymmetricMulTypemulCanMul*product specCanMulspecCanMulNotMixedspecCanMulSameType,$fCanMulAsymmetricCollectErrorsCollectErrors$fCanMulAsymmetricMaybeMaybe$fCanMulAsymmetricListList$fCanMulAsymmetricDoubleRatio$fCanMulAsymmetricRatioDouble$fCanMulAsymmetricDoubleInteger$fCanMulAsymmetricIntegerDouble$fCanMulAsymmetricDoubleInt$fCanMulAsymmetricIntDouble$fCanMulAsymmetricRatioInteger$fCanMulAsymmetricIntegerRatio$fCanMulAsymmetricRatioInt$fCanMulAsymmetricIntRatio$fCanMulAsymmetricIntegerInt$fCanMulAsymmetricIntInteger$fCanMulAsymmetricDoubleDouble$fCanMulAsymmetricRatioRatio $fCanMulAsymmetricIntegerInteger$fCanMulAsymmetricIntInt%$fCanMulAsymmetricCollectErrorsDouble%$fCanMulAsymmetricDoubleCollectErrors$$fCanMulAsymmetricCollectErrorsRatio$$fCanMulAsymmetricRatioCollectErrors"$fCanMulAsymmetricCollectErrorsInt"$fCanMulAsymmetricIntCollectErrors&$fCanMulAsymmetricCollectErrorsInteger&$fCanMulAsymmetricIntegerCollectErrorsCanDivIModIntegerSameTypeCNCanDivIModIntegerSameType CanDivIModDivITypeModTypedivIModmoddivI&$fCanDivIModCollectErrorsCollectErrors$fCanDivIModIntInt$fCanDivIModIntInteger$fCanDivIModIntegerInt$fCanDivIModIntegerIntegerHasIntegerBounds integerBoundsCanRound RoundTypeproperFractiontruncateroundceilingfloorspecCanDivIMod specCanRoundspecHasIntegerBounds$fCanDivIModDoubleInteger$fCanDivIModDoubleDouble$fCanDivIModIntRatio$fCanDivIModIntegerRatio$fCanDivIModRatioInt$fCanDivIModRatioInteger$fCanDivIModRatioRatio$fCanDivIModDoubleCollectErrors$fCanDivIModCollectErrorsDouble$fCanDivIModRatioCollectErrors$fCanDivIModCollectErrorsRatio$fCanDivIModIntCollectErrors$fCanDivIModCollectErrorsInt $fCanDivIModIntegerCollectErrors $fCanDivIModCollectErrorsInteger$fCanRoundDouble$fCanRoundRatio$fHasIntegerBoundsInt$fHasIntegerBoundsInteger$fHasIntegerBoundsDouble$fHasIntegerBoundsRatioOrderedCertainlyRing OrderedRingRingCanAddSubMulBy$fRingCollectErrors $fRingRatio$fRingCollectErrors0 $fRingInteger$fOrderedRingCollectErrors$fOrderedRingRatio$fOrderedRingCollectErrors0$fOrderedRingInteger#$fOrderedCertainlyRingCollectErrors$fOrderedCertainlyRingRatio$$fOrderedCertainlyRingCollectErrors0$fOrderedCertainlyRingIntegerCanPowByCanTestIsIntegerType isIntegerTypeCanPowPowTypePPowTypepowppow^^^ integerPowCN powUsingMulpowUsingMulRecip specCanPow$fCanPowMaybeMaybe$fCanPowIntDouble$fCanPowIntegerDouble$fCanPowRatioDouble$fCanPowDoubleRatio$fCanPowDoubleDouble$fCanPowDoubleInteger$fCanPowDoubleInt$fCanPowRatioInteger$fCanPowRatioInt$fCanPowIntInt$fCanPowIntInteger$fCanPowIntegerInt$fCanPowIntegerInteger"$fCanPowCollectErrorsCollectErrors$fCanTestIsIntegerTypeDouble$fCanTestIsIntegerTypeRatio$fCanTestIsIntegerTypeInteger$fCanTestIsIntegerTypeInt#$fCanTestIsIntegerTypeCollectErrors$fCanPowCollectErrorsDouble$fCanPowDoubleCollectErrors$fCanPowCollectErrorsRatio$fCanPowRatioCollectErrors$fCanPowCollectErrorsInt$fCanPowIntCollectErrors$fCanPowCollectErrorsInteger$fCanPowIntegerCollectErrorsCanDivSameTypeCanDivByCanRecipSameTypeCanRecipCanDivDivTypedivide/recip specCanDivspecCanDivNotMixed$fCanDivDoubleDouble$fCanDivRatioInteger$fCanDivIntegerRatio$fCanDivRatioInt$fCanDivIntRatio$fCanDivIntegerInt$fCanDivIntInteger$fCanDivRatioRatio$fCanDivIntegerInteger$fCanDivIntInt"$fCanDivCollectErrorsCollectErrors$fCanDivMaybeMaybe$fCanDivListList$fCanDivDoubleRatio$fCanDivRatioDouble$fCanDivDoubleInt$fCanDivIntDouble$fCanDivDoubleInteger$fCanDivIntegerDouble$fCanDivCollectErrorsDouble$fCanDivDoubleCollectErrors$fCanDivCollectErrorsRatio$fCanDivRatioCollectErrors$fCanDivCollectErrorsInt$fCanDivIntCollectErrors$fCanDivCollectErrorsInteger$fCanDivIntegerCollectErrorsOrderedCertainlyField OrderedFieldFieldCanAddSubMulDivBy$fFieldCollectErrors $fFieldRatio$fOrderedFieldCollectErrors$fOrderedFieldRatio$$fOrderedCertainlyFieldCollectErrors$fOrderedCertainlyFieldRatioCanEnforceRange enforceRangeCanSinCosSameType CanSinCos SinCosTypecossinCanLogSameTypeCanLogLogTypelogCanExpSameTypeCanExpExpTypeexpCanSqrtSameTypeCanSqrtSqrtTypesqrtspecCanSqrtRealspecCanExpRealspecCanLogRealpowUsingExpLogspecCanSinCosRealapproxPi$fCanSqrtCollectErrors$fCanSqrtDouble$fCanExpCollectErrors$fCanExpDouble$fCanLogCollectErrors$fCanLogDouble$fCanSinCosCollectErrors$fCanSinCosDoubletComplex$fCanExpComplex$fCanAbsComplex$fCanDivComplexComplex $fCanMulAsymmetricComplexComplex$fCanSubComplexComplex $fCanAddAsymmetricComplexComplex$fCanNegComplex$fCanTestIntegerComplex$fHasEqAsymmetricComplexComplex"$fConvertibleExactlyComplexComplex $fConvertibleExactlyRatioComplex$fConvertibleExactlyIntComplex"$fConvertibleExactlyIntegerComplex$fCanDivComplexDouble$fCanDivDoubleComplex$fCanMulAsymmetricComplexDouble$fCanMulAsymmetricDoubleComplex$fCanSubComplexDouble$fCanSubDoubleComplex$fCanAddAsymmetricComplexDouble$fCanAddAsymmetricDoubleComplex$fHasEqAsymmetricComplexDouble$fHasEqAsymmetricDoubleComplex$fCanDivComplexRatio$fCanDivRatioComplex$fCanMulAsymmetricComplexRatio$fCanMulAsymmetricRatioComplex$fCanSubComplexRatio$fCanSubRatioComplex$fCanAddAsymmetricComplexRatio$fCanAddAsymmetricRatioComplex$fHasEqAsymmetricComplexRatio$fHasEqAsymmetricRatioComplex$fCanDivComplexInt$fCanDivIntComplex$fCanMulAsymmetricComplexInt$fCanMulAsymmetricIntComplex$fCanSubComplexInt$fCanSubIntComplex$fCanAddAsymmetricComplexInt$fCanAddAsymmetricIntComplex$fHasEqAsymmetricComplexInt$fHasEqAsymmetricIntComplex$fCanDivComplexInteger$fCanDivIntegerComplex $fCanMulAsymmetricComplexInteger $fCanMulAsymmetricIntegerComplex$fCanSubComplexInteger$fCanSubIntegerComplex $fCanAddAsymmetricComplexInteger $fCanAddAsymmetricIntegerComplex$fHasEqAsymmetricComplexInteger$fHasEqAsymmetricIntegerComplexversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDirgetDataFileName getSysconfDir GHC.ClassesRealFracpi