 (defmethod parse-form* "defcurried"
   [form]
   (parse-defcurried form))
+
+(defmethod parse-form* "defprotocol"
+  [form]
+  (parse-defprotocol form))
+
+(defmethod parse-form* "deftype"
+  [form]
+  (parse-deftype form))
 
 (defmethod parse-form* nil
   [form]

           (not (:private (nth form 3 nil))))
      "defcurried"

      :else nil)))

(defmethod parse-form* "var"

     :signature signatures
     :type "function"}))

(defn parse-defprotocol
  [form]
  )

(defn parse-deftype
  [form]
  )

(defmulti parse-form*
  (fn [form]
    (cond
