m@1: ;; Some methods that can be defined in terms of others: m@1: m@1: ;; Time m@1: m@1: (defmethod time>= ((object1 moment) (object2 moment)) m@1: (or (time> object1 object2) m@1: (time= object1 object2))) m@1: m@1: (defmethod time<= ((object1 moment) (object2 moment)) m@1: (or (time< object1 object2) m@1: (time= object1 object2))) m@1: m@1: (defmethod time/= ((object1 moment) (object2 moment)) m@1: (not (time= object1 object2))) m@1: m@1: ;; Duration m@1: m@1: (defmethod duration>= ((object1 duration) (object2 duration)) m@1: (or (duration> object1 object2) m@1: (duration= object1 object2))) m@1: m@1: (defmethod duration<= ((object1 duration) (object2 duration)) m@1: (or (duration< object1 object2) m@1: (duration= object1 object2))) m@1: m@1: (defmethod duration/= ((object1 duration) (object2 duration)) m@1: (not (duration= object1 object2))) m@1: m@1: ;; Pitch m@1: m@1: (defmethod pitch>= ((object1 pitch) (object2 pitch)) m@1: (or (pitch> object1 object2) m@1: (pitch= object1 object2))) m@1: m@1: (defmethod pitch<= ((object1 pitch) (object2 pitch)) m@1: (or (pitch< object1 object2) m@1: (pitch= object1 object2))) m@1: m@1: (defmethod pitch/= ((object1 pitch) (object2 pitch)) m@1: (not (pitch= object1 object2))) m@1: m@1: ;; Interval m@1: m@1: (defmethod interval>= ((object1 interval) (object2 interval)) m@1: (or (interval> object1 object2) m@1: (interval= object1 object2))) m@1: m@1: (defmethod interval<= ((object1 interval) (object2 interval)) m@1: (or (interval< object1 object2) m@1: (interval= object1 object2))) m@1: m@1: (defmethod interval/= ((object1 interval) (object2 interval)) m@1: (not (interval= object1 object2)))