   (group-by [grouping ivals]))
 
 (extend-protocol IGroupable
-  #?(:clj clojure.lang.Fn :cljs function) 
+  #?(:clj clojure.lang.Fn :cljs function)
   (group-by [f ivals]
     (if (empty? ivals)
       {}

(defrecord GeneralRelation [relations]
  #?(:clj clojure.lang.IFn :cljs cljs.core/IFn)
  (#?(:clj invoke :cljs -invoke) [_ x y]
    #_(s/assert ::interval x)
    #_(s/assert ::interval y)
    (some (fn [f] (when (f x y) f)) relations)))

;; Relations are 'basic relations' in [ALSPAUGH-2009]. Invoking a

;; Use of Allen's Interval Algebra, inspired from a working
;; demonstration of time-count by Eric Evans.

(defrecord Interval [beginning end]
  t/ITimeSpan
  (beginning [_] beginning)
