     result = []
     if token is '('
         tokens.shift()
-        
+
         result = [new Required parse_expr tokens, options]
         if tokens.shift() != ')'
             raise tokens.error "Unmatched '('"


    extras help, version, options, doc
    formal_pattern   = parse_pattern formal_usage(usage), pot_options
    print formal_pattern.flat()
    pot_arguments = (a for a in formal_pattern.flat() \
        when a.constructor in [Argument, Command])
    [matched, left, argums] = formal_pattern.fix().match argv

        formals = @children.join ', '
        "#{@constructor.name}(#{formals})"

    match: -> throw new Error("""classes inheriting from Pattern
                                 must overload the match method""")

    flat: ->
