   If within a with-context form, the context parameter may be omitted."
   {:arglists '([context? id-or-name & args])}
   ([id-or-name]
-   {:pre  [(within-with-context?)
+   {:pre  [(has-*context*?)
            (resolvable? id-or-name)]
     :post [(string? %)]}
    (get-string *context* id-or-name))
   ([context id-or-name]
    {:pre  [(or (and (context? context)
                     (resolvable? id-or-name))
-               (and (within-with-context?)
+               (and (has-*context*?)
                     (resolvable? context)))]
     :post [(string? %)]}
    (if (instance? Context context)

  ^{:doc "The current context object to operate on."}
  *context*)

(defn- context?
  "Determines whether the argument is an instance of Context."
  [x]
  (instance? Context x))

(defn- within-with-context?
  "Ensures that the function is within a valid with-context form."
  []
  (and (bound? #'*context*)
       (context? *context*)))

  :layout-inflater for the layout inflater service.  If within a with-context
  form, the context may be omitted."
  ([type]
   {:pre [(has-*context*?)]}
   (get-system-service *context* type))
  ([^Context context type]
   {:pre [(keyword? type)
