         $curious $deprecated $errors $side-effects $content
         $slot $image $warning
     } member-eq? ;
+
+: help-code? ( word -- ? )
+    { $example $unchecked-example $code } member-eq? ;
 
 : help-block? ( word -- ? )
     {

        ] if
    ] produce nip ;

: example-lines ( seq -- seq' )
    dup string? [
        string-lines [ [ blank? ] trim ] map harvest
        dup length 1 - over [ unescape-string ] change-nth
    ] when ;

: make-example ( seq -- seq )
    dup string? [
        example-lines dup length 1 > [ \ $example prefix ] when
    ] when ;

: parse-help-examples ( -- seq )
    \ } parse-until [ make-example ] { } map-as ;

: parse-help-example ( -- seq )
    \ } parse-until dup { [ length 1 = ] [ first string? ] } 1&&
    [ first example-lines ] [ >array ] if ;

: help-text? ( word -- ? )
    {

: help-examples? ( word -- ? )
    { $examples } member-eq? ;

PRIVATE>

SYNTAX: HELP{
    scan-object dup \ } eq? [ drop { } ] [
        {
            { [ dup help-text? ] [ \ } parse-help-text ] }
            { [ dup help-code? ] [ parse-help-code ] }
            { [ dup help-values? ] [ parse-help-values ] }
            { [ dup help-examples? ] [ parse-help-examples ] }
            [ \ } parse-until >array ]
        } cond swap prefix
