     #! The result of that quotation then becomes the new parse result.
     #! This allows modification of parse tree results (like
     #! converting strings to integers, etc).
-    [ apply-parser-p1 ] keep apply-parser-quot
+    [ p1>> ] [ quot>> ] bi
     -rot parse [
-        [ parse-result-parsed swap call ] keep
-        parse-result-unparsed <parse-result>
+        [ parsed>> swap call ] keep
+        unparsed>> <parse-result>
     ] lazy-map-with ;
 
 TUPLE: some-parser p1 ;

    ensure-parser boa ;

M: ensure-parser parse ( input parser -- list )
    2dup ensure-parser-test parse nil?
    [ 2drop nil ] [ drop t swap <parse-results> ] if ;

TUPLE: ensure-not-parser test ;

M: sp-parser parse ( input parser -- list )
    #! Skip all leading whitespace from the input then call
    #! the parser on the remaining input.
    >r left-trim-slice r> p1>> parse ;

TUPLE: just-parser p1 ;

