blob: 21beb8ae02502f41b8dabea3029f36832f841920 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE ExistentialQuantification #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE DatatypeContexts #-}
module CannotDoRep0 where
import GHC.Generics hiding (P, D)
-- We do not support existential quantification
data Dynamic = forall a. Dynamic a deriving Generic
-- Partial instantiation of types is not allowed
data P a = P a
deriving instance Generic (P Int)
-- This gets trickier for data families
data family D a b
data instance D Char b
data instance (Show b) => D Int b
data instance D () ()
-- Bad: second argument is instantiated
deriving instance Generic (D Char Char)
-- Bad: has context
deriving instance Generic (D Int a)
-- Ok
deriving instance Generic (D () ())
|