Îõ³h$ÈëË      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJNone ./29<=>?ÀÁÂÉÎÔÖ×Ùçèì ± finite-table The derived 1 implementation of a generic representation type. finite-table9The derived cardinality of a generic representation type. finite-tableA wrapper type around  a# to support DerivingVia on GHC 8.6.äInstance methods that don't mention the instance head outside of type families / aliases don't work with DerivingVia on GHC 8.6 because it uses type signatures rather than TypeApplications to choose the instance to call into. finite-table'A typeclass of finite enumerable types.These allow constructing  Functors using a simple Ð as the underlying storage, with constant-time lookup and efficient traversals.Note that since K is (currently) represented by L", any type with more values than Lé can't have an instance. This means we can't have instances for 32- and 64-bit arithmetic types, since L0 is only required to have 30 bits of precision./Annoyingly, we also can't have an instance for L and M , because K wastes one bit of the L5 by forbidding negative values. The cardinality of L and MÄ would need to be twice as large as we can actually represent in a KÓ. Another obstacle is that their cardinality varies between implementations and architectures; it's possible to work around this by making their Cardinality an irreducible type family application, and using 'Data.SInt.SI#'4 to plug in a value at runtime, but this makes the K s related to L and MÄ annoying to work with, since their bound is only known at runtime.ãFortunately, those instances are unlikely to be important, since a table of 2^32 elements is moderately impractical (32GiB of pointers alone), and a table of 2^64 elements is unrepresentable in current computer architectures.  and  È shall be total functions and shall be the two sides of an isomorphism. finite-table3A witness that the cardinality is known at runtime.ÐThis isn't part of the class context because we can only perform arithmetic on NÙ instances in expression context; that is, we can't convince GHC that an instance with .type Cardinality (Maybe a) = Cardinality a + 1 is valid if the N+ is in the class context. Instead, we use O0 to allow computing the cardinality at runtime.  finite-table"A witness that the cardinality of a is known at runtime.  finite-table*Generate a list containing every value of a.  finite-tableAn  between a and the corresponding K type.  None 8>ÀÁÂÉÎÔÖ×ÙìŸ - finite-tableA compact array of b s indexed by a, according to  a./ finite-table  for a constrained   .0 finite-table3The identity morphism of a constrained category of -s.1 finite-table-The composition of a constrained category of -s.2 finite-tableP7 a function whose argument is a finite enumerable type.3 finite-tableMemoize a function by using a Q as a lazy lookup table.%Given a function whose argument is a “ type, return a new function that looks up the argument in a table constructed by applying the original function to every possible value. Since Q9 stores its elements boxed, none of the applications of fç in the table are forced until they're forced by calling the memoized function and forcing the result.4 finite-tableAn R between two S Functors with the same T type.5 finite-tableInfix U, monomorphized.6 finite-tableLens on a single element.7 finite-tableMonomorphized V,. Can be useful for type ambiguity reasons.8 finite-table&Convenience function for building any S as if by P. ?tabulateA f = sequenceA (tabulate f) = traverse f (tabulate id)D finite-tablePretty-print a Table as a 7 expression. ù »> pp $ (tabulate (even . finToInt) :: Table (Fin 3) Bool ) mkTable (\case { 0 -> True; 1 -> False; 2 -> True }) -./012345678 -.5607/13284  Safe-InferredÞWXYZ[\]^ß  !"#$%&'()*+,-./0123456789::;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\Z[]^_`abc^defghijjkjljm n o p q r s t uö+finite-table-0.1.0.0-37UdjZIdiaj7D1INrUDCWt Data.FiniteData.Finite.TableData.Functor.Rep RepresentableData.Vec.ShortVec Control.LensIsoData.Profunctorlmap ProfunctorPaths_finite_tableGFinite gcardinalitygtoFingfromFin GCardinalitySCFinite Cardinality cardinality'toFinfromFin cardinality enumerateasFin$fBoundedWrapped $fEnumWrapped $fFiniteFin$fFiniteWord16 $fFiniteWord8 $fFiniteInt16 $fFiniteInt8 $fFiniteChar $fGFinitek:*: $fGFinitek:+: $fGFinitekM1 $fGFinitekK1 $fGFinitekU1 $fGFinitekV1$fFiniteWrapped$fFinite(,,,,) $fFinite(,,,) $fFinite(,,) $fFinite(,)$fFiniteEither $fFiniteMaybe $fFiniteMin $fFiniteMax $fFiniteFirst $fFiniteLast$fFiniteWrappedMonoid$fFiniteIdentity $fFiniteVoid$fFiniteOrdering $fFiniteBool $fFinite()Table lmapTableidTable composeTable traverseRepmemoize retabulated!ixmkTable tabulateA$fTraversableWithIndexaTable$fFoldableWithIndexaTable$fFunctorWithIndexaTable$fRepresentableTable$fDistributiveTable$fTraversableTable$fDefaultTable$fApplicativeTable$fSerializeTable $fNFDataTable $fDiffTable$fPortrayTable $fEqTable $fOrdTable $fShowTable$fFunctorTable$fFoldableTable$fGenericTable%fin-int-0.1.0.0-4SUEJUK3Sa309xl6S2kfpData.Fin.Int.ExplicitFinghc-prim GHC.TypesIntWordbase GHC.TypeNatsKnownNat#sint-0.1.0.0-3rQur2z0I2hKWWFRQD2Lmt Data.SIntSIntData.Traversabletraverse(short-vec-0.1.0.0-AaZIVe1V1dSLGN3Vh9ADeEData.Vec.Short.Internal lens-5.0.1-5NplE4uOsgxHfpKX6aCZ3Control.Lens.Type&adjunctions-4.4-8yH2rGaUZ6mH32HMbe9xgYRepindextabulateversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName