   [ast]
   (when (local? ast)
     (:name ast)))
-
-
-(defn binding->symbol
-  "λ AST → (Option Symbol)
-
-  If the argument form was a binding, returns the bound local
-  symbol."
-  [ast]
-  (when (binding? ast)
-    (-> ast :name)))
-
-
-(defn binding->value
-  "λ AST → (Option AST)
-
-  If the argument form was a binding, returns the bound value as an
-  AST node."
-  [ast]
-  (when (binding? ast)
-    (-> ast :init)))
 
 
 (defn invoke?

  Indicates whether the argument form is a binding node."
  [ast]
  (-> ast :op (= :binding)))


(defn local?

  (-> ast :op (= :fn)))


(defn fn->name
  "λ AST → (Option Symbol)

  If the argument AST is a fn, attempts to return the internal name of
  the fn defaulting to a freshly generated symbol."
  [ast]
  (when (fn? ast)
    (-> ast :internal-name)))


(defn fn-method?
  "λ AST → Boolean

