                           {:name policy-name :text policy-text})))
   ([circle role-name policy-name policy-text domain]
     (let [with-added-policy (add-role-policy circle role-name policy-name
-                                             policy-text)
-          _ (validate (or (and (is-lead-link? role-name)
-                               (= role-assignments-domain domain))
-                          (contains? (get-entity circle role-name :domains)
-                                     domain))
-                      (format "Role '%s' doesn't control domain '%s'" role-name
-                              domain))]
+                                             policy-text)]
+      (validate (or (and (is-lead-link? role-name)
+                         (= role-assignments-domain domain))
+                    (contains? (get-entity circle role-name :domains)
+                               domain))
+                (format "Role '%s' doesn't control domain '%s'" role-name
+                        domain))
       (update-role-entity with-added-policy role-name [:policies policy-name]
                           assoc :domain domain))))
 


(defn- update-role
  "Sames as update-role-raw, but a bit easier to use. Doesn't include an
  entity."
  [circle role-name fn & args]
  (update-role-raw circle role-name nil fn args))

(defn- update-role-entity
  "Same as update-role-raw, but a bit easier to use. Includes an entity."
  [circle role-name entity-path fn & args]
  (update-role-raw circle role-name entity-path fn args))


;; ## Generalization Functions ##

(defn- update-role-raw
  "Generalizes any role manipulation. The entities vector is the path to the
   entity inside the role you want to manipulate. The function given is what
   gets applied to the final entity, and the params are the arguments passed to
   that function."
  [circle role-name entities fn args]
