           val
 
     test 'throw target mismatch', ->
-      throws -> parse """
-      list :: Number[] =
-        for key :: String, val :: Number of {x: "hoge", y: 6}
-          val
+      shouldBeTypeError """
+        list :: Number[] =
+          for key :: String, val :: Number of {x: "hoge", y: 6}
+            val
       """
 
     test 'function return type', ->

        3

    test 'throw function return type mismatch', ->
      throws -> parse """
      f0 :: () -> Number = () :: Number -> ''
      """

    test 'throw function return type mismatch', ->
      throws -> parse """
      f2 :: () -> Number = ->
        return ""
      """

          8

    test 'throw if return type mismatch', ->
      shouldBeTypeError """
        a :: Number = if true then 3 else ""
      """

    test 'for in' , ->
      list :: Number[] =
