     (hla-type        [] orig-type)
     (extend-hla!     [init-sets par-effect-sets] (throw (UnsupportedOperationException.)))
   env/Action
-    (action-name [] name)
+    (action-name [] [:!C  name])
     (primitive?  [] false)
   env/ContextualAction 
     (precondition-context [s] precond-vars)



(defn default-compile-hla-noflatten [hla retain-type-set]
  (if (contains? retain-type-set (hla-type hla)) hla
    (or (get *compile-cache* hla)
        (let [chla (make-compiled-hla (env/action-name hla) (type hla) (precond-var-set hla) (effect-sets hla))]
          (.put *compile-cache* hla chla)
          (set-compiled-hla-refinements chla
            (doall (for [[p r] (pre-ref-pairs hla)] [p (compile-refinement r retain-type-set)])))
          chla))))

(defn default-compile-hla [hla retain-type-set]
 (if (contains? retain-type-set (hla-type hla)) hla
  (let [pr (pre-ref-pairs hla)]
    (if (and (util/singleton? pr) (empty? (ffirst pr)))
      (compile-refinement (second (first pr)) retain-type-set)
      (default-compile-hla-noflatten hla retain-type-set)))))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; VV HLAs ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    (effect-sets     [] (throw (UnsupportedOperationException.)))
    (pre-ref-pairs   [] (throw (UnsupportedOperationException.)))
    (compile-hla     [retain-type-set]
      (println "interleaved compile" (map #(map env/action-name %) refinements))
      (SAS-Interleaving-HLA. (vec (map #(compile-refinement % (conj retain-type-set ::SAS-Precond-Set-HLA)) refinements)) shared-var-set))
    (hla-type        [] (type this))
    (extend-hla!     [init-sets par-effect-sets] (throw (UnsupportedOperationException.)))
  env/Action
