: Warning: -XGeneralizedNewtypeDeriving is not allowed in Safe Haskell; ignoring -XGeneralizedNewtypeDeriving :16:29: Can't make a derived instance of ‛Op T2’: ‛Op’ is not a derivable class Try GeneralizedNewtypeDeriving for GHC's newtype-deriving extension In the newtype declaration for ‛T2’ :19:9: Not in scope: data constructor ‛T2’ Perhaps you meant ‛T1’ (line 13) :22:4: Not in scope: ‛y’