         drop nip t
     ] [
         drop dlist-node-next [ (dlist-find-node) ] [ drop f f ] if*
-    ] if ;
+    ] if ; inline
 
 : dlist-find-node ( quot dlist -- node/f ? )
-    dlist-front [ (dlist-find-node) ] [ drop f f ] if* ;
+    dlist-front [ (dlist-find-node) ] [ drop f f ] if* ; inline
 
 : (dlist-each-node) ( quot dlist -- )
     over
     [ 2dup call >r dlist-node-next r> (dlist-each-node) ]
-    [ 2drop ] if ;
+    [ 2drop ] if ; inline
 
 : dlist-each-node ( quot dlist -- )
     >r dlist-front r> (dlist-each-node) ; inline

        [ (delete-node) ] keep [ dlist-node-obj t ] [ f f ] if*
    ] [
        2drop f f
    ] if ;

: delete-node ( quot dlist -- obj/f )
    delete-node* drop ;

: dlist-each ( dlist quot -- )
    [ dlist-node-obj ] swap compose dlist-each-node ; inline

: pop-back* ( dlist -- ) pop-back drop ;

: dlist-find ( quot dlist -- obj/f ? )
    dlist-find-node dup [ >r dlist-node-obj r> ] when ; inline

: dlist-contains? ( quot dlist -- ? )
    dlist-find nip ; inline

: (delete-node) ( dlist dlist-node -- )
    {
