diff --git a/basis/help/help.factor b/basis/help/help.factor index 0b5669b26a..880701588d 100644 --- a/basis/help/help.factor +++ b/basis/help/help.factor @@ -11,7 +11,10 @@ IN: help GENERIC: word-help* ( word -- content ) : word-help ( word -- content ) - dup "help" word-prop [ ] [ word-help* ] ?if ; + dup "help" word-prop [ ] [ + dup word-help* dup + [ swap 2array 1array ] [ 2drop f ] if + ] ?if ; : $predicate ( element -- ) { { "object" object } { "?" boolean } } $values @@ -21,8 +24,8 @@ GENERIC: word-help* ( word -- content ) " class." , ] { } make $description ; -M: word word-help* - stack-effect [ in>> ] [ out>> ] bi [ +: $default ( element -- ) + first stack-effect [ in>> ] [ out>> ] bi [ [ dup pair? [ first2 dup effect? [ \ $quotation swap 2array ] when @@ -30,11 +33,13 @@ M: word word-help* object ] if ] { } map>assoc - ] bi@ append members \ $values prefix 1array ; + ] bi@ append members $values ; + +M: word word-help* drop \ $default ; M: class word-help* drop f ; -M: predicate word-help* \ $predicate prefix 1array ; +M: predicate word-help* drop \ $predicate ; : all-articles ( -- seq ) articles get keys