úÎŒð‡­Z      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY&Classes for different container types Ivan.Miljenovic@gmail.comZ Represents 's that may be infinite in length. All % methods have default definitions.  x is an infinite , with x the value of  every element.  ties a finite  into a circular one, or 9 equivalently, the infinite repetition of the original . " It is the identity on infinite s.  f x returns an infinite  of repeated  applications of f to x: 6 iterate f x = x `cons` f x `cons` f (f x) `cons` ...  Represents s that are also instances of ). ) All methods have default definitions.   s are linear +s with explicit left (start) ; and right (end) ends. As such, it is possible to append/ traverse  from either end. >All methods have default stand-alone definitions, and thus no ; explicit method definitions are required for instances. #Append the value to the end of the . 5Applied to a binary operator, a starting value and a   , reduce the  using the binary operator  from left to right. )The default definition is modelled after Data.List.foldl'  rather than Data.List.foldl.  A variant of * with no starting value, and thus must be  applied to non-empty  Sequencess. An inverse to  (equivalent to ( xs, 'last xs')  for non-empty  s). Should obey the following:   isNothing ( xs) == , xs If  xs = Z (x,xs'), then xs == xs' `'snoc'` x. !The first element of a non-empty . 3Everything except the first element of a non-empty .  Consider instead using 'drop 1'.  The last element of a non-empty . 0Everything except the last value of a non-empty . Return the first n elements of a , or the entire   if its Q is less than n.  A variant of  where n has to be an [ , and is  usually more efficient. When applied to a predicate p and a  xs , returns * the longest prefix (possibly empty) of xs of elements that  satisfy p.  p xs$ returns the suffix remaining after   p xs.  n xs returns the suffix of xs after the first  n elements, or D if n > Q xs.  A variant of  where n has to be an [ , and is  usually more efficient.  xs returns the elements of xs in reverse order.  xs must be finite. When applied to a predicate p and a  xs , returns B a tuple where first element is longest prefix (possibly empty)  of xs6 of elements that satisfy p and second element is the  remainder of the . When applied to a predicate p and a  xs , returns B a tuple where first element is longest prefix (possibly empty)  of xs of elements that do not satisfy p and second element  is the remainder of the .   p is equivalent to  (\ . p). !! n xs) returns a tuple where the first element  is the prefix of Q n of xs and the second element is  the rest of the . It is equivalent to  ( n xs,  n xs). " A variant of ! where n has to be an [, and  is usually more efficient. ## n x is a  of length n where  every element is x. $ A variant of # where n has to be an [, " and is usually more efficient. %% breaks a string up into a  of Strings at % newline characters. The resulting Strings do not contain  newlines. && is an inverse operation to %. It joins lines, 2 after appending a terminating newline to each. '' breaks a ] up into a  of words, which " were delimited by white space. (( is an inverse operation to '. It joins words  with separating spaces. )Denotes +s that have kind * -> * and can thus have < more than one possible type of value stored within them. *4Apply the provided function on every element of the +. ++7s are data-types that store values. No restriction is  placed on how. they store these values, though there may be % restrictions on some methods if a + is also an instance  of a sub-class of +. !Minimum required implementation:  ,  .  4 or @ ,Test whether a + is empty. -Create a singleton +;  i.e. 7 (- x) == 1). .Add a value to the +. If this is also a ,  then it should be a "O"" operation (i.e. insert the value  at the beginning of the ). /=The container membership predicate, usually written in infix  form, e.g., v / c. 0The negated version of /. 1Delete the first value of the + that matches the  predicate. 2Delete all values in the + that match the predicate. 3"When applied to a predicate and a +, 3 returns  the +1 containing just those elements that satisfy the 2 predicate (preserving order where applicable). 45Applied to a binary operator, a starting value and a  + , reduce the + using the binary operator.  For ) instances, this should be a right fold. 5 A variant of 4* with no starting value, and thus must be  applied to non-empty +s. 6Returns the size of the +. 7Returns the size of the + as an [ . Typically  more efficient than 6. 89Applied to a predicate and a +, 9 determines if  all elements of the + satisfy the predicate. :Returns the conjunction of a + containing Boolean ! values. For the result to be ^, the + must be  finite; _, however, results from a _ value C occurring within a finite position within the order utilised by  4. ;Applied to a predicate and a +, ; determines if  any element of the + satisfies the predicate. <Returns the disjunction of a + containing Boolean ! values. For the result to be _, the + must be  finite; ^, however, results from a ^ value C occurring within a finite position within the order utilised by  4. =!Computes the product of a finite + of numbers. >Computes the sum of a finite + of numbers. ?8A type-preserving mapping function, where the resulting  +2 is obtained by applying the provided function on  every element of the +. For instances of ),  ? = * suffices. @An inverse to .. Should obey the following:   isNothing (@ c) == , c If @ c = Z (v,c'), then c == v  `'insert'` c'.  If c is an instance of , then the returned value  should be the first one. A1Returns the maximum value of a non-empty, finite +. B1Returns the minimum value of a non-empty, finite +. CD An alias for `; constructs an empty +. E An alias for a; combines two +s. For instances  of  this should be an append operation. FConcatenate all the inner + s together. GMap a function over a + and concatenate the results. 0 Note that the types of the initial and final + s do not  have to be the same. H Convert one + to another. If they are both  s, then ordering is preserved. I Convert one +# to another by utilising a mapping  function. If they are both s, then ordering is  preserved. JEvaluate each action in the + and collect the results. @ The order the actions are evaluated in are determined by the  corresponding 4 definition. KEvaluate each action in the + and discard the results. @ The order the actions are evaluated in are determined by the  corresponding 4 definition. L>Apply the monadic mapping function to all the elements of the  '9Container, and then evaluate the actions and collect the C results. The order the actions are evaluated in are determined  by the corresponding 4 definition. M>Apply the monadic mapping function to all the elements of the  '9Container, and then evaluate the actions and discard the C results. The order the actions are evaluated in are determined  by the corresponding 4 definition. NO An alias for . for s. P An alias for 6 for s. Q An alias for 7 for s. R An alias for 4 for  Seuquences. S An alias for 5 for  Seuquences. T An alias for @ for  Seuquences. U4 index (subscript) operator, starting from 0. Will  throw an b- if the index is negative or larger than the  length of the . VA wrapper around c. WA wrapper around d. XA wrapper around e. YA wrapper around f. Z  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ+,-./0123456789:;<=>?@ABCDEFGHI)*JKLM !"#$%&'(NOPQRSTU VWXYZ    !"#$%&'( !"#$%&'()**+,-./0123456789:;<=>?@AB,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYg      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a\bc\de_fg_fh\ij\ik\lm\nX\nY\nZ\n[ocontainer-classes-0.0.0.0Data.ContainersStreamrepeatcycleiterateSFunctorscanlscanl1scanrscanr1zipWithzipunzipzipWith3zip3unzip3Sequencesnocfoldlfoldl1viewRheadtaillastinit genericTaketake takeWhile dropWhile genericDropdropreversespanbreakgenericSplitAtsplitAtgenericReplicate replicatelinesunlineswordsunwordsCFunctormap Containernull singletoninsertelemnotElemdelete deleteAllfilterfoldfold1 genericSizesize partitionallandanyorproductsumrigidMap splitElemmaximumminimumbuildempty++concat concatMapconvertContainerconvertContainerBysequence sequence_mapMmapM_buildLcons genericLengthlengthfoldrfoldr1viewL!!enumFrom enumFromThenenumFromThenTo enumFromTobase Data.MaybeJustghc-prim GHC.TypesInt GHC.ClassesnotGHC.BaseStringGHC.BoolTrueFalse Data.MonoidmemptymappendGHC.ErrerrorGHC.Enum