+
+Context *
+Grob_info::context () const
+{
+ return origin_trans_->context ();
+}
+
+Spanner *
+Grob_info::spanner () const
+{
+ return dynamic_cast<Spanner *> (grob_);
+}
+
+Item *
+Grob_info::item () const
+{
+ return dynamic_cast<Item *> (grob_);
+}
+
+Stream_event *
+Grob_info::ultimate_event_cause () const
+{
+ SCM cause = grob_->self_scm ();
+ while (Grob::is_smob (cause))
+ {
+ cause = Grob::unsmob (cause)->get_property ("cause");
+ }
+ return Stream_event::unsmob (cause);
+}
+
+bool
+Grob_info::less (Grob_info i, Grob_info j)
+{
+ return Grob::less (i.grob (), j.grob ());
+}