 M: typedef-word definer drop \ TYPEDEF: f ;
 
 M: typedef-word synopsis*
-    \ TYPEDEF: pprint-word
-    dup "c-type" word-prop pprint-c-type
-    pprint-word ;
+    {
+        [ seeing-word ]
+        [ definer. ]
+        [ "c-type" word-prop pprint-c-type ]
+        [ pprint-word ]
+    } cleave ;
 
 : pprint-function-arg ( type name -- )
     [ pprint-c-type ] [ text ] bi* ;

    drop \ FUNCTION: \ ; ;
M: alien-function-word definition drop f ;
M: alien-function-word synopsis*
    \ FUNCTION: pprint-word
    [ def>> first pprint-c-type ]
    [ pprint-word ]
    [ <block "(" text pprint-function-args ")" text block> ] tri ;


M: c-type-word definer drop \ C-TYPE: f ;
M: c-type-word definition drop f ;
M: c-type-word declarations. drop ;

GENERIC: pprint-c-type ( c-type -- )
M: word pprint-c-type pprint-word ;
