 #   that is either ordinary type variable or type variable standing for a constructor
 #   with arbitrary type arguments
 isNormalizedConstraint = (constraint) ->
-  all (map isNormalizedConstraintArgument, constraint.types.types)
+  isNormalizedConstraintArgument constraint.types.types[0]
 
 isNormalizedConstraintArgument = (type) ->
   if type

        (Person name id) name))"""
  """(name ((Person id: 3) "Mike"))""", "Mike"

  'late bound function'
  """f (fn [x] (g x))
    g (fn [x] 2)"""

ms.record = ms_record = (ctx, call) ->
    args = _arguments call
    hasName = requireName ctx, 'Name required to declare new record'
    if isTuple args[0]
      [typeParamTuple, args...] = args
    else
      typeParamTuple = (tuple_ [])
    for [name, type] in _labeled args
      if not name
        malformed type, 'Label is required'
