     ] recover ; inline
 
 : true-out ( quot effect -- quot' )
-    effect-out [ ndrop ] curry
+    out>> [ ndrop ] curry
     [ t ] 3compose ;
 
 : false-recover ( effect -- quot )
-    effect-in [ ndrop f ] curry [ recover-fail ] curry ;
+    in>> [ ndrop f ] curry [ recover-fail ] curry ;
 
 : [matches?] ( quot -- undoes?-quot )
     [undo] dup infer [ true-out ] keep false-recover curry ;


: enough? ( stack word -- ? )
    dup deferred? [ 2drop f ] [
        [ >r length r> 1quotation infer effect-in >= ]
        [ 3drop f ] recover
    ] if ;



: constant-word? ( word -- ? )
    stack-effect
    [ out>> length 1 = ] keep
    in>> length 0 = and ;

: assure-constant ( constant -- quot )
    dup word? [ "Badly formed math inverse" throw ] when 1quotation ;
