: warning: -XGeneralizedNewtypeDeriving is not allowed in Safe Haskell; ignoring -XGeneralizedNewtypeDeriving :16:29: error: • Can't make a derived instance of ‘Op T2’: ‘Op’ is not a stock derivable class (Eq, Show, etc.) • In the newtype declaration for ‘T2’ Suggested fix: Perhaps you intended to use GeneralizedNewtypeDeriving for GHC's newtype-deriving extension :19:9: error: • Data constructor not in scope: T2 :: T -> t • Perhaps you meant ‘T1’ (line 13) :22:4: error: Variable not in scope: y