T7453.hs:10:30: error: • Couldn't match expected type ‘t’ with actual type ‘p’ ‘t’ is a rigid type variable bound by the type signature for: z :: forall t. Id t at T7453.hs:8:11-19 ‘p’ is a rigid type variable bound by the inferred type of cast1 :: p -> a at T7453.hs:(7,1)-(10,30) • In the first argument of ‘Id’, namely ‘v’ In the expression: Id v In an equation for ‘aux’: aux = Id v • Relevant bindings include aux :: Id t (bound at T7453.hs:10:21) z :: Id t (bound at T7453.hs:9:11) v :: p (bound at T7453.hs:7:7) cast1 :: p -> a (bound at T7453.hs:7:1) T7453.hs:16:33: error: • Couldn't match expected type ‘t1’ with actual type ‘p’ ‘t1’ is a rigid type variable bound by the type signature for: z :: forall t1. () -> t1 at T7453.hs:14:11-22 ‘p’ is a rigid type variable bound by the inferred type of cast2 :: p -> t at T7453.hs:(13,1)-(16,33) • In the first argument of ‘const’, namely ‘v’ In the expression: const v In an equation for ‘aux’: aux = const v • Relevant bindings include aux :: b -> t1 (bound at T7453.hs:16:21) z :: () -> t1 (bound at T7453.hs:15:11) v :: p (bound at T7453.hs:13:7) cast2 :: p -> t (bound at T7453.hs:13:1) T7453.hs:21:15: error: • Couldn't match expected type ‘t1’ with actual type ‘p’ ‘t1’ is a rigid type variable bound by the type signature for: z :: forall t1. t1 at T7453.hs:20:11-16 ‘p’ is a rigid type variable bound by the inferred type of cast3 :: p -> t at T7453.hs:(19,1)-(22,33) • In the expression: v In an equation for ‘z’: z = v where aux = const v In an equation for ‘cast3’: cast3 v = z where z :: t z = v where aux = const v • Relevant bindings include aux :: forall b. b -> p (bound at T7453.hs:22:21) z :: t1 (bound at T7453.hs:21:11) v :: p (bound at T7453.hs:19:7) cast3 :: p -> t (bound at T7453.hs:19:1)