Îõ³h& ÛG–      !"#$%&'()*+,-./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 ª.shkdthkd(  !"#$%&'( !"#%&'  $«9 ¬8­        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“””•––—˜™š›œžŸ ¡¢£€¥Š§š©§ª«¬­® hkd-0.2.1-G7g21W3SILE3PNbTKqyv6wData.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 $fShowElement $fEqElement$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.5-6q0j8cjefECB9A5WpdTYcZData.Some.GADTSomebase GHC.GenericsGenericGHC.Base Applicative#..#