 
   'create Set'
   """
-    data (Set "a" "b" "c")
+    data (Set "Adam" "Vojta" "Michal")
 
     elem? (macro [what in]
       (: (Fn i (Set i) Bool))
       (Js.call (Js.access in "has") {what}))
   """
-  """(elem? "a" data)""", yes
+  """(elem? "Michal" data)""", yes
 
   'create Map'
   """

  types: ctx._scope()
  subs: filterMap ((name) -> name is 'could not unify'), ctx.substitution
  ast: ast
  compiled: library + compiledDefinitions.js + compiledExpression.js

typeEnumaration = (ctx) ->
  values mapMap _type, ctx._scope()

  {ir: irSetTranslate, items}

irSetTranslate = (ctx, {items}) ->
  (jsCall "Immutable.Set.of", items)


irJsCompatible = (type, expression) ->
