-;; Copyright © 2016 Dynamic Object Language Labs Inc.
+;; Copyright © 2017 Dynamic Object Language Labs Inc.
 ;;
 ;; This software is licensed under the terms of the
 ;; Apache License, Version 2.0 which can be found in
 ;; the file LICENSE at the root of this distribution.
 
-;;; Acknowledgement and Disclaimer:
-;;; This material is based upon work supported by the Army Contracting
-;;; and DARPA under contract No. W911NF-15-C-0005.
-;;; Any opinions, findings and conclusions or recommendations expressed
-;;; in this material are those of the author(s) and do necessarily reflect the
-;;; views of the Army Contracting Command and DARPA.
+;; Acknowledgement and Disclaimer:
+;; This material is based upon work supported by the Army Contracting
+;; and DARPA under contract No. W911NF-15-C-0005.
+;; Any opinions, findings and conclusions or recommendations expressed
+;; in this material are those of the author(s) and do necessarily reflect the
+;; views of the Army Contracting Command and DARPA.
 
 
 (ns pamela.inheritance
   (:require [clojure.pprint :refer :all]
-            [pamela.utils :as putils]))
+            [pamela.utils :as putils]
+            [pamela.tpn]))
 
 
 (defn get-parents [clas ir]

                (do (putils/dbg-println :warn "pamela.inheritance assoc-method method:"
                                        method-sym "has multiple methods with same signature" msig "\ncurrent will stay")
                    (putils/dbg-println :warn "current")
                    (pprint (get msig result))
                    (putils/dbg-println :warn "another")
                    (pprint method))
                (merge result {msig method}))))
          {} m-vec))


  (let [has-tc? (or (:temporal-constraints specific) (:temporal-constraints more-specific))
        trans (or more-specific specific)]
    (if has-tc?
      (conj trans {:temporal-constraints [{:type :bounds :value (pamela.tpn/merge-bounds (-> specific :temporal-constraints first :value)
                                                                              (-> more-specific :temporal-constraints first :value))}]
                   })
      trans)))
