linear-generics-0.1.0.1: tests/DataFamilyKindsSpec.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE StandaloneKindSignatures #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
-- | A test case which ensures that generated Generic instances are able to
-- distinguish data family instances which only differ in their kinds. See
-- https://github.com/linear-generics/linear-generics/issues/8#issuecomment-940512978
module DataFamilyKindsSpec (main, spec) where
import Data.Kind (Type)
import Generics.Linear.TH (deriveGeneric)
import Test.Hspec (Spec, hspec)
main :: IO ()
main = hspec spec
spec :: Spec
spec = pure ()
type Fam :: k -> Type
data family Fam a
data instance Fam (a :: Type -> Type) = Fam1
data instance Fam (a :: Type) = Fam2
$(deriveGeneric 'Fam1)
$(deriveGeneric 'Fam2)