       when '>='
         left >= right
 
-class Unbound
+class Unbound extends FormulaVisitor
   constructor: ->
   visitLiteral: ->
     []
 
-  visitIntegerLiteral: (node) ->
-    @visitLiteral node
-  visitDecimalLiteral: (node) ->
-    @visitLiteral node
-  visitStringLiteral: (node) ->
-    @visitLiteral node
-  visitParens: (node) ->
-    node.formula.visit @
   visitReference: (node) ->
     [node.name]
   visitComparison: (node) ->

    @visitLiteral node
  visitParens: (node) ->
    node.formula.visit @
  visitReference: (node) ->
    @data[node.name]
  visitComparison: (node) ->

# force formula evaluator

class FormulaVisitor
  constructor: ->
  visitIntegerLiteral: (node) ->
    @visitLiteral node
  visitDecimalLiteral: (node) ->
