     return .Computation([{ _ in value }])
 }
 
-/// =!`action`   (an Unconditional Success rule)
-/// Successfully parses an empty slice of input and returns the action's value.
-@prefix func =! (block: Parser.Action)
--> Parser.Rule
-{
-    return .Computation([block])
-}
-
 /// `rule` &> `rule`
 /// Attempts to parse the conjunction of LHS and RHS sequentially.
 @infix func &> (lhsRule: Parser.Rule, rhsRule: Parser.Rule)


/// `rule` <! `action`
/// Asserts EOI after parsing the rule, then returns the action's value.
@infix func <! (condition: Parser.Rule, block: Parser.Action)
-> Parser.Rule
{
    return (.Termination([condition]) &> .Computation([block]))
}

@infix func <! (condName: String, block: Parser.Action)
-> Parser.Rule
{
    return (.Termination([.RulePromise(condName)]) &> .Computation([block]))
}

/// Sequence construction utility for use in rule actions.

                {
                case .NestedParse(_) :
                    break
                case .TerminalLex(_) :
                    break
                case .Computation(_) :
                    break
                default :
                    newRule = .NestedParse([newRule])
                }
