<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -129,17 +129,6 @@
  vector? (fn vector? [x] (instance? clojure.lang.IPersistentVector x)))
 
 (def
- #^{:private true}
- sigs
- (fn [fdecl]
-   (if (seq? (first fdecl))
-     (loop [ret [] fdecl fdecl]
-       (if fdecl
-         (recur (conj ret (first (first fdecl))) (next fdecl))
-         (seq ret)))
-     (list (first fdecl)))))
-
-(def
  #^{:arglists '([map key val] [map key val &amp; kvs])
     :doc &quot;assoc[iate]. When applied to a map, returns a new map of the
     same (hashed/sorted) type, that contains the mapping of key(s) to
@@ -169,6 +158,27 @@
  with-meta (fn with-meta [#^clojure.lang.IObj x m]
              (. x (withMeta m))))
 
+(def
+ #^{:private true}
+ sigs
+ (fn [fdecl]
+   (let [asig 
+         (fn [fdecl]
+           (let [arglist (first fdecl)
+                 body (next fdecl)]
+             (if (map? (first body))
+               (if (next body)
+                 (with-meta arglist (conj (if (meta arglist) (meta arglist) {}) (first body)))
+                 arglist)
+               arglist)))]
+     (if (seq? (first fdecl))
+       (loop [ret [] fdecls fdecl]
+         (if fdecls
+           (recur (conj ret (asig (first fdecls))) (next fdecls))
+           (seq ret)))
+       (list (asig fdecl))))))
+
+
 (def 
  #^{:arglists '([coll])
     :doc &quot;Return the last item in coll, in linear time&quot;}</diff>
      <filename>src/clj/clojure/core.clj</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>6201f5e2ddd52f1b483d75563b0380deba59777c</id>
    </parent>
  </parents>
  <author>
    <name>Rich Hickey</name>
    <email>richhickey@gmail.com</email>
  </author>
  <url>http://github.com/richhickey/clojure/commit/88cb2692219dfba415e2e6c631077e0d0e8a7699</url>
  <id>88cb2692219dfba415e2e6c631077e0d0e8a7699</id>
  <committed-date>2009-07-01T11:06:57-07:00</committed-date>
  <authored-date>2009-07-01T11:06:57-07:00</authored-date>
  <message>in defn, propagate pre/post conditions written as map trailing arglist to metadata on arglist</message>
  <tree>93fafb65acd33b512f30248ff78bdfe4342afee5</tree>
  <committer>
    <name>Rich Hickey</name>
    <email>richhickey@gmail.com</email>
  </committer>
</commit>
