     * (macro [x y]
       (: (Fn Num Num Num))
       (Js.binary "*" x y))
+
+    f (* 2)
   """
-  "(if False 1 2)", 2
+  "(f 3)", 6
+
+  'getters'
+  """
+    Person (record
+      first: String last: String)
+
+    jack (Person "Jack" "Jack")
+  """
+  "(== (Person.first jack) (Person.last jack))", yes
+
 
   # TODO: support matching with the same name
   #       to implement this we need the iife to take as arguments all variables

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

      .replace(/\>/g, 'gt_')
      .replace(/\~/g, 'neg_')
      # .replace(/\√/g, 'sqrt_')
      # .replace(/\./g, 'dot_')
      .replace(/\&/g, 'and_')
      .replace(/\?/g, 'p_')
      .replace(/^const$/, 'const_')
