úÎ[¨JO‘      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ @Class for totally ordered data types. Instances should satisfy  isOrdered a = True for all a. BClass for partially ordered data types where sorting makes sense. M This includes all totally ordered sets and floating point types. Instances $ should satisfy the following laws:  The set of elements for which " returns true is totally ordered. H The max (or min) of an insignificant element and a significant element  is the significant one. H The result of sorting a list should contain only significant elements.  max a b = max b a  min a b = min b a HThe idea comes from floating point types, where non-comparable elements I (NaNs) are the exception rather than the rule. For these types, we can  define ,  and , to ignore insignificant elements. Thus, a M sort of floating point values will discard all NaNs and order the remaining  elements. Minimal complete definition:  FClass for partially ordered data types. Instances should satisfy the + following laws for all values a, b and c:  a <= a.  a <= b and b <= a implies a == b.  a <= b and b <= c implies a <= c. .But note that the floating point instances don't satisfy the first rule. Minimal complete definition:  or  . Is comparable to. Is not comparable to. ‘CInternal-use function to convert our Ordering to the ordinary one. ’@Internal-use function to convert the ordinary Ordering to ours.  ‘’  ‘’3Sort a list using the default comparison function. -Apply a function to values before comparing.   5,Class for real-valued floating point types. (Minimal complete definition: all except ,, * and +.  !"#$%&'()*+,-9Class for floating point types (real or complex-valued). )Minimal complete definition: everything. ./0123456789:;<=>JClass for types which can be rounded to integers. The rounding functions N in the Prelude are inadequate for floating point because they shoehorn their  results into an integral type. Minimal complete definition: ? and C. ?<Discards the fractional component from a value. Results in “ I if the result cannot be represented as an integer, such as if the input  is infinite or NaN. @ABCD)Classification of floating point values. EFGHI5 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI5DIHGFE>?@ABC-./0123456789:;<= !"#$%&'()*+,5 !"#$%&'()*+, !"#$%&'()*+,-./0123456789:;<=./0123456789:;<=>?@ABC?@ABCDIHGFEEFGHI J"Coercion to floating point types. KFConvert to a floating point type. Conversions from integers and real J types are provided, as well as conversions between floating point types. H Conversions between floating point types preserve infinities, negative  zeros and NaNs. ”*The analogue of FuckFFIDouble for CFloat. •–IThis type is identical to CDouble. For some reason unknown to me, it is B impossible to marshal data from Double to CDouble without losing G information. The issue is further complicated by Foreign.C.Types not  exporting CDouble'5s constructor. Thus, to marshal data from Double to K CDouble, we construct an instance of this type and then use unsafeCoerce. —LThe Float type. MNEThe Double type. This is expected to be an identical declaration to 6 the one found in GHC.Prim. We avoid simply using GHC's type because we need $ to define our own class instances. OJKLMNONOLMJKJKKLMMNOO;PQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š;PQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š;‡†…„ƒ‚€~}|{zyxwvutsrqponmlkjihYXWVUTgfedcba`_^]\[ZSRQPˆ‰Š;PQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š ˜™š›œGInternal function which discards the fractional component of a Double. 3 The results are meaningful only for finite input. NN‹ŒŽ> !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIKLN‹ŒŽ NL‹ŒŽK‹ŒŽ ÿ žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./0123456789:;<=>“?@ABCDEFGHIJKLMNOPQRST  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIKLN‹ŒŽU    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤ ¥ ¦ § ¨ © ªž«¬ž­®ž«¯°±²ž³´ž³µž³¶ž·¸ž¹ºž¹»ž«¼ž«½ž¾¿ž¾ÀžÁžÃÄžÃÅžÃÆžÃÇžÈÉž¾Êž«Ëž«Ìž«Íž«ÎžÃÏžÃОÈÑžÁÒžÁÓž«Ôž«Õž¾Öž×ØžÁÙžÁÚžÛܰÝÞ°ßà°ßáâãäžÁå°ßæžçèž«é°Ýê°Ýëžçìžçížîïž·ðž·ñž·òž·óž·ôž·õž·öž·÷ž·øž·ùž·úž·ûžüýžþÿžžžçžžžžž ž ž ž ž ž×ž×ž×ž×žÁžÁžÁžÁžÁžÁžÁžÁžÁžÁžÁžÁžÁžÁžÁ žÁ!žÁ"žÁ#žÁ$ž­%ž&'ž()žþ*žþ+ž,-ž,.ž,/ž,0ž,1ž¾2ž¾3ž¾4ž¾5ž¾6žÛ7žÛ8žÛ9žÛ:žÛ;žÛ<žÛ=žÛ>ž³?ž³@ž³Až³Bž³Cž³Dž³Ež³Fž³Gž³Hž³Iž³Jž³Kž³Lž³Mž³Nž³Ož³Pž³Qž³Rž³Sž³Tž³Už³Vž³Wž³Xž³Yž³Zž³[ž³\ž³]ž³^ž³_ž³`ž³až³bž³cž³džŸežŸfžŸgžÃhžÃižÃjžÃkžÃlžÃmž«nž«ož«pž«qž«rž«sž«tž«už¹vž¹wžÈxžÈyžÈzžÈ{|altfloat-0.2.2 Data.PosetData.Floating.ClassesData.Floating.TypesData.Floating.CMath Data.FloatingData.Poset.InternalData.Poset.InstancesData.Floating.InstancesData.Floating.DoubleData.Floating.PreludeOrdSortablesortBy isOrderedmaxminPosetcompare<==><<=>=>OrderingNCGTEQLTsort comparing RealFloatfmacopysign nextafteratan2fmodfremfquotRemhypotcbrtexp2expm1log10log1plog2logberferfclgammatgammaclassifyinfinitynanpiFloating**sqrtacosasinatancossintanacoshasinhatanhcoshsinhtanhexplog Roundable toIntegralceilingfloortruncateroundFPClassificationFPZero FPSubNormalFPNormalFPNaN FPInfinite FloatConvert toFloatingFloatF#DoubleD#c_fmac_fminc_fmaxc_fdim c_nextafterc_nan c_copysignc_remquo c_remainderc_fmodc_trunc c_llroundc_lroundc_roundc_llrintc_lrintc_rint c_nearbyintc_floorc_ceilc_tgammac_lgammac_erfcc_erfc_sqrtc_powc_hypotc_fabsc_cbrt c_scalblnc_scalbnc_modfc_logbc_log2c_log1pc_log10c_logc_ldexpc_ilogbc_frexpc_expm1c_exp2c_expc_tanhc_sinhc_coshc_atanhc_asinhc_acoshc_tanc_sinc_cosc_atan2c_atanc_asinc_acos libmDouble libmDouble2 libmDouble3 isInfiniteisNaNisNormal isSubNormalisFiniteisNegativeZero totalOrder partialOrderbase Data.MaybeNothing FuckFFIFloatFuckF FuckFFIDoubleFuckDc_strtoddouble_comparedouble_classify double_signum double_formatdropFracGHC.Base++GHC.Errerrorfoldrghc-primGHC.PrimseqGHC.Listconcatfilterzip System.IOprint Data.Tuplefstsnd otherwisemapGHC.Num fromInteger-GHC.Real fromRationalGHC.EnumenumFrom enumFromThen enumFromToenumFromThenTo GHC.Classes==negatefail>>=>>returnBoundedEnumEq FractionalIntegralMonadFunctorNumGHC.ReadReadRealRealFracGHC.ShowShowGHC.BoolBool GHC.TypesCharInt integer-gmpGHC.Integer.TypeIntegerRationalIO Data.EitherEitherStringFalseTrueLeftRightPrelude$!readIOreadLn appendFile writeFilereadFileinteract getContentsgetLinegetCharputStrLnputStrputCharSystem.IO.ErrorcatchGHC.IO.ExceptionioError Text.Readreadreadseither Data.Listunwordswordsunlineslinesproductsumfoldl1minimummaximumlex readParenreadList readsPreclcmgcd^^^oddeven realToFrac fromIntegral toRational toIntegerdivModquotRemmoddivremquotrecip/properFraction undefinedText.ParserCombinators.ReadPReadSGHC.IOFilePathIOError userError Control.MonadmapM_mapM sequence_sequence=<<subtractsignumabs*+ showParen showStringshowCharshowsShowSshowListshow showsPrecunzip3unzipzipWith3zipWithzip3!! concatMaplookupnotElemelemallanyorandreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanr1scanrfoldr1scanl1scanlfoldllengthnullinitlasttailheadmaybeJustMaybemaxBoundminBoundfromEnumtoEnumpredsuccasTypeOfuntil$flip.constidfmapuncurrycurrynot||&&/=