-- | Runtime error messages for common generic data representation errors.

module Generic.Data.Function.Common.Error where

wrapE :: String -> String -> String
wrapE :: String -> String -> String
wrapE String
msgGot String
msgWhyBad =
       String
"Generic.Data.Function.Common.Error:\n"
    String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
"Attempted to use an invalid generic instance: \n"
    String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
"  got: "String -> String -> String
forall a. Semigroup a => a -> a -> a
<>String
msgGotString -> String -> String
forall a. Semigroup a => a -> a -> a
<>String
"\n"
    String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
"  but: "String -> String -> String
forall a. Semigroup a => a -> a -> a
<>String
msgWhyBadString -> String -> String
forall a. Semigroup a => a -> a -> a
<>String
"\n"
    String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
"If you like, you can catch such errors during compilation.\n"
    String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
"See the generic-type-asserts package on Hackage."

eNoEmpty :: String
eNoEmpty :: String
eNoEmpty = String -> String -> String
wrapE String
"empty data type" String
"disallowed"

eNoSum :: String
eNoSum :: String
eNoSum = String -> String -> String
wrapE String
"sum data type" String
"cannot use non-sum generics"