h&82      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ BSD-style (see the file LICENSE)sjoerd@w3future.com experimental non-portable Safe-Inferred ,3x  one-linerA generic function using a  + works on any algebraic data type of kind  Type -> Type5, including those with no constructors and constants. one-linerA generic function using a + works on any algebraic data type of kind Type5, including those with no constructors and constants. one-linerA generic function using a 7 works on any data type with at least one constructor. one-linerA generic function using a  works on any data type with exactly one constructor, a.k.a. records, with multiple fields ( ) or no fields ( ). is similar to ProductProfuctor from the product-profunctor package, but using types from GHC.Generics.    BSD-style (see the file LICENSE)sjoerd@w3future.com experimental non-portable Safe-Inferred()./03 W one-linerAutomatically apply a lifted function to a polymorphic argument as many times as possible.A constraint `FunConstraint c t` is equivalent to the conjunction of constraints `c s` for every argument type of t.If r is not a function type: c a :- FunConstraints c (a -> r) (c a, c b) :- FunConstraints c (a -> b -> r) (c a, c b, c d) :- FunConstraints c (a -> b -> d -> r) Y one-liner&The result type of a curried function.If r= is not a function type (i.e., does not unify with `_ -> _`): Y (a -> r) ~ r Y (a -> b -> r) ~ r Y (a -> b -> c -> r) ~ r \ one-liner\# is a constraint type synonym. The  instance can be derived, and any generic representation will be an instance of \` and Z.^ one-liner^1 is a constraint type synonym. An instance is an \! with *at least* one constructor.` one-liner`1 is a constraint type synonym. An instance is an \ with *exactly* one constructor.c one-linerc is a constraint type synonym, containing the constraint requirements for an instance for t of class c$. It requires an instance of class c for each component of t.4UVWXYZ[\]^_`abcdgfehijklmnopqrstuvwxyz{|}~4xyz{wvutsrqponmljk|}~hidgfecba`_^]\[ZYWXUV9  BSD-style (see the file LICENSE)sjoerd@w3future.com experimental non-portable Safe-Inferred./3 one-linerAny type is instance of , you can use it with @0 if you don't actually need a class constraint. one-linerConstraint-level  duplicate , of kind )(k -> Constraint) -> k -> k -> Constraint. one-liner Type-level join , of kind (k -> k -> k') -> k -> k'. one-liner'Get the index in the lists returned by create and createA' of the constructor of the given value.+For example, this is the implementation of put that generates the binary data that the above implentation of get expects: put t = putWord8 ( ( t))  gfoldMap @Binary put t  BSD-style (see the file LICENSE)sjoerd@w3future.com experimental non-portable Trustworthy .3^ one-liner.Map over a structure, updating each component. is  specialized to (->). one-liner7Map over a structure linearly, updating each component. is ! specialized to the linear arrow. one-linerMap each component of a structure to an action, evaluate these actions from left to right, and collect the results. is  specialized to . one-linerMap each component of a structure to an action linearly, evaluate these actions from left to right, and collect the results. is  specialized to linear . one-liner is  specialized to (->). one-liner is ! specialized to the linear arrow. one-liner is  specialized to . one-liner is  specialized to linear . one-liner is  specialized to linear  , requiring  for constants. one-linerCombine two values by combining each component of the structures with the given function, under an applicative effect. Returns ! if the constructors don't match. is  specialized to  one-liner is  specialized to  one-linerImplement a unary operator by calling the operator on the components. This is here for consistency, it is the same as .  =  @   one-linerImplement a binary operator by calling the operator on the components.  =  @  () =  @ ()  is  specialized to pairs. one-linerCreate an F-algebra, given an F-algebra for each of the components.  f l r = & @c (\(Pair a b) -> f a b) (Pair l r)  is  specialized to . one-liner is  specialized to  (->). one-liner is  specialized to .3 WYZ[\]^_`abc3 \^`c[]_baWYZ BSD-style (see the file LICENSE)sjoerd@w3future.com experimental non-portable Trustworthy .31! one-linerCreate a value (one for each constructor), given how to construct the components.  =    @ []  =    @ []  is  specialized to lists. one-linerCreate a value (one for each constructor), given how to construct the components, under an applicative effect.Here's how to implement get from the binary4 package, first encoding the constructor in a byte: get = getWord8  \ix ->  ( @Binary ( [get]))   ix  is  specialized to . one-liner(Generate ways to consume values of type t'. This is the contravariant version of . is  specialized to . one-liner is  specialized to lists. one-liner is  specialized to . one-linerCreate a value, given a constructor (or a function) and how to construct its components, under an applicative effect.+For example, this is the implementation of 9 for a type with a single constructor (e.g., quadruples (,,,)).  arbitrary =  @ Arbitrary arbitrary (,,,)  one-liner is  specialized to . one-liner.Map over a structure, updating each component. is  specialized to (->). one-liner7Map over a structure linearly, updating each component. is ! specialized to the linear arrow. one-linerMap each component of a structure to a monoid, and combine the results.If you have a class Size, which measures the size of a structure, then this could be the default implementation: size =   getSum   @Size (Sum  size)  is  specialized to . one-linerMap each component of a structure to a linear monoid, and combine the results.9For example. this could be the default implementation of :  consume =  @   is  specialized to . one-linerMap each component of a structure to an action, evaluate these actions from left to right, and collect the results. is  specialized to . one-linerMap each component of a structure to an action linearly, evaluate these actions from left to right, and collect the results.:For example. this could be the default implementations of  and : dupV =  @   move =  @   is  specialized to linear . one-liner fmap =  @   is  specialized to (->). one-liner fmap =  @     is ! specialized to the linear arrow. one-liner  foldMap =  @   is  specialized to . one-liner  traverse =  @   is  specialized to . one-liner  traverse =  @   is  specialized to linear . one-liner is  specialized to linear  , requiring  for constants. one-linerCombine two values by combining each component of the structures to a monoid, and combine the results. Returns ! if the constructors don't match.  s t =  ( s) ( t)   @  s t  is  specialized to   ( m) one-liner Variant of  where you can choose the value which is returned when the constructors don't match.  s t = ` @ ( ( s) ( t))  s t  one-linerCombine two values by combining each component of the structures with the given function, under an applicative effect. Returns ! if the constructors don't match. is  specialized to  one-liner  liftCompare =  @Ord1  liftCompare  is  specialized to   ( m) one-liner Variant of  where you can choose the value which is returned when the constructors don't match. one-liner is  specialized to  one-linerImplement a nullary operator by calling the operator for each component.  =  @   i =  @ ( i)  is  specialized to . one-linerImplement a unary operator by calling the operator on the components. This is here for consistency, it is the same as .  =  @   one-linerImplement a binary operator by calling the operator on the components.  =  @  () =  @ ()  is  specialized to pairs. one-linerCreate a value of a record type (with exactly one constructor), given how to construct the components, under an applicative effect.Here's how to implement get from the binary package: get = ` (For :: For Binary) get ` is  specialized to . one-linerCreate an F-algebra, given an F-algebra for each of the components.  f l r = & @c (\(Pair a b) -> f a b) (Pair l r)  is  specialized to . one-liner is  specialized to  (->). one-liner` is  specialized to . one-liner  cotraverse =  @ Distributive  cotraverse  is  specialized to . WY WY    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_``abcdefghijklmnnopqrstuvwxyz{|}~defghijklm  one-liner-2.1-inplaceGenerics.OneLiner.ClassesGenerics.OneLiner.Internal Generics.OneLiner.Internal.UnaryGenerics.OneLiner.BinaryGenerics.OneLinerTest.QuickCheck arbitraryLineardupVFunctorfmapZiprunZipGenericEmptyProfunctorzeroGenericConstantProfunctoridentityGenericSumProfunctorplusGenericProductProfunctormultGenericUnitProfunctorunitGeneric1ProfunctorGenericProfunctorGenericNonEmptyProfunctorGenericRecordProfunctor dimapForgete1fst1snd1$fProfunctorTannen$fProfunctorProduct$fProfunctorClown$fProfunctorJoker$fProfunctorBiff$fProfunctorCostar$fProfunctorStar$fProfunctorTagged$fGenericUnitProfunctorTannen$fGenericUnitProfunctorProduct$fGenericUnitProfunctorClown$fGenericUnitProfunctorJoker$fGenericUnitProfunctorBiff$fGenericUnitProfunctorCostar$fGenericUnitProfunctorKleisli$fGenericUnitProfunctorStar$fGenericUnitProfunctorTagged$fGenericUnitProfunctorFUN$fGenericUnitProfunctorFUN0 $fGenericProductProfunctorTannen!$fGenericProductProfunctorProduct$fGenericProductProfunctorClown$fGenericProductProfunctorJoker$fGenericProductProfunctorBiff $fGenericProductProfunctorCostar!$fGenericProductProfunctorKleisli$fGenericProductProfunctorStar $fGenericProductProfunctorTagged$fGenericProductProfunctorFUN$fGenericProductProfunctorFUN0$fGenericRecordProfunctorp$fGenericSumProfunctorTannen$fGenericSumProfunctorProduct$fGenericSumProfunctorClown$fGenericSumProfunctorJoker$fGenericSumProfunctorKleisli$fGenericSumProfunctorStar$fGenericSumProfunctorFUN$fGenericSumProfunctorFUN0$fGenericNonEmptyProfunctorp!$fGenericConstantProfunctorTannen"$fGenericConstantProfunctorProduct $fGenericConstantProfunctorClown $fGenericConstantProfunctorJoker"$fGenericConstantProfunctorKleisli$fGenericConstantProfunctorStar$fGenericConstantProfunctorFUN$fGenericConstantProfunctorFUN0$fGenericEmptyProfunctorTannen$fGenericEmptyProfunctorProduct$fGenericEmptyProfunctorClown$fGenericEmptyProfunctorJoker$fGenericEmptyProfunctorKleisli$fGenericEmptyProfunctorStar$fGenericEmptyProfunctorFUN$fGenericEmptyProfunctorFUN0$fGenericProfunctorp$fGeneric1Profunctorp$fGenericConstantProfunctorZip$fGenericEmptyProfunctorZip$fGenericSumProfunctorZip$fGenericProductProfunctorZip$fGenericUnitProfunctorZip$fProfunctorZipPairFunConstraints autoApply FunResultAnyTypeADT1ADT ADTNonEmpty1 ADTNonEmpty ADTRecord1 ADTRecord Constraints01 Constraints1 ConstraintsCtorindexcountADT_generic_|-implies SatisfiesRecordProfunctorNonEmptyProfunctorADT1Profunctor ADTProfunctor ADTRecord1' ADTNonEmpty1'ADT1' ADTRecord' ADTNonEmpty'ADT' Constraints'tofromto1from1generic' generic1' generic01'recordrecord1record01nonEmpty nonEmpty1 nonEmpty01genericgeneric1 generic01.:$f|-:k$f|-:k0$fADT_nullaryIdentityksRec1Rec1$fADT_nullaryIdentityksPar1Par1$fADT_nullaryIdentityks:.::.:$fADT_nullaryunaryksM1M1$fADT_ProxyunaryksK1K1$fADT_IdentityunaryksK1K1$fADT_nullaryunaryks:*::*:$fADT_nullaryunaryks:+::+:$fADT_nullaryunaryksU1U1$fADT_nullaryunaryksV1V1$fGenericConstantProfunctorCtor$fGenericEmptyProfunctorCtor$fGenericSumProfunctorCtor$fGenericProductProfunctorCtor$fGenericUnitProfunctorCtor$fProfunctorCtor $fAnyTypekkab$fFunConstraintscr$fFunConstraintscFUN $fFunctorPairDJ ctorIndex ctorIndex1$fDkcab $fAnyTypekagmapglmap gtraverse gltraversegmap1glmap1 gtraverse1 gltraverse1 gltraverse01zipWithA zipWithA1unaryOpbinaryOpalgebra dialgebra gcotraverse1createcreateAconsumecreate1createA1createA_consume1gfoldMap glfoldMap gfoldMap1mzipWith mzipWith' mzipWith1 mzipWith1' nullaryOpcreateA' createA1'base GHC.GenericsGenericGHC.EnumtoEnumGHC.Base<>prfnctrs-5.6.2-bc6e5e68Data.Profunctor.TypesStarlnr-bs-0.2.0-7850bf54Data.Profunctor.Kleisli.LinearKleisli)Data.Unrestricted.Linear.Internal.MovableMovableemptyGHC.NumnegateNummappendMonoid+Costarbfnctrs-5.5.12-ff6a2d27Data.Bifunctor.BiffBiffminBoundGHC.Listhead$BoundedmaxBoundlast>>=Data.Functor.Compose getComposeCompose!!fromEnumData.Bifunctor.JokerJokerData.Bifunctor.ClownClownsucc.Data.Functor.ConstConst,Data.Unrestricted.Linear.Internal.Consumable Consumable)Data.Unrestricted.Linear.Internal.DupableDupablemove Data.FoldableFoldablefoldMapData.Traversable Traversabletraverse(Data.Functor.Linear.Internal.Traversablememptyghc-prim GHC.ClassescompareOrd GHC.MaybeMaybe fromIntegertggd-0.8.6.1-3ce8a44e Data.TaggedTagged