A derived smob cannot use the macro IMPLEMENT_TYPE_P () to export
its type predicate, since this relies on the IMPLEMENT_SMOBS ()
macro to initialize the class's smob tag and predicate function
(smob_p ()): IMPLEMENT_SMOBS () is reserved for use in base classes.
In the case of Stream_event, this results in both ly:stream-event?
and ASSERT_SMOB (Stream_event, ...) failing to distinguish
stream events from other Probs.
* lily/function-documentation.cc (init_func_doc):
add type predicate documentation for Stream_event
* lily/include/stream-event.hh:
remove declaration for Stream_event predicate
* lily/stream-event-scheme.cc:
implement ly:stream-event? manually
use LY_ASSERT_TYPE () instead of LY_ASSERT_SMOB ()