{-# LANGUAGE UndecidableInstances #-}
module Generic.Data.Function.FoldMap.NonSum where
import GHC.Generics
import GHC.TypeLits ( TypeError )
import Generic.Data.Function.Error ( type ENoEmpty, type EUnexpectedSum )
import Generic.Data.Function.FoldMap.Constructor ( GFoldMapC(gFoldMapC) )
class GFoldMapNonSum m f where gFoldMapNonSum :: f p -> m
instance GFoldMapNonSum m f => GFoldMapNonSum m (D1 c f) where
gFoldMapNonSum :: forall (p :: k). D1 c f p -> m
gFoldMapNonSum (M1 f p
a) = forall {k} m (f :: k -> Type) (p :: k).
GFoldMapNonSum m f =>
f p -> m
gFoldMapNonSum f p
a
instance TypeError EUnexpectedSum => GFoldMapNonSum m (l :+: r) where
gFoldMapNonSum :: forall (p :: k). (:+:) l r p -> m
gFoldMapNonSum = forall a. HasCallStack => a
undefined
instance GFoldMapC m f => GFoldMapNonSum m (C1 c f) where
gFoldMapNonSum :: forall (p :: k). C1 c f p -> m
gFoldMapNonSum (M1 f p
a) = forall {k} m (f :: k -> Type) (p :: k). GFoldMapC m f => f p -> m
gFoldMapC f p
a
instance TypeError ENoEmpty => GFoldMapNonSum m V1 where
gFoldMapNonSum :: forall (p :: k). V1 p -> m
gFoldMapNonSum = forall a. HasCallStack => a
undefined