     logError "Error in test #{teaSource}", e
 
 tests = [
+  'simple defs'
+  """a 2"""
+  "a", 2
+
+  'more defs'
   """a 2
-    a""", 2
-  """a 2
-    b 3
-    a""", 1
+    b 3"""
+  "a", 1
+
+  'constant data'
   """Color (data Red Blue)
     r Red
     b Blue
-    r2 Red
-    (= r r2)""", true
+    r2 Red"""
+  "(= r r2)", true
+
+  'match numbers'
   """positive (fn [n]
       (match n
         0 False
-        m True))
-    (positive 3)""", yes
+        m True))"""
+  "(positive 3)", yes
+
+  'composite data'
   """Person (data
     Baby
     Adult [name: String])

    .replace(/\n (?=\n)/g, '')

runTests = (tests) ->
  for [source, result] in pairs tests
    test source, result
  "Finished"
# end of tests


    babies (fn [month]
      (match month
        1 1
        n (adults (- 1 month))))"""
    "(fibonacci 6)", 8

]

testNamed = (givenName) ->
  for [name, source, expression, result] in pairs tests when name is givenName
    return source
  throw new Error "Test #{givenName} not found!"

logError = (message, error) ->
  log message, error.message, error.stack
