     '*', binaryMathOpType
     '=', comparatorOpType
     '!=', comparatorOpType
-    'and', ['Bool', ['Bool', 'Bool']]
-    'or', ['Bool', ['Bool', 'Bool']]
+    'and', ['Bool', 'Bool', 'Bool']
+    'or', ['Bool', 'Bool', 'Bool']
 
     '-', binaryMathOpType
     '/', binaryMathOpType

listOfLines = (lines) ->
  lines.join '\n'

isCall = (expression) ->
  (Array.isArray expression) and expression.length > 2 and
    expression[0].label is 'paren'

isForm = (expression) ->
  Array.isArray expression

    tokenize ']'
  ]

fn_ = (params, body) ->
  (call_ (token_ 'fn'), [(tuple_ params), body])

token_ = (string) ->
  (tokenize string)[0]

