+
+void
+Moment::set_infinite (int k)
+{
+ main_part_.set_infinite (k);
+}
+
+string
+Moment::to_string () const
+{
+ string s = main_part_.to_string ();
+ if (grace_part_)
+ s += "G" + grace_part_.to_string ();
+ return s;
+}
+
+Moment
+Moment::operator - () const
+{
+ Moment m;
+ m.grace_part_ = -grace_part_;
+ m.main_part_ = -main_part_;
+ return m;
+}
+
+#ifdef STREAM_SUPPORT
+ostream &
+operator << (ostream &os, Moment const &m)
+{
+ os << m.to_string ();
+ return os;
+}
+#endif
+
+Moment
+robust_scm2moment (SCM m, Moment d)
+{
+ Moment *p = unsmob_moment (m);
+ if (!p)
+ return d;
+ else
+ return *p;
+}
+
+bool
+moment_less (SCM a, SCM b)
+{
+ return *unsmob_moment (a) < *unsmob_moment (b);
+}
+