 
 (defprotocol IPrintable
   (-pr-seq [o opts]))
+
+(defprotocol IRealized
+  (-realized? [d]))
 
 ;;;;;;;;;;;;;;;;;;; fundamentals ;;;;;;;;;;;;;;;
 (defn identical? [x y]

    (deref x)
    x))

(defn realized? [d]
  "If d is a Delay, will return true if the delay fn has been realized, returns false if it has not,
  returns nil if d is not a Delay"
  (-realized? d))

(comment



;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Delay ;;;;;;;;;;;;;;;;;;;;

(deftype Delay [f state]
  
  IDeref
