
FrozenErrorTests.hs:11:1:
    Couldn't match type `a' with `T a'
      `a' is a rigid type variable bound by
          the type signature for foo :: a ~ T a => a -> a
          at FrozenErrorTests.hs:11:1
    Inaccessible code in
      the type signature for foo :: a ~ T a => a -> a

FrozenErrorTests.hs:14:12:
    Couldn't match type `b' with `T b'
      `b' is a rigid type variable bound by
          a pattern with constructor
            MkT2 :: forall a b. b ~ T b => b -> T a,
          in a case alternative
          at FrozenErrorTests.hs:14:12
    Inaccessible code in
      a pattern with constructor
        MkT2 :: forall a b. b ~ T b => b -> T a,
      in a case alternative
    In the pattern: MkT2 y
    In a case alternative: MkT2 y -> ()
    In the expression: case x of { MkT2 y -> () }

FrozenErrorTests.hs:19: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:33:9:
    Occurs check: cannot construct the infinite type: a0 = [a0]
    In the expression: goo1 False undefined
    In an equation for `test1': test1 = goo1 False undefined

FrozenErrorTests.hs:36:15:
    Couldn't match type `[Int]' with `Int'
    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:37:9:
    Couldn't match type `Int' with `[Int]'
    In the expression: goo1 False (goo2 undefined)
    In an equation for `test3': test3 = goo1 False (goo2 undefined)

FrozenErrorTests.hs:52:15:
    Occurs check: cannot construct the infinite type:
      c0 = T2 (T2 c0 c0) c0
    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)

FrozenErrorTests.hs:52:15:
    Couldn't match type `T2 c0' with `M'
    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)

FrozenErrorTests.hs:53:9:
    Occurs check: cannot construct the infinite type:
      c0 = T2 (T2 c0 c0) c0
    In the expression: goo3 False (goo4 undefined)
    In an equation for `test5': test5 = goo3 False (goo4 undefined)

FrozenErrorTests.hs:53:9:
    Couldn't match type `T2 c0' with `M'
    In the expression: goo3 False (goo4 undefined)
    In an equation for `test5': test5 = goo3 False (goo4 undefined)
