Îõ³h&‹!È      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGNone'(-./28:?ÁÂÉÖ×Ùì &posableFold ! over a list (of lists, of lists)Example:Ã:kind! FoldMerge '[ '[ '[A, B, C], '[D, E]], '[ '[F, G]], '[ '[H]]]ÈFoldMerge '[ '[ '[A, B, C], '[D, E]], '[ '[F, G]], '[ '[H]]] :: [[Type]]"= '[ '[A, B, C, F, G, H], '[D, E]]posableãZip two lists of lists with ++` as operator, while keeping the length of the longest outer listExample:0:kind! Merge '[ '[A, B, C], '[D, E]] '[ '[F, G]]5Merge '[ '[A, B, C], '[D, E]] '[ '[F, G]] :: [[Type]]= '[ '[A, B, C, F, G], '[D, E]]posableMap : over a list (of lists, of lists), typelevel equivalent of  map . concat :: [[[a]]] -> [[a]]Example:=:kind! MapConcat '[ '[ '[A, B], '[C, D]], '[[E, F], '[G, H]]]ÂMapConcat '[ '[ '[A, B], '[C, D]], '[[E, F], '[G, H]]] :: [[Type]]"= '[ '[A, B, C, D], '[E, F, G, H]]posable4Concatenate a list of lists, typelevel equivalent of concat :: [[a]] -> [a]`Example:":kind! Concat '[ '[A, B], '[C, D]]%Concat '[ '[A, B], '[C, D]] :: [Type]= '[A, B, C, D]posableÔTypelevel sum, contains one value from the typelevel list of types, or undefined. posableType witness for posableTypelevel product of  s with valuesposableType witness for posableÅThe set of types that can exist in the sums. This set can be extended by the user by providing an instance of Ground for their types. The mkGround function gives a default value for the type. Ground depends on Typeable, as this makes it possible for library users to inspect the types of the contents of the sums.posable Concatenation of typelevel listsposable Concatenates  valuesposable Concatenates  valuesposableMerge a  and a posable Merge two sposable UnMerge a  , using two 5s as witnesses for the left and right argument of (. Produces a value of type Product rightposable UnMerge a  , using two 5s as witnesses for the left and right argument of '. Produces a value of type Product leftposable UnConcat a  , using a - as the witness for the first argument of 9. Produces a tuple with the first and second argument of    5None'(./9:>?ÀÉÔÖ×Ùì q)posable³POSable, the base of this library. Provide a compact memory representation for a type and a function to get back to the original type. This memory representation consist of ,Ø, that represent all constructor choices in the type in a single Finite integer, and /² which represents all values in the type as a Product of Sums, which can be mapped to a struct-of-arrays representation for use in array-based languages like Accelerate.-posableThe -Ð function returns the range of each constructor. A few examples: >>> tags Bool [1,1] >>> tags *(Either Float Float) [1,1] >>> tags  (Bool, Bool) [4] >>> tags (Either Bool Bool) [2,2] )*+/,-.0 )*+/,-.0None'(/2:ÉÖ×Ùì ·))None'(/:ÉÖ×Ùì éGGNone'(/8:ÉÖ×ÙìÈ     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPÑposable-1.0.0.0-inplaceGenerics.POSable.POSableGenerics.POSable.RepresentationGenerics.POSable.InstancesGenerics.POSable.THExamplesØfinite-typelits-0.1.4.2-cffb642d2b4ebdd70d0e077b47fab8444345a54a74dd57115394db6cc279af93Data.Finite.InternalFiniteÕgenerics-sop-0.5.1.2-7397d8dc424c645f5b2a5eaecec67b8ec704b1247a0593db92502bb69a2075a6Generics.SOP.UniverseGeneric FoldMergeMerge MapConcatConcatUndefSumPickSkipSumTypeSTSuccSTZeroProductNilCons ProductTypePTNilPTConsGroundmkGround++concatPTconcatPmergemergeT splitRight splitLeft unConcatP $fShowSum $fShowProduct $fGroundUndef $fShowSumType$fShowProductType $fEqUndef $fShowUndef$fGenericUndef$fGenericUndef0$fEqSum $fEqProductPOSableChoicesFieldschoicestags fromPOSablefields emptyFields $fGPOSableSOP$fPOSableUndef $fPOSable()$fPOSableOrdering$fPOSableEither$fPOSableMaybe $fPOSableBool$fPOSable(,,,,,,,,,,,,,,,)$fPOSable(,,,,,,,,,,,,,,)$fPOSable(,,,,,,,,,,,,,)$fPOSable(,,,,,,,,,,,,)$fPOSable(,,,,,,,,,,,)$fPOSable(,,,,,,,,,,)$fPOSable(,,,,,,,,,)$fPOSable(,,,,,,,,)$fPOSable(,,,,,,,)$fPOSable(,,,,,,)$fPOSable(,,,,,)$fPOSable(,,,,)$fPOSable(,,,) $fPOSable(,,) $fPOSable(,)mkPOSableGround