f[=      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                     Safe+0Determines the authority which issued the interchange name of a unit or unit name. For composite units, this is the least-authoritative interchange name of any constituent name.QNote that the least-authoritative authority is the one sorted as greatest by the  instance of .ERepresents the authority which issued an interchange name for a unit.KThe interchange name originated with the Unified Code for Units of Measure. =The interchange name originated with the dimensional library. GThe interchange name originated with a user of the dimensional library.      )Copyright (C) 2006-2015 Bjorn Buckwalter BSD3 bjorn@buckwalter.se Stable  GHC only Safe mDimensional values inhabit this class, which allows access to a term-level representation of their dimension. ;Obtains a term-level representation of a value's dimension. A physical dimension, encoded as 7 integers, representing a factorization of the dimension into the 7 SI base dimensions. By convention they are stored in the same order as in the    data kind.&The dimension of dimensionless values.$Forms the product of two dimensions.%Forms the quotient of two dimensions.'Raises a dimension to an integer power.$Forms the reciprocal of a dimension.Converts a dimension to a list of 7 integers, representing the exponent associated with each of the 7 SI base dimensions in the standard order..The monoid of dimensions under multiplication.       )Copyright (C) 2006-2015 Bjorn Buckwalter BSD3 bjorn@buckwalter.se Stable  GHC only Safe &(345>KLNwA KnownDimension is one for which we can construct a term-level representation. Each validly constructed type of kind * has a  instance.While * is a constraint synonym, the presence of  d in a context allows use of   ::  d ->  .kRoots of dimensions corresponds to division of the base dimensions' exponents by the order(?) of the root.See , cbrt, and nroot- for the corresponding term-level operations.fPowers of dimensions corresponds to multiplication of the base dimensions' exponents by the exponent.fWe limit ourselves to integer powers of Dimensionals as fractional powers make little physical sense.CThe reciprocal of a dimension is defined as the result of dividing )? by it, or of negating each of the base dimensions' exponents. UDivision of dimensions corresponds to subtraction of the base dimensions' exponents.!VMultiplication of dimensions corresponds to adding of the base dimensions' exponents.)2The type-level dimensions of dimensionless values.*Represents a physical dimension in the basis of the 7 SI base dimensions, where the respective dimensions are represented by type variables using the following convention. l: Lengthm: Masst: Timei: Electric currentth: Thermodynamic temperaturen: Amount of substancej: Luminous intensity2For the equivalent term-level representation, see   !"#$%&'()*+ !"#$%&'()*+*+! )('&%$#" !"#$%&'()*+ !)Copyright (C) 2006-2015 Bjorn Buckwalter BSD3 bjorn@buckwalter.se Stable  GHC only Safe (+,0>KL, Weakens a .= by forgetting possibly uninteresting type-level information.-Forms the product of two .s.*The product of units is a non-metric unit.(The product of quantities is a quantity..+The kind of variants of dimensional values./The value is a quantity.0 The value is a unit, possibly a 2 unit.1zEncodes whether a unit is a metric unit, that is, whether it can be combined with a metric prefix to form a related unit.2%Capable of receiving a metric prefix.3'Incapable of receiving a metric prefix.,-./0123,-./0123./0123-,,-./0123-Safe !"(*+04>IN4nThe type of a unit name transformation that may be associated with an operation that takes two units as input.5rThe type of a unit name transformation that may be associated with an operation that takes a single unit as input.60Represents the name of an atomic unit or prefix.!The interchange name of the unit.9The abbreviated name of the unit in international English2The full name of the unit in international English7The name of a metric prefix.8The name of a unit.C@The name of the base unit associated with a specified dimension.XForms a 8 from a 2" name by applying a metric prefix.YForm a 8% by taking the product of two others.ZForm a 8 by dividing one by another.[Form a 8' by raising a name to an integer power.\ Convert a 8 which may or may not be 2 to one which is certainly 3.]Attempt to convert a 8 which may or may not be 2 to one which is certainly 2.^ Convert a 8 of one 1 into a name of the other metricality by strengthening or weakening if neccessary. Because it may not be possible to strengthen, the result is returned in a  wrapper._ Constructs a 8. by applying a grouping operation to another 8,, which may be useful to express precedence.`,Constructs an atomic name for a custom unit.aForms the product of a list of 8s..If you wish to form a heterogenous product of 2 and 3 units you should apply \ to the 2 ones.I456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`Interchange name)Abbreviated name in international English"Full name in international EnglishaF456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a:45678 9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aYZ[)Copyright (C) 2006-2015 Bjorn Buckwalter BSD3 bjorn@buckwalter.se Stable  GHC only SafeZ1123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a1867123`XYZ[a9_C:;<=>?@ABDEFGHIJKLMNOPQRSTUVW54\]^)Copyright (C) 2006-2015 Bjorn Buckwalter BSD3 bjorn@buckwalter.se Stable  GHC only Safe  !"#$%&'()*+None(*+03457>IKLNbA physical quantity or unit.We call this data type c] to capture the notion that the units and quantities it represents have physical dimensions.The type variable a is the only non-phantom type variable and represents the numerical value of a quantity or the scale (w.r.t. SI units) of a unit. For SI units the scale will always be 1. For non-SI units the scale is the ratio of the unit to the SI unit with the same physical dimension.Since a6 is the only non-phantom type we were able to define c* as a newtype, avoiding boxing at runtime.cA dimensional value, either a e or a f, parameterized by its * and representation.dMaps over the underlying representation of a dimensional value. The caller is responsible for ensuring that the supplied function respects the dimensional abstraction. This means that the function must preserve numerical values, or linearly scale them while preserving the origin.eA dimensional quantity.fA unit of measurement.gA polymorphic f which can be used in place of the coherent SI base unit of any dimension. This allows polymorphic quantity creation and destruction without exposing the c constructor.hShows the value of a e expressed in a specified f of the same *.e s of a given * form a  under addition.&bcdef     gh !"#bcdef ghbcdefgh    !  #")Copyright (C) 2006-2014 Bjorn Buckwalter BSD3 bjorn@buckwalter.se  Experimental  GHC only? Nonec(Copyright (C) 2006-2015 Bjorn BuckwalterBSD3bjorn@buckwalter.seStableGHC onlyNone(*+,03457>?CIKLN"q Extracts the 8 of a f.rExtracts the exact value of a f:, expressed in terms of the SI coherent derived unit (see g) of the same *.nNote that the actual value may in some cases be approximate, for example if the unit is defined by experiment.s=Discards potentially unwanted type level information about a f.tAttempts to convert a f which may or may not be 2 to one which is certainly 2.uForms the exact version of a f.vForms a e% by multipliying a number and a unit.w Divides a e by a fg of the same physical dimension, obtaining the numerical value of the quantity expressed in that unit.xMultiplies two e s or two fs.mThe intimidating type signature captures the similarity between these operations and ensures that composite fs are 3.y Divides one e by another or one f by another.mThe intimidating type signature captures the similarity between these operations and ensures that composite fs are  NotPrefixable.z Raises a e or f to an integer power.%Because the power chosen impacts the *h of the result, it is necessary to supply a type-level representation of the exponent in the form of a  to some $. Convenience values pos1, %, neg1, ... are supplied by the Numeric.NumType.DK.Integers= module. The most commonly used ones are also reexported by !Numeric.Units.Dimensional.Prelude.mThe intimidating type signature captures the similarity between these operations and ensures that composite fs are  NotPrefixable.{Negates the value of a e.| Adds two es.}Subtracts one e from another.~Takes the absolute value of a e.Computes the nth root of a e using &.The } type family will prevent application of this operator where the result would have a fractional dimension or where n is zero.$Because the root chosen impacts the *d of the result, it is necessary to supply a type-level representation of the root in the form of a  to some $. Convenience values pos1, %, neg1, ... are supplied by the Numeric.NumType.DK.Integers= module. The most commonly used ones are also reexported by !Numeric.Units.Dimensional.Prelude.%Also available in operator form, see .Computes the square root of a e using &.The c type family will prevent application where the supplied quantity does not have a square dimension.sqrt x == nroot pos2 xComputes the cube root of a e using &.The b type family will prevent application where the supplied quantity does not have a cubic dimension.cbrt x == nroot pos3 xComputes the nth root of a e using &.The } type family will prevent application of this operator where the result would have a fractional dimension or where n is zero.$Because the root chosen impacts the *d of the result, it is necessary to supply a type-level representation of the root in the form of a  to some $. Convenience values pos1, %, neg1, ... are supplied by the Numeric.NumType.DK.Integers= module. The most commonly used ones are also reexported by !Numeric.Units.Dimensional.Prelude.#Also available in prefix form, see .Applies v to all values in a functor.Applies w to all values in a functor."The sum of all elements in a list..The arithmetic mean of all elements in a list./The length of the foldable data structure as a p@. This can be useful for purposes of e.g. calculating averages.2Returns a list of quantities between given bounds.:Raises a dimensionless quantity to a floating power using &.The standard two argument arctangent function. Since it interprets its two arguments in comparison with one another, the input may have any dimension. The unit  has dimension )/ and is the base unit of dimensionless values. cAs detailed in 7.10 "Values of quantities expressed simply as numbers: the unit one, symbol 1" of  #note1[1]` the unit one generally does not appear in expressions. However, for us it is necessary to use M as we would any other unit to perform the "boxing" of dimensionless values.CThe constant for zero is polymorphic, allowing it to express zero o or  Capacitance or Velocity etc, in addition to the p value zero.Twice .For background on  see  http://tauday.com/tau-manifesto (but also feel free to review  http://www.thepimanifesto.com).VConvenient conversion between numerical types while retaining dimensional information.^Convenient conversion from exactly represented values while retaining dimensional information.Forms a new atomic f by specifying its 8- and its definition as a multiple of another f.NUse this variant when the scale factor of the resulting unit is irrational or '. See  for when it is rational and  for when it is an integer.Note that supplying zero as a definining quantity is invalid, as the library relies upon units forming a group under multiplication.Supplying negative defining quantities is allowed and handled gracefully, but is discouraged on the grounds that it may be unexpected by other readers.Forms a new atomic f by specifying its 8- and its definition as a multiple of another f.NUse this variant when the scale factor of the resulting unit is rational. See  for when it is an integer and  for the general case.For more information see .Forms a new atomic f by specifying its 8- and its definition as a multiple of another f.PUse this variant when the scale factor of the resulting unit is an integer. See  for when it is rational and  for the general case.For more information see .Bijklmnopqrstuvwxyz{|}~The initial value.The final value.XThe number of intermediate values. If less than one, no intermediate values will result.`  !"#$%&'()*+123bcdefghijklmnopqrstuvwxyz{|}~`fe123*+!   vwzxy|}{~)('&%$#"ponmlkjigqrstuhbcdBijklmnopqrstuvwxyz{|}~ vwxyz|})Copyright (C) 2006-2015 Bjorn Buckwalter BSD3 bjorn@buckwalter.se Stable  GHC only None(eiConstructs a unit of area from a unit of length, taking the area of a square whose sides are that length.fkConstructs a unit of volume from a unit of length, taking the volume of a cube whose sides are that length.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefca_][XWUSQNMKIGEC@?;:96521-,+)'%#!   efdb`^\ZYVTRPOLJHFDBA>=<87430/.*(&$"         !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef)Copyright (C) 2006-2015 Bjorn Buckwalter BSD3 bjorn@buckwalter.se Stable  GHC only None(INF(ghijklmnopq)rstuvwxyz{|}~Dghijklmnopqrstuvwxyz{|}~D|}~ghijklmnopqrstuvwxyz{F(ghijklmnopq)rstuvwxyz{|}~)Copyright (C) 2006-2015 Bjorn Buckwalter BSD3 bjorn@buckwalter.se Stable  GHC only NoneL*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   %    !"#$%&'()*+123bcefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ )Copyright (C) 2006-2015 Bjorn Buckwalter BSD3 bjorn@buckwalter.se Stable  GHC only None(The bar is exactly 100,000 .From Wikipedia:DIt is about equal to the atmospheric pressure on Earth at sea level.The "standard atmosphere".From Wikipedia  #note3[3]:The standard atmosphere (atm) is an established constant. It is approximately equal to typical air pressure at earth mean sea level.The "technical atmosphere"From Wikipedia:uA technical atmosphere (symbol: at) is a non-SI unit of pressure equal to one kilogram-force per square centimeter.QThe conventional value for the pressure exerted by a 1 mm high column of mercury.Per Wikipedia  #note4[4]1, one mmHg (millimeter of mercury) is defined as:The pressure exerted at the base of a column of fluid exactly 1 mm high, when the density of the fluid is exactly 13.5951 g/cm^3, at a place where the acceleration of gravity is exactly 9.80665 m/s^2.SThe conventional value for the pressure exerted by a 1 inch high column of mercury.Column inches of mercury are also used to measure pressure, especially in meteorological or aeronautical contexts in the United States.FThis is the value defined by UCUM. For the value defined by NIST, see .SThe conventional value for the pressure exerted by a 1 inch high column of mercury.Column inches of mercury are also used to measure pressure, especially in meteorological or aeronautical contexts in the United States.FThis is the value defined by UCUM. For the value defined by NIST, see .SThe conventional value for the pressure exerted by a 1 inch high column of mercury.Column inches of mercury are also used to measure pressure, especially in meteorological or aeronautical contexts in the United States.FThis is the value defined by NIST. For the value defined by UCUM, see .SOne torr (symbol: Torr) is defined as 1/760 atm, which is approximately equal to 1 ./../ )Copyright (C) 2006-2014 Bjorn Buckwalter BSD3 bjorn@buckwalter.se Stable  GHC only? None(4NA f whose * is only known dynamically.A e whose * is only known dynamically. Converts a e of statically known * into an . Converts an  into a e of statically known *, or ! if the dimension does not match. Converts a f of statically known * into an . Converts an  into a f of statically known *, or ! if the dimension does not match.The result is represented in 8, conversion to other representations is possible using .   (Copyright (C) 2006-2015 Bjorn BuckwalterBSD3bjorn@buckwalter.seStableGHC onlyNoneA P instance for c.dNote that this instance is dubious, because it allows you to break the dimensional abstraction. See d for more information.<Note that, while this instance overlaps with that given for p%, it is confluent with that instance.%Note that this is an orphan instance. !"#$%&'()*+,-./ 0 1 - 2 , + 3 4 5 6 7 8 9 :  ;<+=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg+,-hijklmnopqrstuvwxyz{|}hi~+,-      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklSmTUVWXYZ[\]^_`abcdefnopqrstuvwxyz{|}~                                                      E<<rq      ! "#$%&%'()*+,-./0102030456789:;.<.=.>.?@A0B0CDE.F.GHI,JKL.MN.OPQRSTUVWXWYWZW[W\]^_W`.aWbWcdefWgWhdidjWkWlWmUnUoUpUq#r#s#t#u#v#w#x#y#z#{#|#}~~~SSSSSSSSSSmSSSSSSSSSSdKKKK..................000000PPPPPPPP                           %%,,            dimen_FKqW4ykMH3XIFJebQA5Y5P"Numeric.Units.Dimensional.Coercion4Numeric.Units.Dimensional.UnitNames.InterchangeNamesNumeric.Units.Dimensional.Numeric.Units.Dimensional.Dimensions.TermLevel"Numeric.Units.Dimensional.Variants#Numeric.Units.Dimensional.UnitNames$Numeric.Units.Dimensional.Quantities!Numeric.Units.Dimensional.SIUnitsNumeric.Units.Dimensional.NonSI!Numeric.Units.Dimensional.Dynamic!Numeric.Units.Dimensional.Functor.Numeric.Units.Dimensional.Dimensions.TypeLevel Dimension,Numeric.Units.Dimensional.UnitNames.Internal$Numeric.Units.Dimensional.Dimensions"Numeric.Units.Dimensional.Internal!Numeric.Units.Dimensional.Preludepascalghc-primGHC.PrimcoerceHasInterchangeNameinterchangeNameInterchangeNamename authorityInterchangeNameAuthorityUCUMDimensionalLibraryCustom HasDimension dimension Dimension'Dim'dOnedLengthdMassdTimedElectricCurrentdThermodynamicTemperaturedAmountOfSubstancedLuminousIntensity*/^recipasListKnownDimensionRootRecipDLuminousIntensityDAmountOfSubstanceDThermodynamicTemperatureDElectricCurrentDTimeDMassDLengthDOneDimWeakenVariant DQuantityDUnit MetricalityMetric NonMetricUnitNameTransformer2UnitNameTransformerNameAtom PrefixNameUnitNamereducenOnenMeternGram nKilogramnSecondnAmperenKelvinnMolenCandela baseUnitNamedekahectokilomegagigaterapetaexazettayottadecicentimillimicronanopicofemtoattozeptoyocto applyPrefixweaken strengthenrelaxgroupedatomproduct KnownVariant DimensionaldmapQuantityUnitsiUnitshowInLuminousIntensityAmountOfSubstanceThermodynamicTemperatureElectricCurrentTimeMassLength Dimensionless exactValueexactify*~/~negate+-absnrootsqrtcbrt^/*~~/~~summeandimensionlessLengthnFromToexplogsincostanasinacosatansinhcoshtanhasinhacoshatanh**atan2one_0_1_2_3_4_5_6_7_8_9pitau changeRepchangeRepApproximatemkUnitRmkUnitQmkUnitZDEnergyPerUnitMassEnergyPerUnitMassDTorqueTorqueDThrustThrustDAngleAngleJerkDJerkThermalInsulanceDThermalInsulanceThermalAdmittanceDThermalAdmittanceHeatTransferCoefficientDHeatTransferCoefficientThermalResistanceDThermalResistanceThermalConductanceDThermalConductanceThermalResistivityDThermalResistivityAngularMomentumDAngularMomentumMomentOfInertiaDMomentOfInertiaFirstMassMomentDFirstMassMomentKinematicViscosityDKinematicViscosityGravitationalParameterDGravitationalParameter VolumeFlow DVolumeFlowMassFlow DMassFlowMomentum DMomentumImpulseDImpulseAbsorbedDoseRateDAbsorbedDoseRateExposure DExposureMolarHeatCapacity MolarEntropyDMolarHeatCapacity DMolarEntropy MolarEnergy DMolarEnergy Permeability DPermeability Permittivity DPermittivityElectricFluxDensityDElectricFluxDensityElectricChargeDensityDElectricChargeDensityElectricFieldStrengthDElectricFieldStrength EnergyDensityDEnergyDensityThermalConductivityDThermalConductivitySpecificEntropySpecificHeatCapacityDSpecificEntropyDSpecificHeatCapacityEntropy HeatCapacityDEntropy DHeatCapacityRadiance DRadianceRadiantIntensityDRadiantIntensity IrradianceHeatFluxDensity DIrradianceDHeatFluxDensitySurfaceTensionDSurfaceTension MomentOfForceDMomentOfForceDynamicViscosityDDynamicViscosityAngularAccelerationDAngularAccelerationAngularVelocityDAngularVelocityCatalyticActivityDCatalyticActivityEquivalentDosePersonalDoseEquivalentDirectionalDoseEquivalentAmbientDoseEquivalentDoseEquivalentDEquivalentDoseDPersonalDoseEquivalentDDirectionalDoseEquivalentDAmbientDoseEquivalentDDoseEquivalentKermaSpecificEnergy AbsorbedDoseDKermaDSpecificEnergy DAbsorbedDoseActivity DActivityCelsiusTemperatureDCelsiusTemperature Illuminance DIlluminance LuminousFlux DLuminousFlux Inductance DInductanceMagneticFluxDensityDMagneticFluxDensity MagneticFlux DMagneticFluxElectricConductanceDElectricConductanceElectricResistanceDElectricResistance Capacitance DCapacitanceElectromotiveForcePotentialDifferenceElectricPotentialDElectromotiveForceDPotentialDifferenceDElectricPotentialQuantityOfElectricityElectricChargeDQuantityOfElectricityDElectricCharge RadiantFluxPower DRadiantFluxDPowerQuantityOfHeatWorkEnergyDQuantityOfHeatDWorkDEnergyStressPressureDStress DPressureForceDForce Frequency DFrequency SolidAngle DSolidAngle PlaneAngle DPlaneAngle Luminance DLuminance ConcentrationAmountOfSubstanceConcentrationDConcentrationDAmountOfSubstanceConcentrationMagneticFieldStrengthDMagneticFieldStrengthCurrentDensityDCurrentDensitySpecificVolumeDSpecificVolumeDensity MassDensityDDensity DMassDensity WaveNumber DWaveNumber Acceleration DAccelerationVelocity DVelocityVolumeDVolumeAreaDAreasquarecubicdecametremetergramsecondamperekelvinmolecandelaradian steradianhertznewtonjoulewattcoulombvoltfaradohmsiemensweberteslahenrylumenlux degreeCelsiusfromDegreeCelsiusAbsolutetoDegreeCelsiusAbsolute becquerelgraysievertkatalminutehourdaydegree arcminute arcsecond degreeOfArc secondOfArc minuteOfArchectarelitrelitertonne metricTonastronomicalUnit electronVoltunifiedAtomicMassUnitdaltongeeinchfootmil poundMassounce poundForceslugpsiyardmile nauticalMileknot revolutionsolidteaspoonacreyearcenturybar atmospheretechnicalAtmospheremmHginHg inHg_UCUM inHg_NISTtorrradstokesdegreeFahrenheit degreeRankineimperialGallon imperialQuart imperialPint imperialCup imperialGillimperialFluidOunceusGallonusQuartusPintusCupusGill usFluidOunceAnyUnit AnyQuantitydemoteQuantitypromoteQuantity demoteUnit promoteUnit$fFunctorDimensional GHC.ClassesOrd#$fHasInterchangeNameInterchangeName$fShowInterchangeName$fMonoidDimension'$fHasDimensionDimension'base Data.ProxyProxy GHC.Float$fHasDimensionProxy_interchangeNameabbreviation_enname_enGHC.BaseMaybe NameAtomTypeUnitAtom PrefixAtomOne MetricAtomicAtomicPrefixedProductQuotientGroupedisAtomicisAtomicOrProductreduce' baseUnitNamesprefix ucumMetricucumdimensionalAtom$fHasInterchangeNameUnitName$fHasInterchangeNameNameAtom$fShowUnitName$fMonoidDimensionalMonoid extractValue extractName injectValue MV_QuantityunMVQ V_QuantityunVQliftDliftQliftD2liftQ2$fShowDimensional$fShowDimensional0$fVectorVectorDimensional$fMVectorMVectorDimensional$fUnboxDimensionalTFCo:R:MVectorsDimensionalTFCo:R:VectorDimensional$fStorableDimensional$fNFDataDimensional$fHasDimensionDimensional$fHasInterchangeNameDimensional$fBoundedDimensionalTFCo:R:DimensionalDUnitda$fKnownVariantDUnitTFCo:R:DimensionalDQuantityda$fKnownVariantDQuantitynumty_LXQ5SJtAUlgITxQ8Z8tylwNumeric.NumType.DK.IntegersTypeIntpos2exact_FnuqoEu8Wkm2y2sUfZa6QJ Data.ExactPi Approximate applyMultipleapplySubmultiple++GHC.ErrerrorseqGHC.Listfilterzip System.IOprint Data.Tuplefstsnd otherwisemap$ undefinedGHC.Num fromIntegerGHC.Real fromRationalGHC.EnumenumFrom enumFromThen enumFromToenumFromThenTo==>=fail>>=>>fmapreturn fromIntegral realToFrac toInteger toRational<*>pureBoundedEnumEqFloating FractionalIntegralMonadFunctorNumGHC.ReadReadReal RealFloatRealFracGHC.ShowShow Applicative Data.FoldableFoldableData.Traversable Traversable GHC.TypesBoolCharDoubleFloatInt integer-gmpGHC.Integer.TypeIntegerOrderingRationalIOWord Data.EitherEitherStringFalseTrueLeftRightLTEQGTsequencemapM sequenceAtraversereadIOreadLn appendFile writeFilereadFileinteract getContentsgetLinegetCharputStrLnputStrputCharGHC.IO.ExceptionioErrorGHC.IOFilePath userErrorIOError Text.ReadreadreadsnotElemallanyorand concatMapconcat sequence_mapM_minimummaximumelemlengthnullfoldl1foldr1foldlfoldrfoldMapeither Data.OldListunwordswordsunlineslineslex readParenreadList readsPreclogBaseisIEEEisNegativeZeroisDenormalized isInfiniteisNaN scaleFloat significandexponent encodeFloat decodeFloat floatRange floatDigits floatRadixText.ParserCombinators.ReadPReadSlcmgcd^^oddevendivModquotRemmoddivremquotfloorceilingroundtruncateproperFractionmaxBoundminBoundfromEnumtoEnumpredsucc Data.Functor<$> showParen showStringshowCharshowsShowSshowListshow showsPrecunzip3unzipzipWith3zipWithzip3!!lookupreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanr1scanrscanl1scanlinitlasttailhead Data.MaybemaybeuncurrycurrysubtractsignumasTypeOfuntil$!flip.constid=<<JustNothingmconcatmappendmempty<$<**>/=compare<=&&||not<>maxminpos5pos4pos3pos1zeroneg1neg2neg3neg4neg5mHgExactPi$fHasDimensionAnyUnit $fShowAnyUnit$fHasDimensionAnyQuantity$fShowAnyQuantity