 
 includesJsType = (type) ->
   if type.TypeConstr
-    typeEq type, jsType
+    typeEq type, jsType()
   else if type.TypeApp
     (includesJsType type.op) or (includesJsType type.arg)
 

    if args.length % 2 != 0
      return malformed ctx, args[args.length - 1], 'Missing value for key'
    [labels, items] = unzip pairs args
    compiledLabels = termsCompileExpectingSameType ctx, labels
    keyType = applyKindFn hashmapType, compiledLabels.itemType
    compiledItems = uniformCollectionCompile ctx, call, items, keyType,
      compiledLabels.constraints
    assignCompile ctx, call, (irMap compiledLabels.compiled, compiledItems)

    throw new Error "matching on lists not supported yet"
  else
    items = _arguments call
    compiledItems = uniformCollectionCompile ctx, call, items, listType()
    assignCompile ctx, call, (irList compiledItems)

ms.Map = ms_Map = (ctx, call) ->
