     (validation-error-explain schema-failure)
     schema-failure))
 
-(schema/defn check-timeout
+(schema/defn check-timeout :- schema/Int
   "Given a status level keyword, returns a number of seconds to use as a timeout
   when calling a status function."
-  [level :- ServiceStatusDetailLevel] :- schema/Int
+  [level :- ServiceStatusDetailLevel]
   (case level
     :critical 5
     :info 60

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Public

(schema/defn ^:always-validate nominal?
  [status :- ServiceStatus]
  (= (:state status) :running))

(schema/defn ^:always-validate all-nominal?
  [statuses :- ServicesStatus]
  (every? nominal? (vals statuses)))


  (let [status-map (service-status-map svc-version status-version status-fn)]
    (swap! status-fns-atom update-in [svc-name] conj status-map)))

(schema/defn ^:always-validate guarded-status-fn-call :- StatusCallbackResponse
  "Given a status check function, a status detail level, and a timeout in
  seconds, this function calls the status function and handles three types of
  errors:
