úÎìðê^.      !"#$%&'()*+,-8Strict function combinator "between" and its variations.(c) 2013-2015 Peter TrskoBSD3peter.trsko@gmail.com experimentalNoImplicitPrelude Safe-Inferred.3Strict variant of function composition. Defined as: (f . g) x = f / g / x sNote: this function should not be exported. There are packages out there that provide it and without name clashes.Since version 0.10.0.0.YCore combinator of this module and we build others on top of. It also has an infix form  and flipped infix form .This function Defined as:  f g -> (f .) . (. g) Since version 0.10.0.0.Infix variant of .gFixity is left associative and set to value 8, which is one less then fixity of function composition (.).Since version 0.10.0.0.Flipped variant of  , i.e. flipped infix variant of .hFixity is right associative and set to value 8, which is one less then fixity of function composition (.).Since version 0.10.0.0.As /, but first function is also parametrised with a, hence the name  . Character ^D indicates which argument is parametrised with additional argument.This function is defined as: (f  g) h a -> ((f / a)  g)) h a gFixity is left associative and set to value 8, which is one less then fixity of function composition (.).Since version 0.10.0.0.Flipped variant of .hFixity is right associative and set to value 8, which is one less then fixity of function composition (.).Since version 0.10.0.0.9Pass additional argument to first two function arguments.This function is defined as: (f  g) h a b -> ((f / a)  (g / a)) h b  See also / to note the difference, most importantly that ó passes the same argument to all its functional arguments. Since this function uses strict function composition and strict application it is not so simple to define it in terms of other combinators in this package and vice versa. See lazy  for details.KFixity is set to value 8, which is one less then of function composition (.).Since version 0.10.0.0.Flipped variant of .KFixity is set to value 8, which is one less then of function composition (.).Since version 0.10.0.0.Apply function g) to each argument of binary function and f™ to its result. In suffix "2l" the number is equal to arity of the function it accepts as a third argument and character "l" is for "left associative".  f g = (f  g)  g Interesting observation:  (\f g ->   g f) ===  Since version 0.10.0.0.Apply function g* to each argument of ternary function and f™ to its result. In suffix "3l" the number is equal to arity of the function it accepts as a third argument and character "l" is for "left associative".This function is defined as:  f g = ((f  g)  g)  g &Alternatively it can be defined using :  f g =  f g  g Since version 0.10.0.0. Convenience wrapper for: \f g -> 0 f  0 g Name of   simply says that we apply   (0+) to both its arguments and then we apply .`Fixity is left associative and set to value 8, which is one less then of function composition (.).Since version 0.10.0.0. Flipped variant of  .Name of   simply says that we apply   (0+) to both its arguments and then we apply .KFixity is set to value 8, which is one less then of function composition (.).Since version 0.10.0.0.  Apply fmap to first argument of  . Dual to   which applies 0 to second argument. Defined as: f   g = 0 f  g mThis function allows us to define lenses mostly for pair of functions that form an isomorphism. See section  #g:3Constructing Lenses for details.Name of   simply says that we apply   (0.) to first (left) argument and then we apply .`Fixity is left associative and set to value 8, which is one less then of function composition (.).Since version 0.10.0.0. Flipped variant of  .mThis function allows us to define lenses mostly for pair of functions that form an isomorphism. See section  #g:3Constructing Lenses for details.Name of   simply says that we apply   (00) to second (right) argument and then we apply .hFixity is right associative and set to value 8, which is one less then fixity of function composition (.).Since version 0.10.0.0. !Apply fmap to second argument of  . Dual to   which applies 0 to first argument. Defined as: f   g -> f  0 g Name of   simply says that we apply   (00) to second (right) argument and then we apply .aFixity is right associative and set to value 8, which is one less then of function composition (.).Since version 0.10.0.0.Flipped variant of  .Name of  simply says that we apply   (0.) to first (left) argument and then we apply .gFixity is left associative and set to value 8, which is one less then fixity of function composition (.).Since version 0.10.0.0.Convenience wrapper for: \f g -> 0 . f '^~' g@.4This function has the same functionality as function 2lens :: (s -> a) -> (s -> b -> t) -> Lens s t a b Which is defined in  'http://hackage.haskell.org/package/lens lens package(. Only difference is that arguments of  are flipped. See also section  #g:3Constructing Lenses.Name of  simply says that we apply   (0/) to first (left) arguments and then we apply .`Fixity is left associative and set to value 8, which is one less then of function composition (.).Since version 0.10.0.0.Flipped variant of ~@^>.4This function has the same functionality as function 2lens :: (s -> a) -> (s -> b -> t) -> Lens s t a b Which is defined in  'http://hackage.haskell.org/package/lens lens package. See also section  #g:3Constructing Lenses.Name of ~@^> simply says that we apply   (01) to second (right) arguments and then we apply ~@^>.`Fixity is left associative and set to value 8, which is one less then of function composition (.).Since version 0.10.0.0.Convenience wrapper for: \f g -> 0 . f '^^' 0 . g@.Name of  simply says that we apply   (0+) to both its arguments and then we apply .`Fixity is left associative and set to value 8, which is one less then of function composition (.).Since version 0.10.0.0.Flipped variant of .Name of  simply says that we apply   (0+) to both its arguments and then we apply .KFixity is set to value 8, which is one less then of function composition (.).Since version 0.10.0.0.Convenience wrapper for: \f g -> 0 . f '^^' g@.WThis function allows us to define generic lenses from gettern and setter. See section  #g:3Constructing Lenses for details.Name of  simply says that we apply   (0/) to first (left) arguments and then we apply .`Fixity is left associative and set to value 8, which is one less then of function composition (.).Since version 0.10.0.0.Flipped variant of .WThis function allows us to define generic lenses from gettern and setter. See section  #g:3Constructing Lenses for details.Name of  simply says that we apply   (01) to second (right) arguments and then we apply .KFixity is set to value 8, which is one less then of function composition (.).Since version 0.10.0.0.Convenience wrapper for:  \f g -> f '^^' 0 . g@.Name of  simply says that we apply   (01) to second (right) arguments and then we apply .`Fixity is left associative and set to value 8, which is one less then of function composition (.).Since version 0.10.0.0.Flipped variant of .Name of  simply says that we apply   (0/) to first (left) arguments and then we apply .KFixity is set to value 8, which is one less then of function composition (.).Since version 0.10.0.0..   . .      6Lazy function combinator "between" and its variations.(c) 2013-2015 Peter TrakoBSD3peter.trsko@gmail.com experimentalNoImplicitPrelude Safe-InferredYCore combinator of this module and we build others on top of. It also has an infix form  and flipped infix form .This function Defined as:  f g -> (f .) . (. g) Infix variant of .gFixity is left associative and set to value 8, which is one less then fixity of function composition (1).Flipped variant of  , i.e. flipped infix variant of .hFixity is right associative and set to value 8, which is one less then fixity of function composition (1).As /, but first function is also parametrised with a, hence the name  . Character ^D indicates which argument is parametrised with additional argument.This function is defined as: (f  g) h a -> (f a  g) h a gFixity is left associative and set to value 8, which is one less then fixity of function composition (1).Flipped variant of .hFixity is right associative and set to value 8, which is one less then fixity of function composition (1).9Pass additional argument to first two function arguments.This function is defined as: (f  g) h a b -> (f a  g a) h b  See also / to note the difference, most importantly that E passes the same argument to all its functional arguments. Function ) can be defined in terms of this one as: (f  g) h a = (f    g) h a a 2We can do it also the other way around and define  using : f  g =   . (f .      g) KFixity is set to value 8, which is one less then of function composition (1).Flipped variant of .KFixity is set to value 8, which is one less then of function composition (1).Apply function g) to each argument of binary function and f™ to its result. In suffix "2l" the number is equal to arity of the function it accepts as a third argument and character "l" is for "left associative".  f g = (f  g)  g Interesting observation:  (\f g ->   g f) ===  Apply function g* to each argument of ternary function and f™ to its result. In suffix "3l" the number is equal to arity of the function it accepts as a third argument and character "l" is for "left associative".This function is defined as:  f g = ((f  g)  g)  g &Alternatively it can be defined using :  f g =  f g  g Convenience wrapper for: \f g -> 0 f  0 g Name of   simply says that we apply   (0+) to both its arguments and then we apply .`Fixity is left associative and set to value 8, which is one less then of function composition (1).!Flipped variant of  .Name of ! simply says that we apply   (0+) to both its arguments and then we apply .KFixity is set to value 8, which is one less then of function composition (1)." Apply fmap to first argument of  . Dual to $ which applies 0 to second argument. Defined as: f " g = 0 f  g mThis function allows us to define lenses mostly for pair of functions that form an isomorphism. See section  #g:3Constructing Lenses for details.Name of " simply says that we apply   (0.) to first (left) argument and then we apply .`Fixity is left associative and set to value 8, which is one less then of function composition (1).#Flipped variant of ".mThis function allows us to define lenses mostly for pair of functions that form an isomorphism. See section  #g:3Constructing Lenses for details.Name of # simply says that we apply   (00) to second (right) argument and then we apply .hFixity is right associative and set to value 8, which is one less then fixity of function composition (1).$!Apply fmap to second argument of  . Dual to " which applies 0 to first argument. Defined as: f $ g -> f  0 g Name of $ simply says that we apply   (00) to second (right) argument and then we apply .aFixity is right associative and set to value 8, which is one less then of function composition (1).%Flipped variant of $.Name of % simply says that we apply   (0.) to first (left) argument and then we apply .gFixity is left associative and set to value 8, which is one less then fixity of function composition (1).&Convenience wrapper for: \f g -> 0 . f '^~' g@.4This function has the same functionality as function 2lens :: (s -> a) -> (s -> b -> t) -> Lens s t a b Which is defined in  'http://hackage.haskell.org/package/lens lens package(. Only difference is that arguments of & are flipped. See also section  #g:3Constructing Lenses.Name of & simply says that we apply   (0/) to first (left) arguments and then we apply .`Fixity is left associative and set to value 8, which is one less then of function composition (1).'Flipped variant of ~@^>.4This function has the same functionality as function 2lens :: (s -> a) -> (s -> b -> t) -> Lens s t a b Which is defined in  'http://hackage.haskell.org/package/lens lens package. See also section  #g:3Constructing Lenses.Name of ~@^> simply says that we apply   (01) to second (right) arguments and then we apply ~@^>.`Fixity is left associative and set to value 8, which is one less then of function composition (1).(Convenience wrapper for: \f g -> 0 . f '^^' 0 . g@.Name of ( simply says that we apply   (0+) to both its arguments and then we apply .`Fixity is left associative and set to value 8, which is one less then of function composition (1).)Flipped variant of (.Name of ) simply says that we apply   (0+) to both its arguments and then we apply .KFixity is set to value 8, which is one less then of function composition (1).*Convenience wrapper for: \f g -> 0 . f '^^' g@.WThis function allows us to define generic lenses from gettern and setter. See section  #g:3Constructing Lenses for details.Name of * simply says that we apply   (0/) to first (left) arguments and then we apply .`Fixity is left associative and set to value 8, which is one less then of function composition (1).+Flipped variant of *.WThis function allows us to define generic lenses from gettern and setter. See section  #g:3Constructing Lenses for details.Name of + simply says that we apply   (01) to second (right) arguments and then we apply .KFixity is set to value 8, which is one less then of function composition (1).,Convenience wrapper for:  \f g -> f '^^' 0 . g@.Name of , simply says that we apply   (01) to second (right) arguments and then we apply .`Fixity is left associative and set to value 8, which is one less then of function composition (1).-Flipped variant of ,.Name of - simply says that we apply   (0/) to first (left) arguments and then we apply .KFixity is set to value 8, which is one less then of function composition (1). !"#$%&'()*+,- !"#$%&'()*+,- !"#$%&'()*+,- !"#$%&'()*+,- !"#$%&'()*+,-1Function combinator "between" and its variations.(c) 2013-2015 Peter TrskoBSD3peter.trsko@gmail.com experimentalNoImplicitPrelude Safe-Inferred !"#$%&'()*+,-2 !"#$ !"#$%&'(&)*&)%+between-0.10.0.0Data.Function.Between.StrictData.Function.Between.LazyData.Function.Between^@~ Data.Functionidon Data.Functor<$>const Data.Tuplecurrysnduncurrybetween~@~~@@~~@@^^@^^@@^ between2l between3l<~@~><~@@~><~@~~@@~>~@~><~@@~<^@~~@@^><^@^><^@@^><^@^^@@^>^@^><^@@^.basePrelude$!GHC.Basefmap