ref: 5d4c8718a6384d8a27e0bdbf09bc517ac87a4c26
dir: /tests/StandDer.hs/
module StandDer where data X = X deriving instance Show X data T a = A | B | C a | D (T a) deriving instance (Show a) => Show (T a) main :: IO () main = do print X print [A, B, C True, D A]