!oEDa      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`NoneGabcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Safe) size-basedA sized functor is an applicative functor extended with a notion of cost/size of contained values. This is useful for any type of bounded recursion over infinite sets, most notably for various kind of enumerations. The intention is that every sized functor definition models a (usually) infinite set (technically a bag) with a finite number of values of any given size. As long as every cyclic (recursive) definition has at least one application of pay, this invariant is guaranteed. The module Control.Enumerable provides sized functor definitions for a lot of data types, such that the size of a value is the number of constructor applications it contains. It also allows deriving these functors for any user defined data type (using Template Haskell). size-based7Increases the cost/size of all values in the given set. size-based Default: pair a b = (,)  $ a  * b. size-based Default: aconcat = foldr (<|>) empty size-basedFinite numeric types. fin n contains all non-negative numbers below n. This definition is flat, all integers have the same size. Implementing this function efficiently will have a great impact on applications that use a lot of bounded numeric types (e.g. Int).%Default: aconcat (map pure [0..n-1])  size-basedSame as  but the size of values may differ. By default, the size of an integer is the number of significant bits in its binary representation. In other words, 0 has size zero, the values for size k>0 in  finBits n are in the interval (2^(k-1),min (2^k-1) n).  size-basedoNon-negative integers. By default, the size of an integer is the number of digits in its binary representation.%       None?@ABCDEFGHIJKLMNOPPQRSTUVWXYZ[\]^^_`abcdefghijkijlimnimoimpimqimrimsimtimuimvimwimximyimzim{im|im}im~imimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimijij ij ij ij ij ijijijijijijijijijijijijijijijijijijij ij!ij"ij#ij$ij$ij%ij%ij&im'im(ij)ij*ij+ij,ij-ij.ij/ij0ij1ij2ij3ij4ij5ij6ij7ij8ij9ij:im;im<im=im>im?ij@ijAijBijCijDijEijFijGijHijIijJijKijLijMijNijOijPijQijRijSijTijUijVijWijXijYijZij[ij\ij]ij^ij_ij`ijaijbijcijdijeijfijgijhijiijjijkijlijmimnimoijpijqijrimsimtimuijvijvijwimximyimzim{im|ij}ij~ijijimijijijijijimijijijijiiiiiiiiiiiii i i i i iiimimimimimimimimimimimimimimimimim im!im"im#im$im%im&im'im(im)im*im+im,im-im.im/im0im1im2im3im4im5im6im7im8im9im:im;i<=i<>i<?i<@i<Ai<Bi<Ci<DijEijFijGijHijIijJijKijLijMijNijOijPijQijRijSijTijUijVijWijXijYijZij[ij\ij]ij^ij_ij`ijaijbijcijdijeijeijfijgijhijiijjijkijlijmijnijoijpijqijrijsijtijuijuijvijwijxijyijzij{ij|ij|ij}ij~ijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijij        )size-based-0.1.2.0-GG8SF4mgzbgLA1J1oLOrsLControl.Enumerable Control.SizedControl.Enumerable.ValuesControl.Enumerable.CountControl.Enumerable.DerivebaseData.Typeable.InternalTypeable1dictionary-sharing-0.1.0.0-54HFEFSyjDDKJbXydYJPzAData.ClassSharingshareShared ShareableSizedpaypairaconcatfinfinSizednaturalskbitsConstructorDeriv CoEnumerable coEnumerateInfinite Enumerable enumerateaccesslocalglobaldatatypec0c1c2c3c4c5c6c7functionderiveEnumerabledAll dExcludingdExceptderiveEnumerable'$fSizedShareable$fEnumerableNonEmpty$fEnumerablePrintable$fEnumerableUnicode$fEnumerableDouble$fEnumerableFloat$fEnumerableChar$fEnumerableInt64$fEnumerableInt32$fEnumerableInt16$fEnumerableInt8$fEnumerableInt$fEnumerableWord64$fEnumerableWord32$fEnumerableWord16$fEnumerableWord8$fEnumerableWord$fEnumerableInteger$fEnumerableOrdering$fEnumerableMaybe$fEnumerable[]$fEnumerableEither$fEnumerableBool$fEnumerable(,,,,)$fEnumerable(,,,)$fEnumerable(,,)$fEnumerable(,)$fEnumerable()$fEnumerableNat$fEnumerableRatio$fInfiniteInteger$fCoEnumerable[]$fCoEnumerableBool$fEnumerable(->)Values runValuesvaluesvalues' allValues $fSizedValues$fAlternativeValues$fApplicativeValues$fFunctorValues$fSizedMaxSize$fAlternativeMaxSize$fApplicativeMaxSize$fFunctorMaxSize $fShowMaxSizeCountcount!!* $fSizedCount $fMonoidCount$fSemigroupCount$fAlternativeCount$fApplicativeCount$fFunctorCount $fShowCounttemplate-haskellLanguage.Haskell.TH.SyntaxnewNamemkName Language.Haskell.TH.Lib.InternalcharLstringLintegerLintPrimL wordPrimL floatPrimL doublePrimL rationalL stringPrimL charPrimLlitPvarPtupP unboxedTupP unboxedSumPconPinfixPtildePbangPasPwildPrecPlistPsigPviewPfieldPatmatchclausevarEconElitEappEappTypeEinfixEinfixAppsectionLsectionRlamElamCaseEtupE unboxedTupE unboxedSumEcondEmultiIfEletEcaseEdoEcompEfromE fromThenEfromToE fromThenToElistEsigErecConErecUpdEstaticE unboundVarElabelEfieldExpguardedBnormalBnormalGEpatGEbindSletSnoBindSparSfunDvalDinstanceWithOverlapDsigDforImpDpragInlD pragSpecD pragSpecInlD pragSpecInstD pragRuleDpragAnnD tySynInstDinfixLDinfixRDinfixND roleAnnotDstandaloneDerivWithStrategyD defaultSigDpatSynD patSynSigD pragCompleteDcxtnoSourceUnpackednesssourceNoUnpack sourceUnpacknoSourceStrictness sourceLazy sourceStrictnormalCrecCinfixCgadtCrecGadtCbangbangType varBangTypeunidir implBidir explBidir prefixPatSyn infixPatSyn recordPatSynvarTconTtupleT unboxedTupleT unboxedSumTarrowTlistTappT equalityTlitT promotedTpromotedTupleT promotedNilT promotedConsT wildCardTnumTyLitstrTyLitnominalRrepresentationalRphantomRinferRvarKconKtupleKarrowKlistKappKinjectivityAnncCallstdCallcApiprim javaScriptunsafesafe interruptiblefunDeptySynEqnruleVar typedRuleVarvalueAnnotationtypeAnnotationmoduleAnnotation derivClauseExpVarEConELitEAppEAppTypeEInfixEUInfixEParensELamELamCaseETupE UnboxedTupE UnboxedSumECondEMultiIfELetECaseEDoECompE ArithSeqEListESigERecConERecUpdEStaticE UnboundVarELabelEMatchClauseQExpQDecQPatLitPVarPTupP UnboxedTupP UnboxedSumPConPInfixPUInfixPParensPTildePBangPAsPWildPRecPListPSigPViewPMatchQClauseQStmtQConQTypeQTypeForallTAppTSigTVarTConT PromotedTInfixTUInfixTParensTTupleT UnboxedTupleT UnboxedSumTArrowT EqualityTListTPromotedTupleT PromotedNilT PromotedConsTStarT ConstraintTLitT WildCardTDecFunDValDDataDNewtypeDTySynDClassD InstanceDSigDForeignDInfixDPragmaD DataFamilyD DataInstD NewtypeInstD TySynInstDOpenTypeFamilyDClosedTypeFamilyD RoleAnnotDStandaloneDerivD DefaultSigDPatSynD PatSynSigD BangTypeQ VarBangTypeQFieldExpFieldPatNamePatQ FieldPatQ FieldExpQFunDepPredPredQ TyVarBndrQDecsQ RuleBndrQ TySynEqnQTExpunTypeInjectivityAnnKindQOverlap Overlappable OverlappingOverlaps Incoherent DerivClauseQ DerivStrategy StockStrategyAnyclassStrategyNewtypeStrategyghc-boot-th-8.4.3GHC.LanguageExtensions.Type ExtensionStrictCppOverlappingInstancesUndecidableInstancesIncoherentInstancesUndecidableSuperClassesMonomorphismRestriction MonoPatBindsMonoLocalBindsRelaxedPolyRecExtendedDefaultRulesForeignFunctionInterfaceUnliftedFFITypesInterruptibleFFICApiFFIGHCForeignImportPrim JavaScriptFFIParallelArraysArrowsTemplateHaskellTemplateHaskellQuotes QuasiQuotesImplicitParamsImplicitPreludeScopedTypeVariablesAllowAmbiguousTypes UnboxedTuples UnboxedSums BangPatterns TypeFamiliesTypeFamilyDependencies TypeInTypeOverloadedStringsOverloadedLists NumDecimalsDisambiguateRecordFieldsRecordWildCards RecordPuns ViewPatternsGADTs GADTSyntaxNPlusKPatternsDoAndIfThenElseRebindableSyntaxConstraintKinds PolyKinds DataKinds InstanceSigs ApplicativeDoStandaloneDerivingDeriveDataTypeableAutoDeriveTypeable DeriveFunctorDeriveTraversableDeriveFoldable DeriveGenericDefaultSignaturesDeriveAnyClass DeriveLiftDerivingStrategiesTypeSynonymInstancesFlexibleContextsFlexibleInstancesConstrainedClassMethodsMultiParamTypeClassesNullaryTypeClassesFunctionalDependencies UnicodeSyntaxExistentialQuantification MagicHashEmptyDataDeclsKindSignaturesRoleAnnotationsParallelListCompTransformListCompMonadComprehensionsGeneralizedNewtypeDeriving RecursiveDoPostfixOperators TupleSections PatternGuardsLiberalTypeSynonyms RankNTypesImpredicativeTypes TypeOperatorsExplicitNamespacesPackageImportsExplicitForAllAlternativeLayoutRule!AlternativeLayoutRuleTransitionalDatatypeContextsNondecreasingIndentation RelaxedLayoutTraditionalRecordSyntax LambdaCase MultiWayIfBinaryLiteralsNegativeLiteralsHexFloatLiteralsDuplicateRecordFieldsOverloadedLabels EmptyCasePatternSynonymsPartialTypeSignaturesNamedWildCardsStaticPointersTypeApplications StrictDataMonadFailDesugaringEmptyDataDerivingLanguage.Haskell.TH.LibtyVarSigkindSignoSig constraintKstarKkindedTVplainTVsigTforallTforallCclosedTypeFamilyDopenTypeFamilyD dataFamilyD newtypeInstD dataInstDclassDnewtypeDdataDtySynD thisModuleappsE varStrictType strictTypeunpacked notStrictisStrictequalPclassPparensTuInfixTinfixTstandaloneDerivD pragLineD instanceDstringE arithSeqElam1EuInfixEparensEdynpatGnormalG fromThenToRfromToR fromThenRfromRparensPuInfixPInfoQTExpQTyLitQCxtQBodyQGuardQRangeQSourceStrictnessQSourceUnpackednessQBangQ StrictTypeQVarStrictTypeQ PatSynDirQ PatSynArgsQFamilyResultSigQLanguage.Haskell.TH.Ppr pprParendTypepprPatpprLitpprExppprintPprpprppr_list defaultFixity maxPrecedenceunboxedSumTypeNameunboxedSumDataNameunboxedTupleTypeNameunboxedTupleDataName tupleTypeName tupleDataName nameSpace namePackage nameModulenameBase extsEnabled isExtEnabledrunIOlocation isInstancereifyConStrictness reifyModulereifyAnnotations reifyRolesreifyInstances reifyFixityreifylookupValueNamelookupTypeNamerecover reportWarning reportErrorreportrunQ NameSpaceLoc loc_filename loc_package loc_module loc_startloc_endInfoClassIClassOpITyConIFamilyI PrimTyConIDataConIPatSynIVarITyVarI ModuleInfo ParentNameSumAltSumArityArityUnlifted InstanceDecFixityFixityDirectionInfixLInfixRInfixNLitCharLStringLIntegerL RationalLIntPrimL WordPrimL FloatPrimL DoublePrimL StringPrimL CharPrimLBodyGuardedBNormalBGuardNormalGPatGStmtBindSLetSNoBindSParSRangeFromR FromThenRFromToR FromThenToR DerivClause PatSynTypeTypeFamilyHeadTySynEqnForeignImportFExportFCallconvCCallStdCallCApiPrim JavaScriptSafetyUnsafeSafe InterruptiblePragmaInlineP SpecialisePSpecialiseInstPRulePAnnPLineP CompletePInlineNoInline Inlinable RuleMatchConLikeFunLikePhases AllPhases FromPhase BeforePhaseRuleBndrRuleVar TypedRuleVar AnnTargetModuleAnnotationTypeAnnotationValueAnnotationCxtSourceUnpackedness SourceUnpackSourceNoUnpackNoSourceUnpackednessSourceStrictness SourceLazy SourceStrictNoSourceStrictnessDecidedStrictness DecidedLazy DecidedStrict DecidedUnpackConNormalCRecCInfixCForallCGadtCRecGadtCBang PatSynDirUnidir ImplBidir ExplBidir PatSynArgs PrefixPatSyn InfixPatSyn RecordPatSyn TyVarBndrPlainTVKindedTVFamilyResultSigNoSigKindSigTyVarSigTyLitNumTyLitStrTyLitRoleNominalRRepresentationalRPhantomRInferR AnnLookupAnnLookupModule AnnLookupNameKind instanceForGHC.Base<$ Applicativepure<*>*>liftA2<*Control.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipListData.Functor.ConstConstgetConst Data.Functor<$>liftA3liftA<**> Alternativeempty<|>somemany integer-gmpGHC.Integer.TypeIntegerrat<->