+ Item *i1 = dynamic_cast<Item *> (g1);
+ if (!i1)
+ {
+ g1->programming_error ("grob is not a semi-tie");
+ return false;
+ }
+
+ Item *i2 = dynamic_cast<Item *> (g2);
+ if (!i2)
+ {
+ g2->programming_error ("grob is not a semi-tie");
+ return true;
+ }
+
+ return get_position (i1) < get_position (i2);