 words.symbol ;
 IN: help
 
-<PRIVATE
+GENERIC: word-help* ( word -- content )
 
-GENERIC: default-word-help ( word -- elements )
+: word-help ( word -- content )
+    dup "help" word-prop [ ] [ word-help* ] ?if ;
 
-M: word default-word-help
+M: word word-help*
     stack-effect [ in>> ] [ out>> ] bi [
         [
             dup pair? [

        " class." ,
    ] { } make 2array ;

M: class default-word-help drop f ;

PRIVATE>

GENERIC: word-help* ( word -- content )

: word-help ( word -- content )
    dup "help" word-prop [ ] [ default-word-help ] ?if ;

: all-articles ( -- seq )
    articles get keys

        ] { } map>assoc
    ] bi@ append members \ $values prefix 1array ;

M: predicate word-help*
    { $values { "object" object } { "?" boolean } }
    [
        \ $description ,
