     res.context = context
     return res
 
+  normalize = (obj) -> ([ obj.prf, obj.kw ].filter (e) -> e? and !!e).join ':'
+
   ###
   # The `parse` function performs recursive parsing of passed in statement
   # and sub-statements and usually invoked in the context of the

      when not !!input.arg then params
      else "#{input.arg}": params

  ###
  # The `preprocess` function is the intermediary method of the compiler
  # which prepares a parsed output to be ready for the `compile`

  # found in the parsed output in order to prepare the context for the
  # `compile` operation to proceed smoothly.
  ###
  preprocess: (schema, source={}, scope) ->
    unless scope?
      # first merge source extension using parent extensions if available
