-- | Wrappers for "free" generics, where the base case is handled for you.
module Generic.Data.Wrappers where
import GHC.TypeLits ( ErrorMessage(Text) )
-- | Free generic wrapper where any field emits a type error.
--
-- Useful for generic functions on void or enum types.
data NoRec0 (a :: k)
type ENoRec0 =
'Text "Cannot use generic function on NoRec0-wrapped type containing fields"
-- | Free generic wrapper where every field does "nothing" (e.g. 'mempty'.)
--
-- Maybe useful for testing?
data EmptyRec0 (a :: k)