 ;; Functions that make use of Allens' Interval Algebra
 
 (defprotocol IIntervalOps
-  ;; TODO: Rename? Not always narrow, sometimes widen, or generally modify - perhaps 'derive'
-  (narrow [_ beginning end] "Narrow the interval to the new given bounds")
+  (slice [_ beginning end] "Fit the interval between beginning and end, slicing off one or both ends as necessary")
   (splice [ival1 ival2] "Splice two intervals together")
   (split [ival t] "Split ival into 2 intervals at t, returned as a 2-element vector"))
 

                  (cons x
                        (intersection
                          (assert-proper-head (next xs))
                          (assert-proper-head (cons (narrow y (t/end x) (t/end y))
                                                    (next ys))))))

                ;; List of nothing because one of the collections is

                       (:started-by :overlapped-by)
                       (difference
                         (assert-proper-head
                           (cons (slice x (t/end y) (t/end x)) (next xs)))
                         (assert-proper-head (next ys)))

                       :finished-by
                       (cons (slice x (t/beginning x) (t/beginning y))
                             (difference
                               (assert-proper-head (next xs))
                               (assert-proper-head (next ys))))

                       :overlaps
                       (cons (slice x (t/beginning x) (t/beginning y))
                             (difference
                               (assert-proper-head (next xs))
                               ys))

                       :contains
                       (cons (slice x (t/beginning x) (t/beginning y))
                             (difference
                               (assert-proper-head
                                 (cons (slice x (t/end y) (t/end x)) (next xs)))
                               (assert-proper-head (next ys))))))
                   ;; If xs but no ys
                   xs)
