Îõ³h& ­%”      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“ Safe-Inferred0Ì×Üž”•–—˜™š›œžŸ ¡¢£€¥((c) 2019 Edward Kmett, 2019 Oleg GrenrusBSD-2-Clause OR Apache-2.0"Oleg Grenrus  experimental non-portable Trustworthy)*0ÁÂÃÄÅÌ×ÙÚÜãêÃhkd!Newtyped "natural" transformationhkd Element in f hkd Tabulation. hkd A logarithm.Recall that function arrow, ->& is an exponential object. If we take  f = (->) r, then  ( ((->) r) ÅD forall a. (r -> a) -> a ÅD r and this works for all  Distributive /  Representable functors.%hkdGenerically derive . Simple usage: ådata Record f = Record { fieldInt :: f Int , fieldString :: f String , fieldSome :: Š f } deriving (§ ) instance  Record where  =   instance  Record where  = ! instance  Record where  = % &hkdGenerically derive . Simple usage: âdata Record f = Record { fieldInt :: f Int , fieldString :: f String } deriving (§ ) instance  Record where  = & instance  Record where  = ' RhkdWe only need an Apply part of an š.WhkdWe only need an Apply part of an š.(  !"#$%&'( !"#%&'  $©9 ª8«        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’’“””•–—˜™š›œžŸ ¡¢£€¥Š§¥š©ª«¬hkd-0.2-CvxsesF1U5pDRHjwML4l5hData.HKDData.Functor.ConfusingLimitrunLimitNTrunNTElement runElementTabrunTab Logarithm runLogarithmFContravariant fcontramapFRepeatfrepeatFZipfzipWith FTraversable ftraverse FFoldableffoldMap flengthAccFFunctorffmap~>flength ftraverse_ffor_ ffmapDefaultffoldMapDefaultffor fsequenceindexLogarithm gftraverse gfzipWithgfrepeat$fFFunctorkSome$fFFunctorkSome0$fFFunctorkSome1$fFFunctork:+:$fFFunctork:*:$fFFunctork:.: $fFFunctorkV1 $fFFunctorkU1 $fFFunctorkK1$fFFunctorkSum$fFFunctorkProduct$fFFunctorkCompose$fFFunctorkConst$fFFunctorkProxy$fFFoldablekSome$fFFoldablekSome0$fFFoldablekSome1$fFFoldablek:+:$fFFoldablek:*:$fFFoldablek:.:$fFFoldablekU1$fFFoldablekK1$fFFoldablekV1$fFFoldablekSum$fFFoldablekProduct$fFFoldablekCompose$fFFoldablekConst$fFFoldablekProxy$fFTraversablekSome$fFTraversablekSome0$fFTraversablekSome1$fFTraversablek:+:$fFTraversablek:*:$fFTraversablek:.:$fFTraversablekK1$fFTraversablekV1$fFTraversablekU1$fFTraversablekSum$fFTraversablekProduct$fFTraversablekCompose$fFTraversablekConst$fFTraversablekProxy $fFZipk:.: $fFZipk:*: $fFZipkK1 $fFZipkV1 $fFZipkU1$fFZipkCompose$fFZipkProduct $fFZipkConst $fFZipkProxy $fFRepeatk:.: $fFRepeatk:*: $fFRepeatkK1 $fFRepeatkU1$fFRepeatkCompose$fFRepeatkProduct$fFRepeatkConst$fFRepeatkProxy$fFContravariantk:+:$fFContravariantk:*:$fFContravariantk:.:$fFContravariantkV1$fFContravariantkU1$fFContravariantkK1$fFContravariantkSum$fFContravariantkProduct$fFContravariantkCompose$fFContravariantkConst$fFContravariantkProxy$fFContravariantTYPELogarithm$fFFunctorTYPETab$fFTraversablekElement$fFFoldablekElement$fFFunctorkElement$fFRepeatkElement$fFZipkElement $fFFunctorkNT $fFRepeatkNT $fFZipkNT$fFFoldablekLimit$fFFunctorkLimit$fFRepeatkLimit $fFZipkLimit$fGFTraversable1TYPEkmfg:+::+:$fGFTraversable1TYPEkmfgV1V1$fGFTraversableTYPEkmfgM1M1$fGFTraversable2TYPEkmfgK1K1$fGFTraversable2TYPEkmfgK1K10$fGFTraversable2TYPEkmfg:*::*:$fGFTraversable2TYPEkmfgM1M1$fGFTraversable2TYPEkmfgU1U1$fGFTraversable1TYPEkmfgM1M1$fGFZip1kfghV1V1V1$fGFZipkfghM1M1M1$fGFZip2kfghK1K1K1$fGFZip2kfghK1K1K10$fGFZip2kfghM1M1M1$fGFZip2kfgh:*::*::*:$fGFZip2kfghU1U1U1$fGFZip1kfghM1M1M1$fGFRepeatkgM1$fGFRepeat2kfK1$fGFRepeat2kfK10$fGFRepeat2kfU1$fGFRepeat2kf:*:$fGFRepeat2kgM1$fGFRepeat1kgM1Yoneda runYonedaCurried runCurried FLensLike IxLensLikeLensLike confusingliftCurriedYonedayap iconfusing fconfusing liftCurried lowerCurried liftYoneda lowerYoneda!some-1.0.4-Ie4LOvaJUt45Xclx5E6SeOData.Some.GADTSomebase GHC.GenericsGenericGHC.Base Applicative#..#