-IMPLEMENT_TYPE_P (Grob, "ly:grob?");
-
-ADD_INTERFACE (Grob, "grob-interface",
- "A grob represents a piece of music notation\n"
- "\n"
-"All grobs have an X and Y-position on the page. These X and Y positions\n"
-"are stored in a relative format, so they can easily be combined by\n"
-"stacking them, hanging one grob to the side of another, and coupling\n"
-"them into a grouping objects.\n"
-"\n"
-"Each grob has a reference point (a.k.a. parent): the position of a grob\n"
-"is stored relative to that reference point. For example the X-reference\n"
-"point of a staccato dot usually is the note head that it applies\n"
-"to. When the note head is moved, the staccato dot moves along\n"
-"automatically.\n"
-"\n"
-"A grob is often associated with a symbol, but some grobs do not print\n"
-"any symbols. They take care of grouping objects. For example, there is a\n"
-"separate grob that stacks staves vertically. The @ref{NoteCollision}\n"
-"is also an abstract grob: it only moves around chords, but doesn't print\n"
-"anything.\n"
-"\n"
- "Grobs have a properties: Scheme variables, that can be read and set. "
- "They have two types. Immutable variables "
- "define the default style and behavior. They are shared between many objects. "
- "They can be changed using @code{\\override} and @code{\\revert}. "
- "\n\n"
- "Mutable properties are variables that are specific to one grob. Typically, "
- "lists of other objects, or results from computations are stored in"
- "mutable properties: every call to set-grob-property (or its C++ equivalent) "
- "sets a mutable property. "
-
-,
- "X-offset-callbacks Y-offset-callbacks X-extent-callback stencil cause "
- "Y-extent-callback print-function extra-offset spacing-procedure "
- "context staff-symbol interfaces dependencies X-extent Y-extent extra-X-extent "
- "meta layer before-line-breaking-callback "
- "after-line-breaking-callback extra-Y-extent minimum-X-extent "
- "minimum-Y-extent transparent tweak-count tweak-rank"
- );
-