module Test.Test2 where import Data.Typeable data Show1 = S1 Char Char Char deriving Typeable data Strict = S2 Char !Char data Opaque = forall a. O a data List1 a = Nil | a :^ (List1 a) deriving Show newtype MyInt = My Int deriving (Eq,Show,Num, Enum) newtype MkT a = MkT a deriving (Show) newtype MkT2 a = MkT2 (MkT a) deriving Show data Param2 s r = P2 (FakeSTRef r (s(Param2 s r))) | P2Nil data FakeSTRef r s = Ref s testParam2 = O (P2 (Ref P2Nil)) infixr 5 :^ --test T{t=t1} = undefined instance Show Show1 where show (S1 a b c) = show (a) type Just1 = Maybe data Unary = Unary deriving Show poly :: a -> () poly x = seq x ()