anchor.diff:       (c-expired (c) (progn c t))))
   
   ;;--------------------------------------------------------------------
  -
  
positive.code:            ,@(t-init-base compiled)
             func)))))
  
  (defmacro tdefun (name args &body body)
    (unless name (error "temporal function must have name"))
    (let ((compiled (tcompile body)))
      `(let ,(remove nil (mapcan #'closed-vars compiled))
  
negative.code: 
  (in-package #:temporal-functions)
  
  ;; {TODO} rewrite so it doesnt rely on macroexpand-dammit. I should know enough
  ;;        to do this now :)
  ;; {TODO} Add paramter for time sources
  ;; {TODO} add once, between, each, once, whilst
  ;; {TODO} if user fires expired inside body of clause the effect should be
  ;;        local
  
  (defclass result ()
  