     m (>>ans)
     pos get m (>>pos)
     r p m h (grow-lr)
-  ] if ;
+  ] if ; inline
  
 :: grow-lr ( r p m h -- ast )
   h p heads get set-at
   r p m h (grow-lr) 
   p heads get delete-at
   m pos>> pos set m ans>>
-  ;
+  ; inline
 
 :: (setup-lr) ( r l s -- )
   s head>> l head>> eq? [

    ] [
      r p apply-non-memo-rule
    ] if 
  ] ;

: with-packrat ( input quot -- result )
  #! Run the quotation with a packrat cache active.

    ] [
      m
    ] if
  ] ; inline

:: apply-non-memo-rule ( r p -- ast )
  [let* |
