 M: vector pprint* pprint-object ;
 M: byte-vector pprint* pprint-object ;
 
-M: list pprint*
+M: cons-state pprint*
     [
         <flow
         dup pprint-delims [
             pprint-word
             dup pprint-narrow? <inset
-            dup nil? [ drop ] [
-                [ car pprint* ]
-                [ cdr nil? [ "~more~" text ] unless ] bi
-            ] if block>
+            [ car pprint* ]
+            [ cdr nil? [ "~more~" text ] unless ] bi
+            block>
         ] dip pprint-word block>
     ] check-recursion ;
 

M: vector >pprint-sequence ;
M: byte-vector >pprint-sequence ;
M: callable >pprint-sequence ;
M: list >pprint-sequence list>array ;
M: hashtable >pprint-sequence >alist ;
M: wrapper >pprint-sequence wrapped>> 1array ;
M: callstack >pprint-sequence callstack>array ;

M: byte-array pprint-delims drop \ B{ \ } ;
M: byte-vector pprint-delims drop \ BV{ \ } ;
M: vector pprint-delims drop \ V{ \ } ;
M: cons-state pprint-delims drop \ L{ \ } ;
M: hashtable pprint-delims drop \ H{ \ } ;
M: tuple pprint-delims drop \ T{ \ } ;
M: wrapper pprint-delims drop \ W{ \ } ;
