+{initializeGlobalTypes} = require '../lib/types'
 reporter = require '../lib/reporter'
+
 parse = (coffee) ->
   reporter.clean()
   parse coffee

    #       @num = num
    #   x :: X = new X 3, ""

    # test 'throw access proto this in class', ->
    #   shouldBeTypeError """
    #   class X
    #     constructor :: Number -> ()
    #     constructor: (num, fuga) ->
    #       @num = num
    #   x :: X = new X ""
    #   """

    # test 'new', ->
    #   shouldBeTypeError """
    #   class X
    #     f: (n :: Number) :: Number ->
    #       n * n
    #   x :: X = new X
    #   n :: String = x.f 3
    #   """


  suite 'Generics', ->
    # test 'generics', ->

suite 'TypeChecker', ->
  setup ->
    global._root_.vars = []
    global._root_.types = []
    global._root_._this = []

    initializeGlobalTypes(global._root_)
    reporter.clean()

  suite 'Assignment', ->
