FrozenErrorTests.hs:12:12: Couldn't match type ‘Int’ with ‘Bool’ Inaccessible code in a pattern with constructor: MkT3 :: forall a. (a ~ Bool) => T a, in a case alternative In the pattern: MkT3 In a case alternative: MkT3 -> () In the expression: case x of { MkT3 -> () } FrozenErrorTests.hs:26:9: Occurs check: cannot construct the infinite type: a ~ [a] Expected type: [a] Actual type: F a Bool In the expression: goo1 False undefined In an equation for ‘test1’: test1 = goo1 False undefined Relevant bindings include test1 :: a (bound at FrozenErrorTests.hs:26:1) FrozenErrorTests.hs:29:15: Couldn't match type ‘Int’ with ‘[Int]’ Expected type: [[Int]] Actual type: F [Int] Bool In the first argument of ‘goo2’, namely ‘(goo1 False undefined)’ In the expression: goo2 (goo1 False undefined) In an equation for ‘test2’: test2 = goo2 (goo1 False undefined) FrozenErrorTests.hs:30:9: Couldn't match type ‘Int’ with ‘[Int]’ Expected type: [[Int]] Actual type: F [Int] Bool In the expression: goo1 False (goo2 undefined) In an equation for ‘test3’: test3 = goo1 False (goo2 undefined) FrozenErrorTests.hs:45:15: Couldn't match type ‘T2 c c’ with ‘M (T2 (T2 c c) c)’ Expected type: T2 (M (T2 (T2 c c) c)) (T2 (T2 c c) c) Actual type: F (T2 (T2 c c) c) Bool In the first argument of ‘goo4’, namely ‘(goo3 False undefined)’ In the expression: goo4 (goo3 False undefined) In an equation for ‘test4’: test4 = goo4 (goo3 False undefined) Relevant bindings include test4 :: T2 (T2 c c) c (bound at FrozenErrorTests.hs:45:1) FrozenErrorTests.hs:46:9: Couldn't match type ‘T2 c c’ with ‘M (T2 (T2 c c) c)’ Expected type: T2 (M (T2 (T2 c c) c)) (T2 (T2 c c) c) Actual type: F (T2 (T2 c c) c) Bool In the expression: goo3 False (goo4 undefined) In an equation for ‘test5’: test5 = goo3 False (goo4 undefined) Relevant bindings include test5 :: T2 (T2 c c) c (bound at FrozenErrorTests.hs:46:1)