^S:      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Haskell98 experimentalwren@community.haskell.org Safe-Inferred?Apply a list function safely, i.e. when the list is non-empty. > All other functions will throw errors on empty lists, so use ( this to make your own safe variations. 'Minimize the number of string literals 2Apply a list function unsafely. For internal use. Tail-recursive driver Tail-recursive driver ;Return an element of the list which maximizes the function ' according to a user-defined ordering. <Return all elements of the list which maximize the function ' according to a user-defined ordering. ;Return an element of the list which maximizes the function ? according to a user-defined ordering, and return the value of ' the function at that element as well. <Return all elements of the list which maximize the function ? according to a user-defined ordering, and return the value of ) the function at those elements as well. <Return an element of the list which maximizes the function. =Return all elements of the list which maximize the function. <Return an element of the list which maximizes the function, ? and return the value of the function at that element as well. =Return all elements of the list which maximize the function, A and return the value of the function at those elements as well. <Return an element of the list which minimizes the function. =Return all elements of the list which minimize the function. <Return an element of the list which minimizes the function, ? and return the value of the function at that element as well. =Return all elements of the list which minimize the function, A and return the value of the function at those elements as well.   Haskell98stablewren@community.haskell.org Safe-InferredAn unsafe variant of  to fill out the interface.  A version of - that uses a user-defined list homomorphism. A generic version of  . The first argument is a tuple B homomorphism (i.e. a function for how to combine values from the ? two lists), the second two arguments form a list homomorphism  (i.e. so you can  the [c] list directly without actually  constructing it). In order to evaluate to WHNF  is strict in both list B arguments, as it must be, to determine that the lists are of the D same length. This means it can survive one infinite list (yielding  ) but that it can'%t survive two. The implementation is > very efficient and uses a tight tail-recursive loop, however @ with extremely long lists it will be churning through heap and B that tightness can make it hard to interrupt (lists of 1 million B elements return in 1~2 seconds, but lists of 10 million can lock  your system up). A safe version of . A safe version of - that uses a user-defined list homomorphism. A safe version of . =A bijection from a list of functions and a list of arguments = to a list of results of applying the functions bijectively.  A version of ' that applies functions strictly. N.B. C the list is still lazily evaluated, this just makes the functions  strict in their argument.  Haskell98stablewren@community.haskell.org Safe-Inferred A variant of % which is least-strict for comparing  against a boundary length.  lengthBound, is polymorphic in the return of the helper  function so we can use  as well as , , ,  , , /. If you want to use any other functions, know / that we only preserve the ordering of the list's length vs the A boundary length and so the function should not rely on the true 1 values of either of the numbers being compared.  A variant of % which is least-strict for comparing B the lengths of two lists. This is as strict as the length of the A shorter list (which allows comparing an infinite list against a  finite list). If you'+re going to immediately follow this with a  function  then see Data.List.Extras.Pair instead.  Haskell98stablewren@community.haskell.org Safe-Inferred>Pattern matching for lists, as a first-class function. (Could ' also be considered as a non-recursive .) If the list  argument is []2 then the default argument is returned; otherwise < the function is called with the head and tail of the list. Haskell98 (+CPP)stablewren@community.haskell.org Safe-Inferred  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~;)45*+267 q,ba`_^]\[ZYXWVUTSRQ !1s-.~}|{z "#/89:0$ONP%&ponmlkjihgfedc'(3wv>KyuDBCAHtLxGFEI@<=MJr?     !"#$%&'()*+, -./01234 5678.9:;< => =? =@ =A =BCDE =FG =HIJK =L =MINIO =P =Q =RST U V W X Y Z [ \ ] ^ _ `abcdceIf6g6h6i6jkl.m.n.o.p.q.r.s.t.u.v.w.x.y.z.{.|.}.~..............aa;;;;;;;;          list-extras-0.4.1.1Prelude.ListlessData.List.Extras.ArgmaxData.List.Extras.PairData.List.Extras.LazyLengthData.List.ExtrasbaseGHC.Errerrorghc-primGHC.Primseq System.IOprint Data.TuplefstsndGHC.Base otherwise$GHC.Num fromInteger-GHC.Real fromRationalGHC.EnumenumFrom enumFromThen enumFromToenumFromThenTo GHC.Classes==>=negatefail>>=>>fmapreturn fromIntegral realToFrac toInteger toRationalBoundedEnumEq GHC.FloatFloating FractionalIntegralMonadFunctorNumOrdGHC.ReadReadReal RealFloatRealFracGHC.ShowShow GHC.TypesBoolCharDoubleFloatInt integer-gmpGHC.Integer.TypeIntegerOrderingRationalIO Data.EitherEitherStringFalseTrueLeftRightLTEQGTPrelude$!readIOreadLn appendFile writeFilereadFileinteract getContentsgetLinegetCharputStrLnputStrputCharGHC.IO.ExceptionioError Text.Readreadreadseitherlex readParenreadList readsPrecText.ParserCombinators.ReadPReadSacoshatanhasinhcoshtanhsinhacosatanasincostansinlogBase**logsqrtexppiatan2isIEEEisNegativeZeroisDenormalized isInfiniteisNaN scaleFloat significandexponent encodeFloat decodeFloat floatRange floatDigits floatRadixGHC.IOFilePath userErrorIOErrorlcmgcd^^^oddevendivModquotRemmoddivremquotrecip/floorceilingroundtruncateproperFraction undefined Control.Monad=<<maxBoundminBoundfromEnumtoEnumpredsucc showParen showStringshowCharshowsShowSshowListshow showsPrec Data.MaybemaybeNothingJustMaybeuncurrycurrysubtractsignumabs*+asTypeOfuntilflip.constid/=compare<=&&||not<>maxmin catchNullargmaxBy argmaxesByargmaxWithMaxByargmaxesWithMaxByargmaxargmaxes argmaxWithMaxargmaxesWithMaxargminargmins argminWithMinargminsWithMin zipWithByzipBy pairWithBypairWithpairBypairbijectbiject' lengthBound lengthComparelistemptyListError throwNull_argmaxWithMaxBy_argmaxesWithMaxBy _argmaxBy _argmaxesByboolGHC.ListzipfoldrzipWithlength