     over dlist-empty?
     [ 2drop ] [ [ >r pop-back r> call ] 2keep dlist-slurp ] if ;
     inline
+
+: 1dlist ( obj -- dlist ) <dlist> [ push-front ] keep ;
+

    inc-length ;

: push-back ( obj dlist -- )
    [ dlist-back f <dlist-node> ] keep
    [ dlist-back set-next-when ] 2keep
    [ set-dlist-back ] keep
    [ set-front-to-back ] keep
    inc-length ;

: peek-front ( dlist -- obj )
    dlist-front dlist-node-obj ;

: push-front ( obj dlist -- )
    push-front* drop ;

: push-all-front ( seq dlist -- )
    [ push-front ] curry each ;

: push-back* ( obj dlist -- dlist-node )
    [ dlist-back f <dlist-node> ] keep
    [ dlist-back set-next-when ] 2keep
