{-# LANGUAGE DataKinds, KindSignatures, TypeFamilies, TypeOperators #-} {-# OPTIONS_GHC -fdefer-type-errors #-} {-# OPTIONS_GHC -fplugin GHC.TypeLits.Normalise #-} module ErrorTests where import Data.Proxy import GHC.TypeLits testProxy1 :: Proxy (x + 1) -> Proxy (2 + x) testProxy1 = id testProxy1Errors = ["Expected type: Proxy (x + 1) -> Proxy (2 + x)" ,"Actual type: Proxy (2 + x) -> Proxy (2 + x)" ] type family GCD (x :: Nat) (y :: Nat) :: Nat type instance GCD 6 8 = 2 type instance GCD 9 6 = 3 testProxy2 :: Proxy (GCD 6 8 + x) -> Proxy (x + GCD 9 6) testProxy2 = id testProxy2Errors = ["Expected type: Proxy (GCD 6 8 + x) -> Proxy (x + GCD 9 6)" ,"Actual type: Proxy (x + 3) -> Proxy (x + 3)" ]