-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | "higher-kinded data" -- -- "Higher-kinded data" utilities, e.g. -- --
-- class FFunctor t where -- ffmap :: (f ~> g) -> t f -> t g ---- -- and other classes and types. -- -- Note: this package is experimental. @package hkd @version 0.2 -- | "Higher-Kinded Data" such as it is module Data.HKD type f ~> g = forall a. f a -> g a class FFunctor (t :: (k -> Type) -> Type) ffmap :: FFunctor t => (f ~> g) -> t f -> t g class FContravariant (t :: (k -> Type) -> Type) fcontramap :: FContravariant t => (f ~> g) -> t g -> t f class FFoldable (t :: (k -> Type) -> Type) ffoldMap :: (FFoldable t, Monoid m) => (forall a. f a -> m) -> t f -> m flengthAcc :: FFoldable t => Int -> t f -> Int flength :: FFoldable t => t f -> Int ftraverse_ :: (FFoldable t, Applicative m) => (forall a. f a -> m b) -> t f -> m () ffor_ :: (FFoldable t, Applicative m) => t f -> (forall a. f a -> m b) -> m () class (FFoldable t, FFunctor t) => FTraversable (t :: (k -> Type) -> Type) ftraverse :: (FTraversable t, Applicative m) => (forall a. f a -> m (g a)) -> t f -> m (t g) ffmapDefault :: FTraversable t => (f ~> g) -> t f -> t g ffoldMapDefault :: (FTraversable t, Monoid m) => (forall a. f a -> m) -> t f -> m ffor :: (FTraversable t, Applicative m) => t f -> (forall a. f a -> m (g a)) -> m (t g) fsequence :: (FTraversable t, Applicative f) => t f -> f (t Identity) -- | Generically derive ftraverse. -- -- Simple usage: -- --
-- data Record f = Record
-- { fieldInt :: f Int
-- , fieldString :: f String
-- , fieldSome :: Some f
-- }
-- deriving (Generic)
--
-- instance FFunctor Record where ffmap = ffmapDefault
-- instance FFoldable Record where ffoldMap = ffoldMapDefault
-- instance FTraversable Record where ftraverse = gftraverse
--
gftraverse :: forall t f g m. (Applicative m, Generic (t f), Generic (t g), GFTraversable (Curried (Yoneda m)) f g (Rep (t f)) (Rep (t g))) => (forall a. f a -> m (g a)) -> t f -> m (t g)
class FFunctor t => FZip t
fzipWith :: FZip t => (forall x. f x -> g x -> h x) -> t f -> t g -> t h
class FZip t => FRepeat t
frepeat :: FRepeat t => (forall x. f x) -> t f
-- | Generically derive fzipWith.
--
-- Simple usage:
--
--
-- data Record f = Record
-- { fieldInt :: f Int
-- , fieldString :: f String
-- }
-- deriving (Generic)
--
-- instance FZip Record where fzipWith = gfzipWith
-- instance FRepeat Record where frepeat = gfrepeat
--
gfzipWith :: forall t f g h. (Generic (t f), Generic (t g), Generic (t h), GFZip f g h (Rep (t f)) (Rep (t g)) (Rep (t h))) => (forall a. f a -> g a -> h a) -> t f -> t g -> t h
gfrepeat :: forall t f. (Generic (t f), GFRepeat f (Rep (t f))) => (forall x. f x) -> t f
-- | A logarithm.
--
-- Recall that function arrow, -> is an exponential object.
-- If we take f = (->) r, then
--
-- -- Logarithm ((->) r) ≅ forall a. (r -> a) -> a ≅ r ---- -- and this works for all Distributive / Representable -- functors. newtype Logarithm f Logarithm :: (forall a. f a -> a) -> Logarithm f [runLogarithm] :: Logarithm f -> forall a. f a -> a -- | Tabulation. newtype Tab a f Tab :: (Logarithm f -> a) -> Tab a f [runTab] :: Tab a f -> Logarithm f -> a indexLogarithm :: f a -> Logarithm f -> a -- | Element in f newtype Element a f Element :: f a -> Element a f [runElement] :: Element a f -> f a -- | Newtyped "natural" transformation newtype NT f g NT :: (f ~> g) -> NT f g [runNT] :: NT f g -> f ~> g newtype Limit f Limit :: (forall a. f a) -> Limit f [runLimit] :: Limit f -> forall a. f a instance forall k i (g :: k -> *) (f :: * -> *) (c :: GHC.Generics.Meta). (i GHC.Types.~ GHC.Generics.C, Data.HKD.GFRepeat2 g f) => Data.HKD.GFRepeat1 g (GHC.Generics.M1 i c f) instance forall k i (g :: k -> *) (f :: * -> *) (c :: GHC.Generics.Meta). (i GHC.Types.~ GHC.Generics.S, Data.HKD.GFRepeat2 g f) => Data.HKD.GFRepeat2 g (GHC.Generics.M1 i c f) instance forall k (f :: k -> *) (x :: * -> *) (y :: * -> *). (Data.HKD.GFRepeat2 f x, Data.HKD.GFRepeat2 f y) => Data.HKD.GFRepeat2 f (x GHC.Generics.:*: y) instance forall k (f :: k -> *). Data.HKD.GFRepeat2 f GHC.Generics.U1 instance forall k i (f :: k -> *) (f' :: k -> *) (x :: k). (i GHC.Types.~ GHC.Generics.R, f GHC.Types.~ f') => Data.HKD.GFRepeat2 f (GHC.Generics.K1 i (f' x)) instance forall k i (f :: k -> *) (f' :: k -> *) (t :: (k -> *) -> *). (i GHC.Types.~ GHC.Generics.R, f GHC.Types.~ f', Data.HKD.FRepeat t) => Data.HKD.GFRepeat2 f (GHC.Generics.K1 i (t f')) instance forall k i (g :: k -> *) (f :: * -> *) (c :: GHC.Generics.Meta). (i GHC.Types.~ GHC.Generics.D, Data.HKD.GFRepeat1 g f) => Data.HKD.GFRepeat g (GHC.Generics.M1 i c f) instance forall k i0 i1 i2 (f :: k -> *) (g :: k -> *) (h :: k -> *) (t0 :: * -> *) (t1 :: * -> *) (t2 :: * -> *) (c0 :: GHC.Generics.Meta) (c1 :: GHC.Generics.Meta) (c2 :: GHC.Generics.Meta). (i0 GHC.Types.~ GHC.Generics.C, i1 GHC.Types.~ GHC.Generics.C, i2 GHC.Types.~ GHC.Generics.C, Data.HKD.GFZip2 f g h t0 t1 t2) => Data.HKD.GFZip1 f g h (GHC.Generics.M1 i0 c0 t0) (GHC.Generics.M1 i1 c1 t1) (GHC.Generics.M1 i2 c2 t2) instance forall k (f :: k -> *) (g :: k -> *) (h :: k -> *). Data.HKD.GFZip2 f g h GHC.Generics.U1 GHC.Generics.U1 GHC.Generics.U1 instance forall k (f :: k -> *) (g :: k -> *) (h :: k -> *) (tf :: * -> *) (tg :: * -> *) (th :: * -> *) (sf :: * -> *) (sg :: * -> *) (sh :: * -> *). (Data.HKD.GFZip2 f g h tf tg th, Data.HKD.GFZip2 f g h sf sg sh) => Data.HKD.GFZip2 f g h (tf GHC.Generics.:*: sf) (tg GHC.Generics.:*: sg) (th GHC.Generics.:*: sh) instance forall k i0 i1 i2 (f :: k -> *) (g :: k -> *) (h :: k -> *) (t0 :: * -> *) (t1 :: * -> *) (t2 :: * -> *) (c0 :: GHC.Generics.Meta) (c1 :: GHC.Generics.Meta) (c2 :: GHC.Generics.Meta). (i0 GHC.Types.~ GHC.Generics.S, i1 GHC.Types.~ GHC.Generics.S, i2 GHC.Types.~ GHC.Generics.S, Data.HKD.GFZip2 f g h t0 t1 t2) => Data.HKD.GFZip2 f g h (GHC.Generics.M1 i0 c0 t0) (GHC.Generics.M1 i1 c1 t1) (GHC.Generics.M1 i2 c2 t2) instance forall k (f :: k -> *) (f' :: k -> *) (g :: k -> *) (g' :: k -> *) (h :: k -> *) (h' :: k -> *) (x0 :: k) (x1 :: k) (x2 :: k) i0 i1 i2. (f GHC.Types.~ f', g GHC.Types.~ g', h GHC.Types.~ h', x0 GHC.Types.~ x1, x1 GHC.Types.~ x2, i0 GHC.Types.~ GHC.Generics.R, i1 GHC.Types.~ GHC.Generics.R, i2 GHC.Types.~ GHC.Generics.R) => Data.HKD.GFZip2 f g h (GHC.Generics.K1 i0 (f' x0)) (GHC.Generics.K1 i1 (g' x1)) (GHC.Generics.K1 i2 (h' x2)) instance forall k (f :: k -> *) (f' :: k -> *) (g :: k -> *) (g' :: k -> *) (h :: k -> *) (h' :: k -> *) (t0 :: (k -> *) -> *) (t1 :: (k -> *) -> *) (t2 :: (k -> *) -> *) i0 i1 i2. (f GHC.Types.~ f', g GHC.Types.~ g', h GHC.Types.~ h', t0 GHC.Types.~ t1, t1 GHC.Types.~ t2, i0 GHC.Types.~ GHC.Generics.R, i1 GHC.Types.~ GHC.Generics.R, i2 GHC.Types.~ GHC.Generics.R, Data.HKD.FZip t0) => Data.HKD.GFZip2 f g h (GHC.Generics.K1 i0 (t0 f')) (GHC.Generics.K1 i1 (t1 g')) (GHC.Generics.K1 i2 (t2 h')) instance forall k i0 i1 i2 (f :: k -> *) (g :: k -> *) (h :: k -> *) (t0 :: * -> *) (t1 :: * -> *) (t2 :: * -> *) (c0 :: GHC.Generics.Meta) (c1 :: GHC.Generics.Meta) (c2 :: GHC.Generics.Meta). (i0 GHC.Types.~ GHC.Generics.D, i1 GHC.Types.~ GHC.Generics.D, i2 GHC.Types.~ GHC.Generics.D, Data.HKD.GFZip1 f g h t0 t1 t2) => Data.HKD.GFZip f g h (GHC.Generics.M1 i0 c0 t0) (GHC.Generics.M1 i1 c1 t1) (GHC.Generics.M1 i2 c2 t2) instance forall k (f :: k -> *) (g :: k -> *) (h :: k -> *). Data.HKD.GFZip1 f g h GHC.Generics.V1 GHC.Generics.V1 GHC.Generics.V1 instance forall k i i' (m :: * -> *) (f :: k -> *) (g :: k -> *) (h :: * -> *) (h' :: * -> *) (c :: GHC.Generics.Meta) (c' :: GHC.Generics.Meta). (i GHC.Types.~ GHC.Generics.C, i' GHC.Types.~ GHC.Generics.C, GHC.Base.Functor m, Data.HKD.GFTraversable2 m f g h h') => Data.HKD.GFTraversable1 m f g (GHC.Generics.M1 i c h) (GHC.Generics.M1 i' c' h') instance forall k (m :: * -> *) (f :: k -> *) (g :: k -> *). GHC.Base.Applicative m => Data.HKD.GFTraversable2 m f g GHC.Generics.U1 GHC.Generics.U1 instance forall k i i' (m :: * -> *) (f :: k -> *) (g :: k -> *) (h :: * -> *) (h' :: * -> *) (c :: GHC.Generics.Meta) (c' :: GHC.Generics.Meta). (i GHC.Types.~ GHC.Generics.S, i' GHC.Types.~ GHC.Generics.S, GHC.Base.Functor m, Data.HKD.GFTraversable2 m f g h h') => Data.HKD.GFTraversable2 m f g (GHC.Generics.M1 i c h) (GHC.Generics.M1 i' c' h') instance forall k (m :: * -> *) (f :: k -> *) (g :: k -> *) (x :: * -> *) (x' :: * -> *) (y :: * -> *) (y' :: * -> *). (GHC.Base.Applicative m, Data.HKD.GFTraversable2 m f g x x', Data.HKD.GFTraversable2 m f g y y') => Data.HKD.GFTraversable2 m f g (x GHC.Generics.:*: y) (x' GHC.Generics.:*: y') instance forall k (f :: k -> *) (f' :: k -> *) (g :: k -> *) (g' :: k -> *) (x :: k) (x' :: k) i i' (m :: * -> *). (f GHC.Types.~ f', g GHC.Types.~ g', x GHC.Types.~ x', i GHC.Types.~ GHC.Generics.R, i' GHC.Types.~ GHC.Generics.R, GHC.Base.Functor m) => Data.HKD.GFTraversable2 m f g (GHC.Generics.K1 i (f' x)) (GHC.Generics.K1 i' (g' x')) instance forall k (f :: k -> *) (f' :: k -> *) (g :: k -> *) (g' :: k -> *) (t :: (k -> *) -> *) (t' :: (k -> *) -> *) i i' (m :: * -> *). (f GHC.Types.~ f', g GHC.Types.~ g', t GHC.Types.~ t', i GHC.Types.~ GHC.Generics.R, i' GHC.Types.~ GHC.Generics.R, GHC.Base.Applicative m, Data.HKD.FTraversable t) => Data.HKD.GFTraversable2 m f g (GHC.Generics.K1 i (t f')) (GHC.Generics.K1 i' (t' g')) instance forall k i i' (m :: * -> *) (f :: k -> *) (g :: k -> *) (h :: * -> *) (h' :: * -> *) (c :: GHC.Generics.Meta) (c' :: GHC.Generics.Meta). (i GHC.Types.~ GHC.Generics.D, i' GHC.Types.~ GHC.Generics.D, GHC.Base.Functor m, Data.HKD.GFTraversable1 m f g h h') => Data.HKD.GFTraversable m f g (GHC.Generics.M1 i c h) (GHC.Generics.M1 i' c' h') instance forall k (m :: * -> *) (f :: k -> *) (g :: k -> *). Data.HKD.GFTraversable1 m f g GHC.Generics.V1 GHC.Generics.V1 instance forall k (m :: * -> *) (f :: k -> *) (g :: k -> *) (x :: * -> *) (x' :: * -> *) (y :: * -> *) (y' :: * -> *). (GHC.Base.Applicative m, Data.HKD.GFTraversable1 m f g x x', Data.HKD.GFTraversable1 m f g y y') => Data.HKD.GFTraversable1 m f g (x GHC.Generics.:+: y) (x' GHC.Generics.:+: y') instance Data.HKD.FZip Data.HKD.Limit instance Data.HKD.FRepeat Data.HKD.Limit instance Data.HKD.FFunctor Data.HKD.Limit instance Data.HKD.FFoldable Data.HKD.Limit instance forall k (f :: k -> *). Data.HKD.FZip (Data.HKD.NT f) instance forall k (a :: k -> *). Data.HKD.FRepeat (Data.HKD.NT a) instance forall k (f :: k -> *). Data.HKD.FFunctor (Data.HKD.NT f) instance forall k (a :: k). Data.HKD.FZip (Data.HKD.Element a) instance forall k (a :: k). Data.HKD.FRepeat (Data.HKD.Element a) instance forall k (a :: k). Data.HKD.FFunctor (Data.HKD.Element a) instance forall k (a :: k). Data.HKD.FFoldable (Data.HKD.Element a) instance forall k (a :: k). Data.HKD.FTraversable (Data.HKD.Element a) instance Data.HKD.FFunctor (Data.HKD.Tab a) instance Data.HKD.FContravariant Data.HKD.Logarithm instance Data.HKD.FContravariant Data.Proxy.Proxy instance Data.HKD.FContravariant (Data.Functor.Const.Const a) instance forall k (f :: * -> *) (g :: (k -> *) -> *). (GHC.Base.Functor f, Data.HKD.FContravariant g) => Data.HKD.FContravariant (Data.Functor.Compose.Compose f g) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FContravariant f, Data.HKD.FContravariant g) => Data.HKD.FContravariant (Data.Functor.Product.Product f g) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FContravariant f, Data.HKD.FContravariant g) => Data.HKD.FContravariant (Data.Functor.Sum.Sum f g) instance Data.HKD.FContravariant (GHC.Generics.K1 i a) instance Data.HKD.FContravariant GHC.Generics.U1 instance Data.HKD.FContravariant GHC.Generics.V1 instance forall k (f :: * -> *) (g :: (k -> *) -> *). (GHC.Base.Functor f, Data.HKD.FContravariant g) => Data.HKD.FContravariant (f GHC.Generics.:.: g) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FContravariant f, Data.HKD.FContravariant g) => Data.HKD.FContravariant (f GHC.Generics.:*: g) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FContravariant f, Data.HKD.FContravariant g) => Data.HKD.FContravariant (f GHC.Generics.:+: g) instance Data.HKD.FRepeat Data.Proxy.Proxy instance (GHC.Base.Monoid a, GHC.Base.Semigroup a) => Data.HKD.FRepeat (Data.Functor.Const.Const a) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FRepeat f, Data.HKD.FRepeat g) => Data.HKD.FRepeat (Data.Functor.Product.Product f g) instance forall k (f :: * -> *) (g :: (k -> *) -> *). (GHC.Base.Applicative f, Data.HKD.FRepeat g) => Data.HKD.FRepeat (Data.Functor.Compose.Compose f g) instance Data.HKD.FRepeat GHC.Generics.U1 instance (GHC.Base.Monoid a, GHC.Base.Semigroup a) => Data.HKD.FRepeat (GHC.Generics.K1 i a) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FRepeat f, Data.HKD.FRepeat g) => Data.HKD.FRepeat (f GHC.Generics.:*: g) instance forall k (f :: * -> *) (g :: (k -> *) -> *). (GHC.Base.Applicative f, Data.HKD.FRepeat g) => Data.HKD.FRepeat (f GHC.Generics.:.: g) instance Data.HKD.FZip Data.Proxy.Proxy instance GHC.Base.Semigroup a => Data.HKD.FZip (Data.Functor.Const.Const a) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FZip f, Data.HKD.FZip g) => Data.HKD.FZip (Data.Functor.Product.Product f g) instance forall k (f :: * -> *) (g :: (k -> *) -> *). (GHC.Base.Applicative f, Data.HKD.FZip g) => Data.HKD.FZip (Data.Functor.Compose.Compose f g) instance Data.HKD.FZip GHC.Generics.U1 instance Data.HKD.FZip GHC.Generics.V1 instance GHC.Base.Semigroup a => Data.HKD.FZip (GHC.Generics.K1 i a) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FZip f, Data.HKD.FZip g) => Data.HKD.FZip (f GHC.Generics.:*: g) instance forall k (f :: * -> *) (g :: (k -> *) -> *). (GHC.Base.Applicative f, Data.HKD.FZip g) => Data.HKD.FZip (f GHC.Generics.:.: g) instance Data.HKD.FTraversable Data.Proxy.Proxy instance Data.HKD.FTraversable (Data.Functor.Const.Const a) instance forall k (f :: * -> *) (g :: (k -> *) -> *). (Data.Traversable.Traversable f, Data.HKD.FTraversable g) => Data.HKD.FTraversable (Data.Functor.Compose.Compose f g) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FTraversable f, Data.HKD.FTraversable g) => Data.HKD.FTraversable (Data.Functor.Product.Product f g) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FTraversable f, Data.HKD.FTraversable g) => Data.HKD.FTraversable (Data.Functor.Sum.Sum f g) instance Data.HKD.FTraversable GHC.Generics.U1 instance Data.HKD.FTraversable GHC.Generics.V1 instance Data.HKD.FTraversable (GHC.Generics.K1 i a) instance forall k (f :: * -> *) (g :: (k -> *) -> *). (Data.Traversable.Traversable f, Data.HKD.FTraversable g) => Data.HKD.FTraversable (f GHC.Generics.:.: g) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FTraversable f, Data.HKD.FTraversable g) => Data.HKD.FTraversable (f GHC.Generics.:*: g) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FTraversable f, Data.HKD.FTraversable g) => Data.HKD.FTraversable (f GHC.Generics.:+: g) instance Data.HKD.FTraversable Data.Some.GADT.Some instance Data.HKD.FTraversable Data.Some.Newtype.Some instance Data.HKD.FTraversable Data.GADT.Internal.Some instance Data.HKD.FFoldable Data.Proxy.Proxy instance Data.HKD.FFoldable (Data.Functor.Const.Const a) instance forall k (f :: * -> *) (g :: (k -> *) -> *). (Data.Foldable.Foldable f, Data.HKD.FFoldable g) => Data.HKD.FFoldable (Data.Functor.Compose.Compose f g) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FFoldable f, Data.HKD.FFoldable g) => Data.HKD.FFoldable (Data.Functor.Product.Product f g) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FFoldable f, Data.HKD.FFoldable g) => Data.HKD.FFoldable (Data.Functor.Sum.Sum f g) instance Data.HKD.FFoldable GHC.Generics.V1 instance Data.HKD.FFoldable (GHC.Generics.K1 i a) instance Data.HKD.FFoldable GHC.Generics.U1 instance forall k (f :: * -> *) (g :: (k -> *) -> *). (Data.Foldable.Foldable f, Data.HKD.FFoldable g) => Data.HKD.FFoldable (f GHC.Generics.:.: g) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FFoldable f, Data.HKD.FFoldable g) => Data.HKD.FFoldable (f GHC.Generics.:*: g) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FFoldable f, Data.HKD.FFoldable g) => Data.HKD.FFoldable (f GHC.Generics.:+: g) instance Data.HKD.FFoldable Data.Some.GADT.Some instance Data.HKD.FFoldable Data.Some.Newtype.Some instance Data.HKD.FFoldable Data.GADT.Internal.Some instance Data.HKD.FFunctor Data.Proxy.Proxy instance Data.HKD.FFunctor (Data.Functor.Const.Const a) instance forall k (f :: * -> *) (g :: (k -> *) -> *). (GHC.Base.Functor f, Data.HKD.FFunctor g) => Data.HKD.FFunctor (Data.Functor.Compose.Compose f g) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FFunctor f, Data.HKD.FFunctor g) => Data.HKD.FFunctor (Data.Functor.Product.Product f g) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FFunctor f, Data.HKD.FFunctor g) => Data.HKD.FFunctor (Data.Functor.Sum.Sum f g) instance Data.HKD.FFunctor (GHC.Generics.K1 i a) instance Data.HKD.FFunctor GHC.Generics.U1 instance Data.HKD.FFunctor GHC.Generics.V1 instance forall k (f :: * -> *) (g :: (k -> *) -> *). (GHC.Base.Functor f, Data.HKD.FFunctor g) => Data.HKD.FFunctor (f GHC.Generics.:.: g) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FFunctor f, Data.HKD.FFunctor g) => Data.HKD.FFunctor (f GHC.Generics.:*: g) instance forall k (f :: (k -> *) -> *) (g :: (k -> *) -> *). (Data.HKD.FFunctor f, Data.HKD.FFunctor g) => Data.HKD.FFunctor (f GHC.Generics.:+: g) instance Data.HKD.FFunctor Data.Some.GADT.Some instance Data.HKD.FFunctor Data.Some.Newtype.Some instance Data.HKD.FFunctor Data.GADT.Internal.Some