         swap >>prompt
         swap >>intro
         V{ } clone >>commands
-        V{ } clone >>abbrevs
-    [ <help-command> ] [ add-command ] [ ] tri ;
+        V{ } clone >>abbrevs {
+        [ <help-command> ]
+        [ add-command ]
+        [ <abbrevs-command> ]
+        [ add-command ]
+        [ ]
+    } cleave ;
 
 : <command-loop> ( intro prompt -- command-loop )
     command-loop new-command-loop ;


USING: accessors ascii assocs combinators grouping io kernel
math sequences sorting splitting ;

IN: command-loop



: do-help ( args command-loop -- )
    over empty? [
        nl
        "Commands available:" print
        "===================" print
        nip commands>> [ name>> ] map natural-sort
        [ 6 <groups> ] [ longest length 4 + ] bi
        '[ [ _ CHAR: \s pad-tail write ] each nl ] each nl
    ] [
        dupd find-command [
            nip help>> print
