 
 printType = (type) ->
   if type.TypeVariable
-    "#{type.name}"
+    "_#{type.name}"
   else if type.QuantifiedVar
     "#{type.var}"
   else if type.TypeConstr

          (Node x xs) (fold with (with initial x) xs))))
  """
  "(elem? 2 (Node 2 Nil))", yes

  'nested pattern matching'
  """

    ['string', -> /^"/.test symbol]
    ['char', -> /^\\/.test symbol]
    ['regex', -> /^\/[^\s\/]/.test symbol]
    ['const', -> /^[A-Z]([^\s\.-]|-(?=[A-Z]))*$/.test symbol] # TODO: instead label based on context
    ['paren', -> symbol in ['(', ')']]
    ['bracket', -> symbol in ['[', ']']]
    ['brace', -> symbol in ['{', '}']]
