   addMacro: (name, macro) ->
     @_macros[name.symbol] = macro
     name.id = macro.id = @freshId()
+
+  markMalformed: ->
+    @isMalformed = yes
 
   # Creates a deferrable definition to be associated with given pattern
   definePattern: (pattern) ->

cond_ = (x) ->
  cond: x

malformed = (expression, message) ->
  # TODO support multiple malformations
  expression.malformed = message
  jsNoop()


    @scopes = [topScope]
    @savedScopes = []
    @classParams = newMap()
    @isMalformed = no

  macros: ->
    @_macros
