!#      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~SafeSX((c) 2019 Edward Kmett, 2019 Oleg GrenrusBSD-2-Clause OR Apache-2.0"Oleg Grenrus <oleg.grenrus@iki.fi> experimental non-portable Trustworthy&'-=>?@AHSUVX_fhkd!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) "E forall a. (r -> a) -> a "E r and this works for all  Distributive /  Representable functors.%hkdGenerically derive . Simple usage: edata 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: bdata 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.1-FKP9qiLzdIsH4Z2ERzFfIjData.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$fGFTraversable1kTYPEmfg:+::+:$fGFTraversable1kTYPEmfgV1V1$fGFTraversablekTYPEmfgM1M1$fGFTraversable2kTYPEmfgK1K1$fGFTraversable2kTYPEmfgK1K10$fGFTraversable2kTYPEmfg:*::*:$fGFTraversable2kTYPEmfgM1M1$fGFTraversable2kTYPEmfgU1U1$fGFTraversable1kTYPEmfgM1M1$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.0.3-94hk05ZvlAQHzkcBmpDyafData.Some.GADTSomebase GHC.GenericsGenericGHC.Base Applicative#..#