Diffing ivan/clj-diffmatchpatch/clj-diffmatchpatch/0.0.9/clj-diffmatchpatch-0.0.9.jar
Mismatch: clj-diffmatchpatch.clj
Only in one jar: clj-diffmatchpatch.clj nil #<ZipEntry clj-diffmatchpatch.clj>

Mismatch: project.clj
--- /tmp/clojars161322341158571123diff  2013-04-17 14:00:42.104714290 -0700
+++ /tmp/clojars6328278204055355648diff 2013-04-17 14:00:42.104714290 -0700
@@ -1,7 +1,8 @@
 (defproject clj-diffmatchpatch "0.0.9"
   :description "A Clojure wrapper for the Java implimentation of google-diff-match-patch by Neil Fraser."
-  :url "none"
+  :url nil
   :license {:name "Apache License 2.0"
             :url "http://www.apache.org/licenses/LICENSE-2.0"}
   :dependencies [[org.clojure/clojure "1.5.1"]]
+  :source-paths ["src/clojure"]
   :java-source-paths ["src/java"])

Mismatch: META-INF/maven/clj-diffmatchpatch/clj-diffmatchpatch/pom.properties
--- /tmp/clojars908139848347929000diff  2013-04-17 14:00:42.116714352 -0700
+++ /tmp/clojars5084799259742511833diff 2013-04-17 14:00:42.116714352 -0700
@@ -1,5 +1,5 @@
 #Leiningen
-#Fri Apr 12 21:46:09 CDT 2013
+#Sat Apr 13 12:10:27 CDT 2013
 version=0.0.9
 groupId=clj-diffmatchpatch
 artifactId=clj-diffmatchpatch

Mismatch: mischov/clj-diffmatchpatch.clj
Only in one jar: mischov/clj-diffmatchpatch.clj #<ZipEntry mischov/clj-diffmatchpatch.clj> nil

Mismatch: META-INF/leiningen/clj-diffmatchpatch/clj-diffmatchpatch/project.clj
--- /tmp/clojars6472211037497263642diff 2013-04-17 14:00:42.128714418 -0700
+++ /tmp/clojars2169338745263455790diff 2013-04-17 14:00:42.128714418 -0700
@@ -1,7 +1,8 @@
 (defproject clj-diffmatchpatch "0.0.9"
   :description "A Clojure wrapper for the Java implimentation of google-diff-match-patch by Neil Fraser."
-  :url "none"
+  :url nil
   :license {:name "Apache License 2.0"
             :url "http://www.apache.org/licenses/LICENSE-2.0"}
   :dependencies [[org.clojure/clojure "1.5.1"]]
+  :source-paths ["src/clojure"]
   :java-source-paths ["src/java"])

Mismatch: java/google/dmp/DiffMatchPatch.java
Only in one jar: java/google/dmp/DiffMatchPatch.java #<ZipEntry java/google/dmp/DiffMatchPatch.java> nil

Mismatch: META-INF/maven/clj-diffmatchpatch/clj-diffmatchpatch/pom.xml
--- /tmp/clojars182368096973713916diff  2013-04-17 14:00:42.148714511 -0700
+++ /tmp/clojars8888141248242196653diff 2013-04-17 14:00:42.148714511 -0700
@@ -6,7 +6,6 @@
   <version>0.0.9</version>
   <name>clj-diffmatchpatch</name>
   <description>A Clojure wrapper for the Java implimentation of google-diff-match-patch by Neil Fraser.</description>
-  <url>none</url>
   <licenses>
     <license>
       <name>Apache License 2.0</name>
@@ -14,7 +13,7 @@
     </license>
   </licenses>
   <build>
-    <sourceDirectory>src</sourceDirectory>
+    <sourceDirectory>src/clojure</sourceDirectory>
     <testSourceDirectory>test</testSourceDirectory>
     <resources>
       <resource>

Diffing ivan/luminus/lein-template/0.5.3/lein-template-0.5.3.jar
#<File ivan/luminus/lein-template/0.5.3/lein-template-0.5.3.jar> https://clojars.org/repo/luminus/lein-template/0.5.3/lein-template-0.5.3.jar
Diffing ivan/conveyor-coffeescript/conveyor-coffeescript/0.1.4/conveyor-coffeescript-0.1.4.jar
Mismatch: META-INF/maven/conveyor-coffeescript/conveyor-coffeescript/pom.properties
--- /tmp/clojars7705760090319825392diff 2013-04-17 14:00:42.808717783 -0700
+++ /tmp/clojars8416483252182646525diff 2013-04-17 14:00:42.808717783 -0700
@@ -1,5 +1,5 @@
 #Leiningen
-#Mon Apr 15 19:17:15 CDT 2013
+#Mon Apr 15 22:40:27 CDT 2013
 version=0.1.4
 groupId=conveyor-coffeescript
 artifactId=conveyor-coffeescript

Diffing ivan/nsfw/lein-template/0.5.2/lein-template-0.5.2.jar
Mismatch: leiningen/new/nsfw/nsfw.scss
--- /tmp/clojars6024972245755260710diff 2013-04-17 14:00:43.348720457 -0700
+++ /tmp/clojars4504796067432902898diff 2013-04-17 14:00:43.348720457 -0700
@@ -11,16 +11,6 @@
   transition: all $props;
 }
 
-@mixin child-padding($p) {
-  &> * {
-    margin-bottom: $p;
-  }
-
-  &> *:last-child {
-    margin-bottom: 0;
-  }
-}
-
 @mixin transition($t) {
   -webkit-transition: $t;
   -moz-transition: $t;
@@ -42,8 +32,8 @@
 dl, dt, dd, ol, ul, li,
 fieldset, form, label, legend,
 table, caption, tbody, tfoot, thead, tr, th, td,
-article, aside, canvas, details, embed, 
-figure, figcaption, footer, header, hgroup, 
+article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup,
 menu, nav, output, ruby, section, summary,
 time, mark, audio, video {
   margin: 0;
@@ -54,7 +44,7 @@
   vertical-align: baseline;
 }
 /* HTML5 display-role reset for older browsers */
-article, aside, details, figcaption, figure, 
+article, aside, details, figcaption, figure,
 footer, header, hgroup, menu, nav, section {
   display: block;
 }
@@ -78,7 +68,7 @@
 }
 
 
-/* 
+/*
    12 COLUMN - RESPONSIVE GRID SYSTEM
    DEVELOPED BY DENIS LEBLANC
    URL - http://responsive.gs
@@ -98,11 +88,11 @@
 
 
 /* SELF CLEARING FLOATS - CLEARFIX METHOD */
-.row:after, .col:after, .clr:after, .group:after { 
-  content: ""; 
-  display: block; 
-  height: 0; 
-  clear: both; 
+.row:after, .col:after, .clr:after, .group:after {
+  content: "";
+  display: block;
+  height: 0;
+  clear: both;
   visibility: hidden; }
 
 
@@ -111,13 +101,13 @@
 
 
 /* DEFAULT COLUMN STYLES */
-.col { 
+.col {
   display: block;
   float:left;
   width: 100%;
 }
 
-@media ( min-width : 768px ) {
+@media ( min-width : 900px ) {
   .col {
     margin-left: 2%;
   }
@@ -129,7 +119,7 @@
 
 
 /* COLUMN WIDTH ON DISPLAYS +768px */
-@media ( min-width : 768px ) {
+@media ( min-width : 900px ) {
   .span1 { width: 6.5%; }
   .span2 { width: 15.0%; }
   .span3 { width: 23.5%; }
@@ -154,8 +144,8 @@
 }
 
 p {
-  font-size: 0.95em;
-  line-height: 1.6em;
+  line-height: 1.3em;
+  margin-bottom: 0.5em;
 }
 
 pre {
@@ -180,31 +170,26 @@
 h1 {
 }
 
-header {
-  @include child-padding(0.5em)
-}
-
 .ani500 {
   @include transition(500ms)
 }
 
-div.col, div.content {
-  @include child-padding(0.75em)
-}
-
 h1 {
   font-size: 2em;
   font-weight: 600;
+  margin-bottom: 0.3em;
 }
 
 h2 {
   font-size: 1.75em;
   font-weight: 600;
+  margin-bottom: 0.3em;
 }
 
 h3 {
   font-size: 1.5em;
   font-weight: 600;
+  margin-bottom: 0.3em;
 }
 
 a {
@@ -223,26 +208,8 @@
   max-width: 100%;
 }
 
-ul, ol { @include child-padding(0.5em) }
-
-.row {
-  @include child-padding(1em);
-}
-
-.content,
-.ct {
-  @include child-padding(0.5em);
-}
-
-.right {
-  float: right;
-}
-
-.left {
-  float: left;
-}
-
 input[type="text"],
+input[type="password"],
 textarea {
   font-size: 1em;
   padding: 0.25em;
@@ -252,8 +219,23 @@
   @include transition(outline 150ms ease);
 }
 
+
 .clear {
   clear: both;
   margin: 0 !important;
   padding: 0;
-}
\ No newline at end of file
+}
+
+$peter-river: #3498DB;
+$turquoise: #1ABC9C;
+$wisteria: #8E44AD;
+$nephritis: #27AE60;
+$pumpkin: #D35400;
+$pomegranate: #C0392B;
+$green-sea: #16A085;
+$belize-hole: #2980B9;
+$sunflower: #F1C40F;
+$carrot: #E67E22;
+$concrete: #95A5A6;
+$clouds: #ECF0F1;
+$orange: #F39C12;

Mismatch: fontawesome-webfont.svg
Only in one jar: fontawesome-webfont.svg nil #<ZipEntry fontawesome-webfont.svg>

Mismatch: fontawesome-webfont.ttf
Only in one jar: fontawesome-webfont.ttf nil #<ZipEntry fontawesome-webfont.ttf>

Mismatch: leiningen/new/nsfw/project.clj
--- /tmp/clojars3395273281397708660diff 2013-04-17 14:00:43.372720576 -0700
+++ /tmp/clojars3368382988850654089diff 2013-04-17 14:00:43.372720576 -0700
@@ -2,7 +2,7 @@
   :description "A Clojure web app using NSFW."
   :min-lein-version "2"
   :dependencies [[org.clojure/clojure "1.4.0"]
-                 [nsfw "0.5.4"]]
+                 [nsfw "0.5.10"]]
   :source-paths ["src/clj"]
   :test-paths ["test/clj"]
   :plugins [[lein-cljsbuild "0.3.0"]]

Mismatch: leiningen/new/nsfw/app.scss
--- /tmp/clojars1324560009684939472diff 2013-04-17 14:00:43.380720625 -0700
+++ /tmp/clojars1478662066299941965diff 2013-04-17 14:00:43.380720625 -0700
@@ -1,3 +1,8 @@
+@import "font-awesome";
+@import "nsfw";
+
 body {
   padding: 40px;
-}
\ No newline at end of file
+}
+
+i { margin-right: 0.3em; }
\ No newline at end of file

Mismatch: fontawesome-webfont.eot
Only in one jar: fontawesome-webfont.eot nil #<ZipEntry fontawesome-webfont.eot>

Mismatch: leiningen/new/nsfw/app.cljs
--- /tmp/clojars1773981215318577547diff 2013-04-17 14:00:43.396720705 -0700
+++ /tmp/clojars5336032458806254793diff 2013-04-17 14:00:43.396720705 -0700
@@ -7,7 +7,9 @@
 
 (def $page
   [:div
-   [:h1 "Hello {{name}}."]
+   [:h1
+    [:i.icon-gift]
+    "Hello {{name}}"]
    [:p
     "This file can be found at " [:code "src/cljs/{{sanitized}}/app.cljs"] ". "
     "Any changes to this file (and any other cljs files) will automatically be "

Mismatch: FontAwesome.otf
Only in one jar: FontAwesome.otf nil #<ZipEntry FontAwesome.otf>

Mismatch: leiningen/new/nsfw/bootstrap-responsive.min.css
Only in one jar: leiningen/new/nsfw/bootstrap-responsive.min.css #<ZipEntry leiningen/new/nsfw/bootstrap-responsive.min.css> nil

Mismatch: META-INF/maven/nsfw/lein-template/pom.properties
--- /tmp/clojars5508090836677119727diff 2013-04-17 14:00:43.424720843 -0700
+++ /tmp/clojars6824428783305731579diff 2013-04-17 14:00:43.424720843 -0700
@@ -1,5 +1,5 @@
 #Leiningen
-#Mon Mar 25 21:32:54 PDT 2013
+#Wed Apr 17 01:47:03 HST 2013
 version=0.5.2
 groupId=nsfw
 artifactId=lein-template

Mismatch: font-awesome.scss
Only in one jar: font-awesome.scss nil #<ZipEntry font-awesome.scss>

Mismatch: leiningen/new/nsfw.clj
--- /tmp/clojars7995351140601275425diff 2013-04-17 14:00:43.440720919 -0700
+++ /tmp/clojars4938655528047585207diff 2013-04-17 14:00:43.440720919 -0700
@@ -1,5 +1,5 @@
 (ns leiningen.new.nsfw
-  (:use [leiningen.new.templates :only [renderer name-to-path ->files]]))
+  (:use [leiningen.new.templates :only [renderer name-to-path ->files slurp-resource]]))
 
 (def render (renderer "nsfw"))
 
@@ -10,8 +10,8 @@
               :sanitized (name-to-path name)}]
     (->files data
              ["Procfile" (render "Procfile" data)]
-             ["bin/build" (render "build" data)]
-             ["bin/dev" (render "dev" data)]
+             ["bin/build" (render "build" data) :executable true]
+             ["bin/dev" (render "dev" data) :executable true]
              ["project.clj" (render "project.clj" data)]
              [".gitignore" (render ".gitignore" data)]
              ["src/clj/{{sanitized}}/run.clj" (render "run.clj" data)]
@@ -19,4 +19,17 @@
              ["src/cljs/{{sanitized}}/app.cljs" (render "app.cljs" data)]
              ["src/scss/app.scss" (render "app.scss" data)]
              ["src/scss/nsfw.scss" (render "nsfw.scss" data)]
-             ["README.md" (render "README.md" data)])))
+             ["README.md" (render "README.md" data)]
+
+             ["src/scss/font-awesome.scss" (slurp-resource "font-awesome.scss")]
+             ["resources/public/font/fontawesome-webfont.eot"
+              (slurp-resource "fontawesome-webfont.eot")]
+             ["resources/public/font/fontawesome-webfont.svg"
+              (slurp-resource "fontawesome-webfont.svg")]
+             ["resources/public/font/fontawesome-webfont.ttf"
+              (slurp-resource "fontawesome-webfont.ttf")]
+             ["resources/public/font/fontawesome-webfont.woff"
+              (slurp-resource "fontawesome-webfont.woff")]
+             ["resources/public/font/FontAwesome.otf"
+              (slurp-resource "FontAwesome.otf")]
+)))

Mismatch: fontawesome-webfont.woff
Only in one jar: fontawesome-webfont.woff nil #<ZipEntry fontawesome-webfont.woff>

Mismatch: leiningen/new/nsfw/entry.clj
--- /tmp/clojars462758218395613202diff  2013-04-17 14:00:43.460721014 -0700
+++ /tmp/clojars3133789723537050894diff 2013-04-17 14:00:43.460721014 -0700
@@ -7,7 +7,7 @@
   (app/clojurescript
    :entry '{{name}}.app/entry
    :session-store session
-   :css [:nsfw :app]
+   :css [:app]
    :data (fn [r]
            ;; Key / val pairs are embedded into the page as js vars
            {:unique-value (str (gensym))})

Mismatch: leiningen/new/nsfw/bootstrap.min.css
Only in one jar: leiningen/new/nsfw/bootstrap.min.css #<ZipEntry leiningen/new/nsfw/bootstrap.min.css> nil

Diffing ivan/lib-noir/lib-noir/0.5.0/lib-noir-0.5.0.jar
Mismatch: project.clj
--- /tmp/clojars5826266904795627851diff 2013-04-17 14:00:43.636721887 -0700
+++ /tmp/clojars5835740678471366193diff 2013-04-17 14:00:43.636721887 -0700
@@ -9,7 +9,7 @@
                  [ring "1.1.8"]
                  [compojure "1.1.5"]
                  [clout "1.1.0"]
-                 [hiccup "1.0.2"]
+                 [hiccup "1.0.3"]
                  [org.mindrot/jbcrypt "0.3m"]]
   :plugins [[codox "0.6.4"]]
   :codox {:output-dir "doc/0.5.0"})

Mismatch: META-INF/maven/lib-noir/lib-noir/pom.properties
--- /tmp/clojars9060669767063891948diff 2013-04-17 14:00:43.644721933 -0700
+++ /tmp/clojars1093142614296289225diff 2013-04-17 14:00:43.644721933 -0700
@@ -1,6 +1,6 @@
 #Leiningen
-#Wed Apr 10 07:50:37 EDT 2013
+#Wed Apr 10 19:44:38 EDT 2013
 version=0.5.0
-revision=ab0d0c9ef94f9fe2e59cce4e0a2a92c8794d3c16
+revision=f87817526074c1e23238bb6c15650afab5b94fc5
 groupId=lib-noir
 artifactId=lib-noir

Mismatch: META-INF/leiningen/lib-noir/lib-noir/project.clj
--- /tmp/clojars7902780691539562775diff 2013-04-17 14:00:43.652721965 -0700
+++ /tmp/clojars6304333642422264513diff 2013-04-17 14:00:43.652721965 -0700
@@ -9,7 +9,7 @@
                  [ring "1.1.8"]
                  [compojure "1.1.5"]
                  [clout "1.1.0"]
-                 [hiccup "1.0.2"]
+                 [hiccup "1.0.3"]
                  [org.mindrot/jbcrypt "0.3m"]]
   :plugins [[codox "0.6.4"]]
   :codox {:output-dir "doc/0.5.0"})

Mismatch: META-INF/maven/lib-noir/lib-noir/pom.xml
--- /tmp/clojars7888923936678006723diff 2013-04-17 14:00:43.660722007 -0700
+++ /tmp/clojars5892487261151591211diff 2013-04-17 14:00:43.660722007 -0700
@@ -18,7 +18,7 @@
   <scm>
     <connection>scm:git:git://github.com/noir-clojure/lib-noir.git</connection>
     <developerConnection>scm:git:ssh://git@github.com/noir-clojure/lib-noir.git</developerConnection>
-    <tag>ab0d0c9ef94f9fe2e59cce4e0a2a92c8794d3c16</tag>
+    <tag>f87817526074c1e23238bb6c15650afab5b94fc5</tag>
     <url>https://github.com/noir-clojure/lib-noir</url>
   </scm>
   <build>
@@ -91,7 +91,7 @@
     <dependency>
       <groupId>hiccup</groupId>
       <artifactId>hiccup</artifactId>
-      <version>1.0.2</version>
+      <version>1.0.3</version>
     </dependency>
     <dependency>
       <groupId>org.mindrot</groupId>

Diffing ivan/lein-haml-sass/lein-haml-sass/0.2.5/lein-haml-sass-0.2.5.jar
Mismatch: META-INF/MANIFEST.MF
--- /tmp/clojars5628161363284739054diff 2013-04-17 14:00:43.828722847 -0700
+++ /tmp/clojars4254673536136781967diff 2013-04-17 14:00:43.828722847 -0700
@@ -1,4 +1,4 @@
 Manifest-Version: 1.0
 Built-By: rtircher
-Created-By: Leiningen 2.1.0
+Created-By: Leiningen 2.1.1
 

Mismatch: project.clj
--- /tmp/clojars1566361636902539355diff 2013-04-17 14:00:43.836722878 -0700
+++ /tmp/clojars4553189958421005392diff 2013-04-17 14:00:43.836722878 -0700
@@ -9,47 +9,44 @@
                  [org.jruby/jruby-complete "1.6.8"]
                  [com.cemerick/pomegranate "0.2.0"]]
 
-  :profiles {:dev {:dependencies [[speclj "2.5.0"]]
-                   :plugins [[speclj "2.5.0"]]
-                   :test-paths ["spec/"]
-
-                   ;; Example for adding lein haml hooks
-                   ;; :hooks [leiningen.scss leiningen.sass leiningen.haml]
-
-                   ;; Example on how to use lein-haml-sass
-                   :haml {:src "spec/files"
-                          :output-directory "spec/out/haml"
-                          ;; Other options (provided are default values)
-                          :output-extension "html"
-                          ;; :auto-compile-delay 250
-                          ;; :delete-output-dir true ;; -> when running lein clean it will delete the output directory if it does not contain any file
-                          ;; :ignore-hooks [:clean :compile] ;; -> if you ue the hooks, allows you to remove some hooks that you don't want to run
-                          :gem-version "3.1.7"
-                          }
-
-                   :sass {:src "spec/files"
-                          :output-directory "spec/out/sass"
-                          ;; Other options (provided are default values)
-                          ;; :output-extension css
-                          ;; :auto-compile-delay 250
-                          ;; :delete-output-dir true ;; -> when running lein clean it will delete the output directory if it does not contain any file
-                          :ignore-hooks [:deps] ;; -> if you ue the hooks, allows you to remove some hooks that you don't want to run
-                          :style :nested ;; valid: :nested, :expanded, :compact, :compressed
-                          }
-
-                   :scss {:src "spec/files"
-                          :output-directory "spec/out/scss"
-                          ;; Other options (provided are default values)
-                          ;; :output-extension css
-                          ;; :auto-compile-delay 250
-                          ;; :delete-output-dir true ;; -> when running lein clean it will delete the output directory if it does not contain any file
-                          ;; :ignore-hooks [:clean :compile] ;; -> if you ue the hooks, allows you to remove some hooks that you don't want to run
-                          :gem-version "3.2.1"
-                          :style :nested ;; valid: :nested, :expanded, :compact, :compressed
-                          }
-                   }}
-
+  :profiles {:dev {:dependencies [[speclj "2.5.0"]]}}
+  :plugins [[speclj "2.5.0"]]
+  :test-paths ["spec/"]
 
   :eval-in-leiningen true
 
-  )
+  ;; Example for adding lein haml hooks
+  ;; :hooks [leiningen.scss leiningen.sass leiningen.haml]
+
+  ;; Example on how to use lein-haml-sass
+  :haml {:src "spec/files"
+         :output-directory "spec/out/haml"
+         ;; Other options (provided are default values)
+         :output-extension "html"
+         ;; :auto-compile-delay 250
+         ;; :delete-output-dir true ;; -> when running lein clean it will delete the output directory if it does not contain any file
+         ;; :ignore-hooks [:clean :compile] ;; -> if you ue the hooks, allows you to remove some hooks that you don't want to run
+         :gem-version "3.1.7"
+         }
+
+  :sass {:src "spec/files"
+         :output-directory "spec/out/sass"
+         ;; Other options (provided are default values)
+         ;; :output-extension css
+         ;; :auto-compile-delay 250
+         ;; :delete-output-dir true ;; -> when running lein clean it will delete the output directory if it does not contain any file
+         :ignore-hooks [:deps] ;; -> if you ue the hooks, allows you to remove some hooks that you don't want to run
+         :style :nested ;; valid: :nested, :expanded, :compact, :compressed
+         }
+
+  :scss {:src "spec/files"
+         :output-directory "spec/out/scss"
+         ;; Other options (provided are default values)
+         ;; :output-extension css
+         ;; :auto-compile-delay 250
+         ;; :delete-output-dir true ;; -> when running lein clean it will delete the output directory if it does not contain any file
+         ;; :ignore-hooks [:clean :compile] ;; -> if you ue the hooks, allows you to remove some hooks that you don't want to run
+         :gem-version "3.2.1"
+         :style :nested ;; valid: :nested, :expanded, :compact, :compressed
+         }
+    )

Mismatch: META-INF/maven/lein-haml-sass/lein-haml-sass/pom.properties
--- /tmp/clojars2297070407669088494diff 2013-04-17 14:00:43.844722920 -0700
+++ /tmp/clojars4581352402317964973diff 2013-04-17 14:00:43.844722920 -0700
@@ -1,6 +1,6 @@
 #Leiningen
-#Sun Mar 24 15:52:10 SGT 2013
+#Thu Apr 04 10:52:43 SGT 2013
 version=0.2.5
-revision=636d629ad5e0c3a2ece93594e7d79b934f27d2cc
+revision=dc2089c93ffa2eea746d150c3ae97440ebd9d3e0
 groupId=lein-haml-sass
 artifactId=lein-haml-sass

Mismatch: META-INF/leiningen/lein-haml-sass/lein-haml-sass/project.clj
--- /tmp/clojars5557680280834026550diff 2013-04-17 14:00:43.852722960 -0700
+++ /tmp/clojars8095547364286392080diff 2013-04-17 14:00:43.852722960 -0700
@@ -9,47 +9,44 @@
                  [org.jruby/jruby-complete "1.6.8"]
                  [com.cemerick/pomegranate "0.2.0"]]
 
-  :profiles {:dev {:dependencies [[speclj "2.5.0"]]
-                   :plugins [[speclj "2.5.0"]]
-                   :test-paths ["spec/"]
-
-                   ;; Example for adding lein haml hooks
-                   ;; :hooks [leiningen.scss leiningen.sass leiningen.haml]
-
-                   ;; Example on how to use lein-haml-sass
-                   :haml {:src "spec/files"
-                          :output-directory "spec/out/haml"
-                          ;; Other options (provided are default values)
-                          :output-extension "html"
-                          ;; :auto-compile-delay 250
-                          ;; :delete-output-dir true ;; -> when running lein clean it will delete the output directory if it does not contain any file
-                          ;; :ignore-hooks [:clean :compile] ;; -> if you ue the hooks, allows you to remove some hooks that you don't want to run
-                          :gem-version "3.1.7"
-                          }
-
-                   :sass {:src "spec/files"
-                          :output-directory "spec/out/sass"
-                          ;; Other options (provided are default values)
-                          ;; :output-extension css
-                          ;; :auto-compile-delay 250
-                          ;; :delete-output-dir true ;; -> when running lein clean it will delete the output directory if it does not contain any file
-                          :ignore-hooks [:deps] ;; -> if you ue the hooks, allows you to remove some hooks that you don't want to run
-                          :style :nested ;; valid: :nested, :expanded, :compact, :compressed
-                          }
-
-                   :scss {:src "spec/files"
-                          :output-directory "spec/out/scss"
-                          ;; Other options (provided are default values)
-                          ;; :output-extension css
-                          ;; :auto-compile-delay 250
-                          ;; :delete-output-dir true ;; -> when running lein clean it will delete the output directory if it does not contain any file
-                          ;; :ignore-hooks [:clean :compile] ;; -> if you ue the hooks, allows you to remove some hooks that you don't want to run
-                          :gem-version "3.2.1"
-                          :style :nested ;; valid: :nested, :expanded, :compact, :compressed
-                          }
-                   }}
-
+  :profiles {:dev {:dependencies [[speclj "2.5.0"]]}}
+  :plugins [[speclj "2.5.0"]]
+  :test-paths ["spec/"]
 
   :eval-in-leiningen true
 
-  )
+  ;; Example for adding lein haml hooks
+  ;; :hooks [leiningen.scss leiningen.sass leiningen.haml]
+
+  ;; Example on how to use lein-haml-sass
+  :haml {:src "spec/files"
+         :output-directory "spec/out/haml"
+         ;; Other options (provided are default values)
+         :output-extension "html"
+         ;; :auto-compile-delay 250
+         ;; :delete-output-dir true ;; -> when running lein clean it will delete the output directory if it does not contain any file
+         ;; :ignore-hooks [:clean :compile] ;; -> if you ue the hooks, allows you to remove some hooks that you don't want to run
+         :gem-version "3.1.7"
+         }
+
+  :sass {:src "spec/files"
+         :output-directory "spec/out/sass"
+         ;; Other options (provided are default values)
+         ;; :output-extension css
+         ;; :auto-compile-delay 250
+         ;; :delete-output-dir true ;; -> when running lein clean it will delete the output directory if it does not contain any file
+         :ignore-hooks [:deps] ;; -> if you ue the hooks, allows you to remove some hooks that you don't want to run
+         :style :nested ;; valid: :nested, :expanded, :compact, :compressed
+         }
+
+  :scss {:src "spec/files"
+         :output-directory "spec/out/scss"
+         ;; Other options (provided are default values)
+         ;; :output-extension css
+         ;; :auto-compile-delay 250
+         ;; :delete-output-dir true ;; -> when running lein clean it will delete the output directory if it does not contain any file
+         ;; :ignore-hooks [:clean :compile] ;; -> if you ue the hooks, allows you to remove some hooks that you don't want to run
+         :gem-version "3.2.1"
+         :style :nested ;; valid: :nested, :expanded, :compact, :compressed
+         }
+    )

Mismatch: META-INF/maven/lein-haml-sass/lein-haml-sass/pom.xml
--- /tmp/clojars4330473636535911570diff 2013-04-17 14:00:43.860722999 -0700
+++ /tmp/clojars7664696900806418796diff 2013-04-17 14:00:43.860722999 -0700
@@ -18,7 +18,7 @@
   <scm>
     <connection>scm:git:git://github.com/rtircher/lein-haml-sass.git</connection>
     <developerConnection>scm:git:ssh://git@github.com/rtircher/lein-haml-sass.git</developerConnection>
-    <tag>636d629ad5e0c3a2ece93594e7d79b934f27d2cc</tag>
+    <tag>dc2089c93ffa2eea746d150c3ae97440ebd9d3e0</tag>
     <url>https://github.com/rtircher/lein-haml-sass</url>
   </scm>
   <build>
@@ -39,14 +39,6 @@
     </testResources>
     <directory>target</directory>
     <outputDirectory>target/classes</outputDirectory>
-    <plugins>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>build-helper-maven-plugin</artifactId>
-        <version>1.7</version>
-        <executions/>
-      </plugin>
-    </plugins>
   </build>
   <repositories>
     <repository>

Mismatch: leiningen/tasks.clj
--- /tmp/clojars8750811019155454326diff 2013-04-17 14:00:43.864723015 -0700
+++ /tmp/clojars2859383851949180564diff 2013-04-17 14:00:43.864723015 -0700
@@ -38,6 +38,14 @@
 (defn- enrich-fn [fn doc]
   (with-meta fn (fn-meta fn doc)))
 
+(defn- ensure-gem-installed! [project options]
+  (let [gem-name (symbol (str "org.rubygems/" (:gem-name options)))
+        gem-version (:gem-version options)]
+    (when gem-version ;; Only try to fetch if there is a gem specified
+      (add-dependencies :coordinates [[gem-name gem-version]]
+                        :repositories (merge cemerick.pomegranate.aether/maven-central
+                                             {"gem-jars" "http://gemjars.org/maven"})))))
+
 (defn- download-gem-using-gemjars [gem-name gem-version]
   (let [gem-id (symbol (str "org.rubygems/" gem-name))]
     (try

Diffing ivan/lein-package/lein-package/0.1.2/lein-package-0.1.2.jar
Mismatch: leiningen/package/hooks/deploy.clj
--- /tmp/clojars4821534148145541342diff 2013-04-17 14:00:44.016723773 -0700
+++ /tmp/clojars8011517522257629214diff 2013-04-17 14:00:44.016723773 -0700
@@ -11,40 +11,35 @@
   (and (:sign-releases (second repo) true)
        (not (.endsWith ^String (:version project) "-SNAPSHOT"))))
 
-(defn deploy-files-for
+(defn deploy-files-for 
   [f project repo]
   (let [artifacts (artifact/artifacts project)]
     (if artifacts
       (do
         (package/clean project)
-        (let [jar-file (val (first (artifact/make-jar project)))
+        (let [jar-file (artifact/make-jar project)
               pom-file (pom/pom project)
               jar-coord (artifact/coordinates project artifact/jar)
               pom-coord (artifact/coordinates project artifact/pom)
               built-artifacts (artifact/built-artifacts project)
-
+              
               base-entries (if jar-file
                              {pom-coord pom-file jar-coord jar-file}
                              {pom-coord pom-file})
               entries (into base-entries
                             (for [artifact built-artifacts]
-                              [(artifact/coordinates project artifact)
-                               (artifact/file-path project artifact)]))
-
-              base-signed (if (sign? project repo)
+                              [(artifact/coordinates project artifact) (artifact/file-path project artifact)]))
+              
+              base-signed (if (sign? project repo) 
                             (if jar-file
-                              {(artifact/coordinates project artifact/pom ".asc")
-                               (leiningen.deploy/sign pom-file)
-                               (artifact/coordinates project artifact/jar ".asc")
-                               (leiningen.deploy/sign jar-file)}
-                              {(artifact/coordinates project artifact/pom ".asc")
-                               (leiningen.deploy/sign pom-file)}))
+                              {(artifact/coordinates project artifact/pom ".asc") (leiningen.deploy/sign pom-file)
+                               (artifact/coordinates project artifact/jar ".asc") (leiningen.deploy/sign jar-file)}
+                              {(artifact/coordinates project artifact/pom ".asc") (leiningen.deploy/sign pom-file)}))
               signed (if base-signed
                        (into base-signed
                              (for [artifact built-artifacts]
-                               [(artifact/coordinates project artifact ".asc")
-                                (leiningen.deploy/sign
-                                 (artifact/file-path project artifact))])))]
+                               [(artifact/coordinates project artifact ".asc") 
+                                (leiningen.deploy/sign (artifact/file-path project artifact))])))]
           (merge entries signed)))
       (f project repo))))
 

Mismatch: leiningen/package/hooks/install.clj
--- /tmp/clojars8615299771221603012diff 2013-04-17 14:00:44.028723830 -0700
+++ /tmp/clojars2916545832019707382diff 2013-04-17 14:00:44.028723830 -0700
@@ -14,22 +14,22 @@
     (if artifacts
       (do
         (package/clean project)
-        (let [jar-file (val (first (artifact/make-jar project)))
+        (let [jar-file (artifact/make-jar project)
               pom-file (pom/pom project)
               jar-coord (artifact/coordinates project)
               pom-coord (artifact/coordinates project artifact/pom)
-              base-coords (if jar-file
-                            [jar-coord pom-coord]
+              base-coords (if jar-file 
+                            [jar-coord pom-coord] 
                             [pom-coord])
-              base-files (if jar-file
-                           {jar-coord jar-file pom-coord pom-file}
+              base-files (if jar-file 
+                           {jar-coord jar-file pom-coord pom-file} 
                            {pom-coord pom-file})
               built-artifacts (artifact/built-artifacts project)
-              files (into base-files
-                          (for [artifact built-artifacts]
-                            [(artifact/coordinates project artifact)
-                             (artifact/file-path project artifact)]))]
-          (aether/install-artifacts :files files)))
+              arts (concat base-coords 
+                           (for [artifact built-artifacts] (artifact/coordinates project artifact)))
+              files (into base-files 
+                          (for [artifact built-artifacts] [(artifact/coordinates project artifact) (artifact/file-path project artifact)]))]
+          (aether/install-artifacts :artifacts arts :files files)))
       (f project))))
 
 (defn activate []

Mismatch: META-INF/maven/lein-package/lein-package/pom.properties
--- /tmp/clojars5228450716842978766diff 2013-04-17 14:00:44.040723893 -0700
+++ /tmp/clojars3939595034691580860diff 2013-04-17 14:00:44.040723893 -0700
@@ -1,6 +1,6 @@
 #Leiningen
-#Wed Apr 10 21:34:26 EDT 2013
+#Wed Apr 10 23:01:41 EDT 2013
 version=0.1.2
-revision=a3ab74a74eac82490f5e35b26f2245ac66170197
+revision=8fe0ec91f4afe5ecd154d87307b89d7d5e0ce6c9
 groupId=lein-package
 artifactId=lein-package

Mismatch: leiningen/package/artifact.clj
--- /tmp/clojars307124180690467295diff  2013-04-17 14:00:44.080724096 -0700
+++ /tmp/clojars2087821902457133890diff 2013-04-17 14:00:44.080724096 -0700
@@ -38,9 +38,7 @@
     (if raw-artifacts
       (let [configured (for [entry raw-artifacts] (artifactify entry))
             pomjar #{"pom" "jar"}]
-        (filter
-         #(or (:classifier %) (not (pomjar (:extension %))))
-         configured)))))
+        (filter #(or (not (:classifier %)) (not (pomjar (:extension %)))) configured)))))
 
 (defn make-jar?
   [project]
@@ -61,7 +59,6 @@
 
 (defn build-artifact
   [project artifact]
-  (main/debug "Building" (select-keys artifact [:extension :classifier]))
   (let [raw-args (twine/split (:build artifact) #"\s+")
         task-name (first raw-args)
         args (next raw-args)]
@@ -80,21 +77,12 @@
         artifacts (artifacts project)]
     (filter #(cond
                (exists? project %) %
-               (or autobuild (:autobuild %)) (or (build-artifact project %)
-                                                 true)
-               :else false)
-            artifacts)))
+               (or autobuild (:autobuild %)) (or (build-artifact project %) true)
+               :else false) artifacts)))
 
 (defn coordinates
-  ([project]
-     [(symbol (:group project) (:name project)) (:version project)])
+  ([project] [(symbol (:group project) (:name project)) (:version project)])
   ([project artifact & [suffix]]
-     (let [extension (str (:extension artifact) suffix)
-           classifier (if (:classifier artifact)
-                        [:classifier (:classifier artifact)])]
-       (vec
-        (concat
-         [(symbol (:group project) (:name project))
-          (:version project)
-          :extension extension]
-         classifier)))))
+    (let [extension (str (:extension artifact) suffix)
+          classifier (if (:classifier artifact) [:classifier (:classifier artifact)])]
+    (vec (concat [(symbol (:group project) (:name project)) (:version project) :extension extension] classifier)))))

Mismatch: META-INF/maven/lein-package/lein-package/pom.xml
--- /tmp/clojars8687572418497668183diff 2013-04-17 14:00:44.104724210 -0700
+++ /tmp/clojars7821904005256658299diff 2013-04-17 14:00:44.104724210 -0700
@@ -17,7 +17,7 @@
   <scm>
     <connection>scm:git:git://github.com/pliant/lein-package.git</connection>
     <developerConnection>scm:git:ssh://git@github.com/pliant/lein-package.git</developerConnection>
-    <tag>a3ab74a74eac82490f5e35b26f2245ac66170197</tag>
+    <tag>8fe0ec91f4afe5ecd154d87307b89d7d5e0ce6c9</tag>
     <url>https://github.com/pliant/lein-package</url>
   </scm>
   <build>

Diffing ivan/stereotype/stereotype/0.2.1/stereotype-0.2.1.jar
Mismatch: stereotype/resolve.clj
Only in one jar: stereotype/resolve.clj #<ZipEntry stereotype/resolve.clj> nil

Mismatch: project.clj
--- /tmp/clojars3380115046359878512diff 2013-04-17 14:00:44.252724949 -0700
+++ /tmp/clojars4124034544602136337diff 2013-04-17 14:00:44.252724949 -0700
@@ -9,7 +9,7 @@
 
   :min-lein-version "2.0.0"
   :profiles {:shared {:plugins [[lein-midje "3.0-beta1"]]}
-             :dev [:shared {:dependencies [                                   [midje "1.5.1"] [org.clojure/java.jdbc "0.2.3"] [postgresql/postgresql "8.4-702.jdbc4"] [clj-time "0.4.4"]]}]
-             :1.3 [:shared {:dependencies [[org.clojure/clojure "1.3.0"]      [midje "1.5.1"] [org.clojure/java.jdbc "0.2.3"] [postgresql/postgresql "8.4-702.jdbc4"] [clj-time "0.4.4"]]}]
-             :1.4 [:shared {:dependencies [[org.clojure/clojure "1.4.0"]      [midje "1.5.1"] [org.clojure/java.jdbc "0.2.3"] [postgresql/postgresql "8.4-702.jdbc4"] [clj-time "0.4.4"]]}]
-             :1.5 [:shared {:dependencies [[org.clojure/clojure "1.5.1"]      [midje "1.5.1"] [org.clojure/java.jdbc "0.2.3"] [postgresql/postgresql "8.4-702.jdbc4"] [clj-time "0.4.4"]]}]})
+             :dev [:shared {:dependencies [                                   [midje "1.5.1"] [org.clojure/java.jdbc "0.2.3"] [org.xerial/sqlite-jdbc "3.7.2"] [clj-time "0.4.4"]]}]
+             :1.3 [:shared {:dependencies [[org.clojure/clojure "1.3.0"]      [midje "1.5.1"] [org.clojure/java.jdbc "0.2.3"] [org.xerial/sqlite-jdbc "3.7.2"] [clj-time "0.4.4"]]}]
+             :1.4 [:shared {:dependencies [[org.clojure/clojure "1.4.0"]      [midje "1.5.1"] [org.clojure/java.jdbc "0.2.3"] [org.xerial/sqlite-jdbc "3.7.2"] [clj-time "0.4.4"]]}]
+             :1.5 [:shared {:dependencies [[org.clojure/clojure "1.5.1"]      [midje "1.5.1"] [org.clojure/java.jdbc "0.2.3"] [org.xerial/sqlite-jdbc "3.7.2"] [clj-time "0.4.4"]]}]})

Mismatch: META-INF/maven/stereotype/stereotype/pom.properties
--- /tmp/clojars7683606181769006229diff 2013-04-17 14:00:44.272725042 -0700
+++ /tmp/clojars511230498805028737diff  2013-04-17 14:00:44.272725042 -0700
@@ -1,6 +1,6 @@
 #Leiningen
-#Sun Mar 31 19:27:12 CEST 2013
+#Tue Apr 02 12:46:29 CEST 2013
 version=0.2.1
-revision=7a16c190cb81e3705a62bdedde064bdf19ac5521
+revision=977b8bc4ebab95ec2b2962a5e6a23475deafeb5e
 groupId=stereotype
 artifactId=stereotype

Mismatch: stereotype/core.clj
--- /tmp/clojars6644632387383016337diff 2013-04-17 14:00:44.292725141 -0700
+++ /tmp/clojars6383221630270437589diff 2013-04-17 14:00:44.292725141 -0700
@@ -6,9 +6,7 @@
 (defmacro defstereotype
   "define a stereotype with default attributes"
   [stereotype-id attributes]
-  `(defn ~(stereotypes/fn-name stereotype-id) [overiding-attributes#]
-     (apply (stereotypes/stereotype-fn ~attributes)
-            [overiding-attributes#])))
+  (stereotypes/define stereotype-id attributes))
 
 (defn stereotype
   "returns the stereotype defaults"

Mismatch: stereotype/entities.clj
--- /tmp/clojars349023412677701048diff  2013-04-17 14:00:44.316725259 -0700
+++ /tmp/clojars584777170652672315diff  2013-04-17 14:00:44.316725259 -0700
@@ -4,7 +4,6 @@
   (cond
     (map? identifier)
     (:name identifier)
-
     :else
       identifier))
 

Mismatch: META-INF/leiningen/stereotype/stereotype/project.clj
--- /tmp/clojars3391218194066358635diff 2013-04-17 14:00:44.336725360 -0700
+++ /tmp/clojars6611221145484284311diff 2013-04-17 14:00:44.336725360 -0700
@@ -9,7 +9,7 @@
 
   :min-lein-version "2.0.0"
   :profiles {:shared {:plugins [[lein-midje "3.0-beta1"]]}
-             :dev [:shared {:dependencies [                                   [midje "1.5.1"] [org.clojure/java.jdbc "0.2.3"] [postgresql/postgresql "8.4-702.jdbc4"] [clj-time "0.4.4"]]}]
-             :1.3 [:shared {:dependencies [[org.clojure/clojure "1.3.0"]      [midje "1.5.1"] [org.clojure/java.jdbc "0.2.3"] [postgresql/postgresql "8.4-702.jdbc4"] [clj-time "0.4.4"]]}]
-             :1.4 [:shared {:dependencies [[org.clojure/clojure "1.4.0"]      [midje "1.5.1"] [org.clojure/java.jdbc "0.2.3"] [postgresql/postgresql "8.4-702.jdbc4"] [clj-time "0.4.4"]]}]
-             :1.5 [:shared {:dependencies [[org.clojure/clojure "1.5.1"]      [midje "1.5.1"] [org.clojure/java.jdbc "0.2.3"] [postgresql/postgresql "8.4-702.jdbc4"] [clj-time "0.4.4"]]}]})
+             :dev [:shared {:dependencies [                                   [midje "1.5.1"] [org.clojure/java.jdbc "0.2.3"] [org.xerial/sqlite-jdbc "3.7.2"] [clj-time "0.4.4"]]}]
+             :1.3 [:shared {:dependencies [[org.clojure/clojure "1.3.0"]      [midje "1.5.1"] [org.clojure/java.jdbc "0.2.3"] [org.xerial/sqlite-jdbc "3.7.2"] [clj-time "0.4.4"]]}]
+             :1.4 [:shared {:dependencies [[org.clojure/clojure "1.4.0"]      [midje "1.5.1"] [org.clojure/java.jdbc "0.2.3"] [org.xerial/sqlite-jdbc "3.7.2"] [clj-time "0.4.4"]]}]
+             :1.5 [:shared {:dependencies [[org.clojure/clojure "1.5.1"]      [midje "1.5.1"] [org.clojure/java.jdbc "0.2.3"] [org.xerial/sqlite-jdbc "3.7.2"] [clj-time "0.4.4"]]}]})

Mismatch: stereotype/stereotypes.clj
--- /tmp/clojars4495999398400898595diff 2013-04-17 14:00:44.360725480 -0700
+++ /tmp/clojars3329879301100116423diff 2013-04-17 14:00:44.360725480 -0700
@@ -4,9 +4,9 @@
     [korma.core]
     [slingshot.slingshot    :only [throw+]])
   (:require
-   [stereotype.entities :as entities]
-   [stereotype.sql      :as sql]
-   [stereotype.resolve  :as resolve]))
+   [stereotype.entities    :as entities]
+   [stereotype.sql         :as sql]
+   [stereotype.resolve-map :as resolve-map]))
 
 (defn fn-name [identifier]
   (let [stereotype-id (entities/id-for identifier)]
@@ -19,18 +19,18 @@
   (fn [& [overiding-attributes]]
     (merge attributes overiding-attributes)))
 
+(defn define [stereotype-id attributes]
+  `(defn ~(fn-name stereotype-id) [overiding-attributes#]
+     (apply (stereotype-fn ~attributes)
+            [overiding-attributes#])))
+
 (defn- attributes-for [stereotype-id overiding-attributes]
   (let [matching-stereotype-fn (resolve (fn-name stereotype-id))]
     (when-not matching-stereotype-fn
       (throw+ {:type ::undefined-stereotype
-               :stereotype stereotype-id}))
+               :stereotype (entities/id-for stereotype-id)}))
     (matching-stereotype-fn overiding-attributes)))
 
-(defn build [identifier & [overiding-attributes]]
-  (let [stereotype-id (entities/id-for identifier)
-        attributes (attributes-for stereotype-id overiding-attributes)]
-    (resolve/all attributes)))
-
 (defn- map-insertions-to-keys [attributes]
   (into {}
     (map sql/replace-inserts-as-foreign-keys attributes)))
@@ -39,7 +39,11 @@
   (let [meta-data (merge (meta map-1) (meta map-2))]
     (with-meta (merge map-1 map-2) meta-data)))
 
+(defn build [identifier & [overiding-attributes]]
+  (let [attributes (attributes-for identifier overiding-attributes)]
+    (resolve-map/all attributes)))
+
 (defn build-and-insert [identifier & [overiding-attributes]]
   (let [attributes (->> overiding-attributes (build identifier) map-insertions-to-keys)
         insertion-result (insert (entities/entity-for identifier) (values attributes))]
-    (merge-with-meta attributes (sql/pk insertion-result))))
+    (merge-with-meta attributes (sql/pk insertion-result))))
\ No newline at end of file

Mismatch: META-INF/maven/stereotype/stereotype/pom.xml
--- /tmp/clojars5280862322852786342diff 2013-04-17 14:00:44.372725544 -0700
+++ /tmp/clojars4671858724195670906diff 2013-04-17 14:00:44.372725544 -0700
@@ -1,5 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>stereotype</groupId>
   <artifactId>stereotype</artifactId>
@@ -17,7 +16,7 @@
   <scm>
     <connection>scm:git:git://github.com/josephwilk/stereotype.git</connection>
     <developerConnection>scm:git:ssh://git@github.com/josephwilk/stereotype.git</developerConnection>
-    <tag>7a16c190cb81e3705a62bdedde064bdf19ac5521</tag>
+    <tag>977b8bc4ebab95ec2b2962a5e6a23475deafeb5e</tag>
     <url>https://github.com/josephwilk/stereotype</url>
   </scm>
   <build>
@@ -90,9 +89,9 @@
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>postgresql</groupId>
-      <artifactId>postgresql</artifactId>
-      <version>8.4-702.jdbc4</version>
+      <groupId>org.xerial</groupId>
+      <artifactId>sqlite-jdbc</artifactId>
+      <version>3.7.2</version>
       <scope>test</scope>
     </dependency>
     <dependency>

Mismatch: stereotype/resolve_map.clj
Only in one jar: stereotype/resolve_map.clj nil #<ZipEntry stereotype/resolve_map.clj>

Diffing ivan/amazonica/amazonica/0.1.3/amazonica-0.1.3.jar
Mismatch: META-INF/maven/amazonica/amazonica/pom.xml
--- /tmp/clojars5512618424680288888diff 2013-04-17 14:00:44.540726372 -0700
+++ /tmp/clojars5406787966924071395diff 2013-04-17 14:00:44.540726372 -0700
@@ -16,7 +16,7 @@
   <scm>
     <connection>scm:git:git://github.com/mcohen01/amazonica.git</connection>
     <developerConnection>scm:git:ssh://git@github.com/mcohen01/amazonica.git</developerConnection>
-    <tag>57488af7350df2661b2ecc2dfd81cae4c3a92846</tag>
+    <tag>d65c091f6c73bce7eb4792a497f2cc17fc5b89a4</tag>
     <url>https://github.com/mcohen01/amazonica</url>
   </scm>
   <build>

Mismatch: META-INF/maven/amazonica/amazonica/pom.properties
--- /tmp/clojars3338933054653449291diff 2013-04-17 14:00:44.552726429 -0700
+++ /tmp/clojars5034073321396465172diff 2013-04-17 14:00:44.552726429 -0700
@@ -1,6 +1,6 @@
 #Leiningen
-#Thu Mar 28 23:12:48 PDT 2013
+#Mon Apr 01 21:24:50 PDT 2013
 version=0.1.3
-revision=57488af7350df2661b2ecc2dfd81cae4c3a92846
+revision=d65c091f6c73bce7eb4792a497f2cc17fc5b89a4
 groupId=amazonica
 artifactId=amazonica

Mismatch: amazonica/aws/s3.clj
--- /tmp/clojars284316967789921793diff  2013-04-17 14:00:44.560726469 -0700
+++ /tmp/clojars6854910155410188523diff 2013-04-17 14:00:44.560726469 -0700
@@ -1,4 +1,19 @@
 (ns amazonica.aws.s3
-  (:import com.amazonaws.services.s3.AmazonS3Client))
+  (:use [amazonica.core :only (coerce-value marshall IMarshall)])
+  (:import [com.amazonaws.services.s3
+              AmazonS3Client]
+           [com.amazonaws.services.s3.model
+              S3Object]))
+
+(extend-protocol IMarshall
+  S3Object
+    (marshall [obj]
+      {:bucket-name (.getBucketName obj)
+       :key (.getKey obj)
+       :input-stream (.getObjectContent obj)
+       :object-content (.getObjectContent obj)
+       :redirect-location (.getRedirectLocation obj)
+       :object-metadata (marshall
+                          (.getObjectMetadata obj))}))
 
 (amazonica.core/set-client AmazonS3Client *ns*)
\ No newline at end of file

Mismatch: amazonica/core.clj
--- /tmp/clojars7043080014382666178diff 2013-04-17 14:00:44.568726507 -0700
+++ /tmp/clojars4739550306187093632diff 2013-04-17 14:00:44.568726507 -0700
@@ -11,6 +11,7 @@
            [com.amazonaws.regions
              Region
              Regions]
+           com.amazonaws.services.s3.AmazonS3Client
            org.joda.time.DateTime
            org.joda.time.base.AbstractInstant
            java.io.File
@@ -23,11 +24,12 @@
            java.text.SimpleDateFormat
            java.util.Date))
 
-
 (defonce ^:private credential (atom {}))
 
 (def ^:dynamic ^:private *credentials* nil)
 
+(def ^:dynamic ^:private *client-class* nil)
+
 (def ^:private date-format (atom "yyyy-MM-dd"))
 
 (def ^:private root-unwrapping (atom false))
@@ -199,7 +201,12 @@
    Float      float
    BigDecimal bigdec
    BigInteger bigint
-   Date       to-date}))
+   Date       to-date
+   "int"      int
+   "long"     long
+   "double"   double
+   "float"    float
+   "boolean"  boolean}))
 
 (defn register-coercions
   "Accepts key/value pairs of class/function, which defines
@@ -216,19 +223,40 @@
   (if-not (instance? type val)
     (if (= java.lang.Enum (.getSuperclass type))
       (to-enum type value)
-      ((@coercions type) value))
+      (if (.isPrimitive type)
+        ((@coercions (str type)) value)
+        ((@coercions type) value)))
     val))
 
+(defn- default-value
+  [class-name]
+  (get
+    {"boolean" false
+     "double" (double 0.0)
+     "float" (float 0.0)
+     "long" 0
+     "int" (int 0)}
+    class-name))
+
+(defn- constructor-args
+  [ctor]
+  (let [types (.getParameterTypes ctor)]
+    (if (= 0 (count types))
+      (make-array Object 0)
+      (into-array Object
+        (map
+          (comp default-value str)
+          (seq types))))))
+
 (defn- new-instance
   "Create a new instance of a Java bean. S3 neccessitates
   the check for contructor args here, as the rest of the
   AWS api contains strictly no-arg ctor JavaBeans."
   [clazz]
-  (let [ctor  (first (.getConstructors clazz))
-        cnt   (count (.getParameterTypes ctor))
-        args  (take cnt (cycle [nil]))]
-    (.newInstance ctor (into-array Object args))))
-  
+  (let [ctor (first (.getConstructors clazz))
+        arr  (constructor-args ctor)]
+    (.newInstance ctor arr)))
+    
 (defn- unwind-types
   [param]
   (if (instance? java.lang.reflect.ParameterizedType param)
@@ -283,9 +311,28 @@
         (.toLowerCase (keyword->camel k))
         (empty? v))))
 
+(defn- to-java-coll
+  "Need this only because S3 methods actually try to
+   mutate (e.g. sort) collections passed to them."
+  [col]
+  (when (map? col)
+    (doto 
+      (java.util.HashMap.)
+      (.putAll col)))
+  (when (set? col)
+    (java.util.HashSet. col))
+  (when (or (list? col) (vector? col))
+    (java.util.ArrayList. col)))
+
 (defn- invoke
   [pojo method v]
-  (.invoke method pojo (into-array [v]))
+  (.invoke method pojo
+    (into-array
+      ;; misbehaving S3Client mutates the coll
+      (if (and (coll? v)
+            (= AmazonS3Client *client-class*))
+        [(to-java-coll v)]
+        [v])))
   true)
   
 (declare set-fields)
@@ -295,7 +342,7 @@
 
 (defn- populate
   [types key props]
-  (let [type (->> types key last)]
+  (let [type (-> types key last)]
     (if (contains? @coercions type)
       (coerce-value props type)
       (set-fields (new-instance type) props))))
@@ -395,7 +442,7 @@
       (str (.substring name 2) "?")
       (.substring name 3))))
   
-(defn- get-fields
+(defn get-fields
   "Returns a map of all non-null values returned by
   invoking all public getters on the specified object."
   [obj]
@@ -484,27 +531,28 @@
    clazz with supplied args (if any). The 'method' here is
    the Java method on the Amazon*Client class."
   [clazz method & arg]
-  (let [args    (args-from arg)
-        arg-arr (prepare-args method (:args args))
-        client  (delay 
-                  (amazon-client 
-                    clazz 
-                    (or (:credential args) @credential)))]
-    (fn []
-      (try 
-        (let [c (if (thread-bound? #'*credentials*)
-                    (amazon-client clazz *credentials*)
-                    @client)
-              java (.invoke method c arg-arr)
-              cloj (marshall java)]
-          (if (and
-                @root-unwrapping
-                (map? cloj)
-                (= 1 (count (keys cloj))))
-            (-> cloj first second)
-            cloj))
-        (catch InvocationTargetException ite          
-          (throw (.getTargetException ite)))))))
+  (binding [*client-class* clazz]
+    (let [args    (args-from arg)
+          arg-arr (prepare-args method (:args args))
+          client  (delay 
+                    (amazon-client 
+                      clazz 
+                      (or (:credential args) @credential)))]
+      (fn []
+        (try 
+          (let [c (if (thread-bound? #'*credentials*)
+                      (amazon-client clazz *credentials*)
+                      @client)
+                java (.invoke method c arg-arr)
+                cloj (marshall java)]
+            (if (and
+                  @root-unwrapping
+                  (map? cloj)
+                  (= 1 (count (keys cloj))))
+              (-> cloj first second)
+              cloj))
+          (catch InvocationTargetException ite          
+            (throw (.getTargetException ite))))))))
 
 (defn- best-method
   "Finds the appropriate method to invoke in cases where

Diffing ivan/homestake-server/homestake-server/0.1/homestake-server-0.1.jar
Mismatch: org/homestake/response/JSONResponse.class
Only in one jar: org/homestake/response/JSONResponse.class #<ZipEntry org/homestake/response/JSONResponse.class> nil

Mismatch: META-INF/MANIFEST.MF
--- /tmp/clojars6235921123555607434diff 2013-04-17 14:00:44.704727184 -0700
+++ /tmp/clojars7609959699604127039diff 2013-04-17 14:00:44.704727184 -0700
@@ -1,3 +1,4 @@
 Manifest-Version: 1.0
-Main-Class: org.homestake.Homestake
+Built-By: rylan
+Created-By: Leiningen 2.1.2
 

Mismatch: org/homestake/Homestake.class
Only in one jar: org/homestake/Homestake.class #<ZipEntry org/homestake/Homestake.class> nil

Mismatch: org/homestake/utils/FileChecker.class
Only in one jar: org/homestake/utils/FileChecker.class #<ZipEntry org/homestake/utils/FileChecker.class> nil

Mismatch: org/homestake/response/HeaderBuilder.class
Only in one jar: org/homestake/response/HeaderBuilder.class #<ZipEntry org/homestake/response/HeaderBuilder.class> nil

Mismatch: org/homestake/response/DirectoryResponse.class
Only in one jar: org/homestake/response/DirectoryResponse.class #<ZipEntry org/homestake/response/DirectoryResponse.class> nil

Mismatch: org/
Only in one jar: org/ #<ZipEntry org/> nil

Mismatch: project.clj
Only in one jar: project.clj nil #<ZipEntry project.clj>

Mismatch: org/homestake/utils/HomestakeThreadFactory.class
Only in one jar: org/homestake/utils/HomestakeThreadFactory.class #<ZipEntry org/homestake/utils/HomestakeThreadFactory.class> nil

Mismatch: org/homestake/utils/SocketWrapper.class
Only in one jar: org/homestake/utils/SocketWrapper.class #<ZipEntry org/homestake/utils/SocketWrapper.class> nil

Mismatch: META-INF/maven/homestake-server/homestake-server/pom.properties
Only in one jar: META-INF/maven/homestake-server/homestake-server/pom.properties nil #<ZipEntry META-INF/maven/homestake-server/homestake-server/pom.properties>

Mismatch: org/homestake/response/
Only in one jar: org/homestake/response/ #<ZipEntry org/homestake/response/> nil

Mismatch: org/homestake/utils/Router.class
Only in one jar: org/homestake/utils/Router.class #<ZipEntry org/homestake/utils/Router.class> nil

Mismatch: org/homestake/utils/Decoder.class
Only in one jar: org/homestake/utils/Decoder.class #<ZipEntry org/homestake/utils/Decoder.class> nil

Mismatch: org/homestake/Homestake$1.class
Only in one jar: org/homestake/Homestake$1.class #<ZipEntry org/homestake/Homestake$1.class> nil

Mismatch: META-INF/leiningen/homestake-server/homestake-server/project.clj
Only in one jar: META-INF/leiningen/homestake-server/homestake-server/project.clj nil #<ZipEntry META-INF/leiningen/homestake-server/homestake-server/project.clj>

Mismatch: org/homestake/utils/RegisteredRoute.class
Only in one jar: org/homestake/utils/RegisteredRoute.class #<ZipEntry org/homestake/utils/RegisteredRoute.class> nil

Mismatch: org/homestake/response/QueryStringResponse.class
Only in one jar: org/homestake/response/QueryStringResponse.class #<ZipEntry org/homestake/response/QueryStringResponse.class> nil

Mismatch: org/homestake/response/RedirectResponse.class
Only in one jar: org/homestake/response/RedirectResponse.class #<ZipEntry org/homestake/response/RedirectResponse.class> nil

Mismatch: org/homestake/response/FileResponse.class
Only in one jar: org/homestake/response/FileResponse.class #<ZipEntry org/homestake/response/FileResponse.class> nil

Mismatch: META-INF/
Only in one jar: META-INF/ #<ZipEntry META-INF/> nil

Mismatch: org/homestake/utils/Logger.class
Only in one jar: org/homestake/utils/Logger.class #<ZipEntry org/homestake/utils/Logger.class> nil

Mismatch: org/homestake/response/StatusCodeResponse.class
Only in one jar: org/homestake/response/StatusCodeResponse.class #<ZipEntry org/homestake/response/StatusCodeResponse.class> nil

Mismatch: org/homestake/response/FunResponse.class
Only in one jar: org/homestake/response/FunResponse.class #<ZipEntry org/homestake/response/FunResponse.class> nil

Mismatch: org/homestake/utils/RequestParser.class
Only in one jar: org/homestake/utils/RequestParser.class #<ZipEntry org/homestake/utils/RequestParser.class> nil

Mismatch: org/homestake/response/ServerResponse.class
Only in one jar: org/homestake/response/ServerResponse.class #<ZipEntry org/homestake/response/ServerResponse.class> nil

Mismatch: META-INF/maven/homestake-server/homestake-server/pom.xml
Only in one jar: META-INF/maven/homestake-server/homestake-server/pom.xml nil #<ZipEntry META-INF/maven/homestake-server/homestake-server/pom.xml>

Mismatch: org/homestake/utils/
Only in one jar: org/homestake/utils/ #<ZipEntry org/homestake/utils/> nil

Mismatch: org/homestake/
Only in one jar: org/homestake/ #<ZipEntry org/homestake/> nil

Diffing ivan/lamina/lamina/0.5.0-beta15/lamina-0.5.0-beta15.jar
Mismatch: META-INF/maven/lamina/lamina/pom.properties
--- /tmp/clojars1828546572639785722diff 2013-04-17 14:00:45.392730587 -0700
+++ /tmp/clojars4067541898682546888diff 2013-04-17 14:00:45.392730587 -0700
@@ -1,6 +1,6 @@
 #Leiningen
-#Thu Mar 28 17:40:14 PDT 2013
+#Tue Apr 02 23:52:02 PDT 2013
 version=0.5.0-beta15
-revision=dc880136b7bb0eb43af020ee3273d29e3e96ccf3
+revision=2a6ce73e9a37ab3eacb91e24fc89d3fb3352b387
 groupId=lamina
 artifactId=lamina

Mismatch: META-INF/maven/lamina/lamina/pom.xml
--- /tmp/clojars1588175695576704212diff 2013-04-17 14:00:45.400730647 -0700
+++ /tmp/clojars2986021932162682549diff 2013-04-17 14:00:45.400730647 -0700
@@ -17,7 +17,7 @@
   <scm>
     <connection>scm:git:git://github.com/ztellman/lamina.git</connection>
     <developerConnection>scm:git:ssh://git@github.com/ztellman/lamina.git</developerConnection>
-    <tag>dc880136b7bb0eb43af020ee3273d29e3e96ccf3</tag>
+    <tag>2a6ce73e9a37ab3eacb91e24fc89d3fb3352b387</tag>
     <url>https://github.com/ztellman/lamina</url>
   </scm>
   <build>

Diffing ivan/rojat/rojat-math/0.0.2/rojat-math-0.0.2.jar
Mismatch: META-INF/maven/rojat/rojat-math/pom.properties
--- /tmp/clojars5772819266387341187diff 2013-04-17 14:00:45.544731358 -0700
+++ /tmp/clojars2896692539403201494diff 2013-04-17 14:00:45.544731358 -0700
@@ -1,5 +1,5 @@
 #Leiningen
-#Sun Apr 14 17:13:51 BST 2013
+#Sun Apr 14 21:56:39 BST 2013
 version=0.0.2
 groupId=rojat
 artifactId=rojat-math

Mismatch: rojat_math/core.clj
--- /tmp/clojars2879104299909865206diff 2013-04-17 14:00:45.564731449 -0700
+++ /tmp/clojars3630158524786020654diff 2013-04-17 14:00:45.564731449 -0700
@@ -67,3 +67,28 @@
  [r (if (<= theta Math/PI) (+ theta Math/PI) (- theta Math/PI))
     (- Math/PI phi)]
 )
+
+(defn to-polar [x y]
+ (let [r (Math/sqrt (+ (* x x) (* y y)))]
+  [r (Math/atan2 x y)]
+)
+
+)
+(defn from-polar ([r phi]
+ [(* r (Math/sin phi)) (* r (Math/cos phi))])
+ ([r phi precision]
+ [(* r (FixedPrecisionMath/sin phi precision)) (* r (FixedPrecisionMath/cos phi precision))]
+)
+
+
+
+)
+(defn pfn [func b1 b2]
+ (apply to-polar (func (apply from-polar b1) (apply from-polar b2)))
+)
+(defn p+ [b1 b2]
+ (pfn c+ b1 b2)
+)
+(defn p- [b1 b2]
+ (pfn c- b1 b2)
+)

Diffing ivan/thebusby/clj-aws-ec2/0.2.2/clj-aws-ec2-0.2.2.jar
Mismatch: aws/sdk/ec2.clj
--- /tmp/clojars1337557158272281575diff 2013-04-17 14:00:45.824732739 -0700
+++ /tmp/clojars6570577721390344115diff 2013-04-17 14:00:45.824732739 -0700
@@ -24,6 +24,7 @@
            com.amazonaws.services.ec2.model.DeregisterImageRequest
            com.amazonaws.services.ec2.model.DescribeImagesRequest 
            com.amazonaws.services.ec2.model.DescribeInstancesRequest
+           com.amazonaws.services.ec2.model.DescribeKeyPairsRequest
            com.amazonaws.services.ec2.model.DescribeSecurityGroupsResult
            com.amazonaws.services.ec2.model.DescribeTagsRequest
            com.amazonaws.services.ec2.model.EbsBlockDevice
@@ -38,6 +39,7 @@
            com.amazonaws.services.ec2.model.InstanceStateChange
            com.amazonaws.services.ec2.model.IpPermission
            com.amazonaws.services.ec2.model.KeyPair
+           com.amazonaws.services.ec2.model.KeyPairInfo
            com.amazonaws.services.ec2.model.Placement
            com.amazonaws.services.ec2.model.PrivateIpAddressSpecification
            com.amazonaws.services.ec2.model.ProductCode
@@ -665,13 +667,27 @@
   (to-map [kp]
     {:key-fingerprint (.getKeyFingerprint kp)
      :key-material    (.getKeyMaterial kp)
-     :key-name        (.getKeyName kp)}))
+     :key-name        (.getKeyName kp)})
+
+  KeyPairInfo
+  (to-map [kpi]
+    {:key-fingerprint (.getKeyFingerprint kpi)
+     :key-name        (.getKeyName kpi)}))
 
 (defn delete-key-pair
   "Delete EC2 key pair specified by name.
   Nil is returned on success.
 
   E.g.:
-  (delete-key-pair cred {:key-name \"KeyName\"})"
+  (delete-key-pair cred \"KeyName\")"
   [cred key-name]
-  (.deleteKeyPair (ec2-client cred) (DeleteKeyPairRequest. key-name)))
\ No newline at end of file
+  (.deleteKeyPair (ec2-client cred) (DeleteKeyPairRequest. key-name)))
+
+(defn describe-key-pairs
+  "List all the EC2 key pairs for the supplied credentials.
+  Returns a list of maps, each containing the contents of the key pair.
+
+  E.g.:
+  (describe-key-pairs cred)"
+  [cred] 
+    (map to-map (.getKeyPairs (.describeKeyPairs (ec2-client cred)))))

Mismatch: META-INF/maven/thebusby/clj-aws-ec2/pom.xml
--- /tmp/clojars7529505399714511682diff 2013-04-17 14:00:45.832732778 -0700
+++ /tmp/clojars4352295218873282987diff 2013-04-17 14:00:45.832732778 -0700
@@ -17,7 +17,7 @@
   <scm>
     <connection>scm:git:git://github.com/thebusby/clj-aws-ec2.git</connection>
     <developerConnection>scm:git:ssh://git@github.com/thebusby/clj-aws-ec2.git</developerConnection>
-    <tag>dc0ed29e7080bc2bf2c40dc3359e7b7899fe45bf</tag>
+    <tag>5515f5662f2697ffc253af63f15dd41ac2e7dca9</tag>
     <url>https://github.com/thebusby/clj-aws-ec2</url>
   </scm>
   <build>

Mismatch: META-INF/maven/thebusby/clj-aws-ec2/pom.properties
--- /tmp/clojars3142568098976510298diff 2013-04-17 14:00:45.840732819 -0700
+++ /tmp/clojars4133673190745122510diff 2013-04-17 14:00:45.840732819 -0700
@@ -1,6 +1,6 @@
 #Leiningen
-#Fri Apr 12 12:17:03 JST 2013
+#Fri Apr 12 16:58:02 JST 2013
 version=0.2.2
-revision=dc0ed29e7080bc2bf2c40dc3359e7b7899fe45bf
+revision=5515f5662f2697ffc253af63f15dd41ac2e7dca9
 groupId=thebusby
 artifactId=clj-aws-ec2

Diffing ivan/info/yasuhisay/clj-utils/0.1.1/clj-utils-0.1.1.jar
Mismatch: clj_utils/evaluation.clj
--- /tmp/clojars1094228661102570906diff 2013-04-17 14:00:46.024733731 -0700
+++ /tmp/clojars297773844679143081diff  2013-04-17 14:00:46.024733731 -0700
@@ -5,7 +5,9 @@
   (let [sum (count (get (group-by (fn [[n1 n2]] (= n1 n2))
                                   (map vector gold prediction))
                         true))]
-    (* 1.0 (/ sum (count gold)))))
+    (if (zero? (count gold))
+      Double/NaN
+      (* 1.0 (/ sum (count gold))))))
 
 (defn get-f-value [gold prediction]
   (assert (= (count gold) (count prediction)))
@@ -13,8 +15,11 @@
         tp (get freq [1 1] 0)
         tn (get freq [-1 -1] 0)
         fp (get freq [-1 1] 0)
-        fn (get freq [1 -1] 0)
-        recall (/ tp (+ tp fn))
-        precision (/ tp (+ tp fp))]
-    (/ (* 2.0 recall precision)
-       (+ recall precision))))
+        fn (get freq [1 -1] 0)]
+    (if (or (zero? (+ tp fn))
+            (zero? (+ tp fp)))
+      Double/NaN
+      (let [recall (/ tp (+ tp fn))
+            precision (/ tp (+ tp fp))]
+        (/ (* 2.0 recall precision)
+           (+ recall precision))))))

Mismatch: clj_utils/collection.clj
Only in one jar: clj_utils/collection.clj nil #<ZipEntry clj_utils/collection.clj>

Mismatch: META-INF/maven/info.yasuhisay/clj-utils/pom.properties
--- /tmp/clojars6597409201972742710diff 2013-04-17 14:00:46.040733809 -0700
+++ /tmp/clojars7483065084219329370diff 2013-04-17 14:00:46.040733809 -0700
@@ -1,6 +1,6 @@
 #Leiningen
-#Thu Mar 21 11:26:17 JST 2013
+#Wed Apr 10 12:06:05 JST 2013
 version=0.1.1
-revision=bd8737c71550373e37242e935b436e13565baca2
+revision=67823f9bc73116c9dc6111c23d417c4b11ee657e
 groupId=info.yasuhisay
 artifactId=clj-utils

Mismatch: clj_utils/with_ns.clj
Only in one jar: clj_utils/with_ns.clj nil #<ZipEntry clj_utils/with_ns.clj>

Mismatch: META-INF/maven/info.yasuhisay/clj-utils/pom.xml
--- /tmp/clojars3355431426855440023diff 2013-04-17 14:00:46.056733889 -0700
+++ /tmp/clojars2885459551437252737diff 2013-04-17 14:00:46.056733889 -0700
@@ -17,7 +17,7 @@
   <scm>
     <connection>scm:git:git://github.com/syou6162/clj-utils.git</connection>
     <developerConnection>scm:git:ssh://git@github.com/syou6162/clj-utils.git</developerConnection>
-    <tag>bd8737c71550373e37242e935b436e13565baca2</tag>
+    <tag>67823f9bc73116c9dc6111c23d417c4b11ee657e</tag>
     <url>https://github.com/syou6162/clj-utils</url>
   </scm>
   <build>

Diffing ivan/cc/qbits/alia/1.0.0-beta7/alia-1.0.0-beta7.jar
Mismatch: project.clj
--- /tmp/clojars9221676749956368025diff 2013-04-17 14:00:46.224734728 -0700
+++ /tmp/clojars3964793302601280778diff 2013-04-17 14:00:46.224734728 -0700
@@ -13,8 +13,9 @@
   :profiles {:1.4  {:dependencies [[org.clojure/clojure "1.4.0"]]}
              :1.5  {:dependencies [[org.clojure/clojure "1.5.1"]]}
              :1.6  {:dependencies [[org.clojure/clojure "1.6.0-master-SNAPSHOT"]]}
-             :dev  {:dependencies [[clj-time "0.4.4"]]}
-             :test  {:dependencies [[clj-time "0.4.4"]]
+             :dev  {:dependencies [[clj-time "0.5.0"]]}
+             :test  {:dependencies [[clj-time "0.5.0"]
+                                    [commons-lang/commons-lang"2.6"]]
                      :resource-paths ["test/resources"]}}
 
   :codox {:src-dir-uri "https://github.com/mpenet/alia/blob/master"

Mismatch: META-INF/leiningen/cc.qbits/alia/project.clj
--- /tmp/clojars375357794498077918diff  2013-04-17 14:00:46.232734762 -0700
+++ /tmp/clojars7491648605064264207diff 2013-04-17 14:00:46.232734762 -0700
@@ -13,8 +13,9 @@
   :profiles {:1.4  {:dependencies [[org.clojure/clojure "1.4.0"]]}
              :1.5  {:dependencies [[org.clojure/clojure "1.5.1"]]}
              :1.6  {:dependencies [[org.clojure/clojure "1.6.0-master-SNAPSHOT"]]}
-             :dev  {:dependencies [[clj-time "0.4.4"]]}
-             :test  {:dependencies [[clj-time "0.4.4"]]
+             :dev  {:dependencies [[clj-time "0.5.0"]]}
+             :test  {:dependencies [[clj-time "0.5.0"]
+                                    [commons-lang/commons-lang"2.6"]]
                      :resource-paths ["test/resources"]}}
 
   :codox {:src-dir-uri "https://github.com/mpenet/alia/blob/master"

Mismatch: META-INF/maven/cc.qbits/alia/pom.properties
--- /tmp/clojars7784070236901213529diff 2013-04-17 14:00:46.244734820 -0700
+++ /tmp/clojars7685890569746026168diff 2013-04-17 14:00:46.244734820 -0700
@@ -1,6 +1,6 @@
 #Leiningen
-#Wed Apr 10 10:11:19 CEST 2013
+#Fri Apr 12 00:55:08 CEST 2013
 version=1.0.0-beta7
-revision=18ce22d2b1d41b597522d1ba43fd37e71c62a3e5
+revision=2b5454fa16cd88c2cf92647a20a7a61bb369eb4f
 groupId=cc.qbits
 artifactId=alia

Mismatch: META-INF/maven/cc.qbits/alia/pom.xml
--- /tmp/clojars48164255195191565diff   2013-04-17 14:00:46.252734863 -0700
+++ /tmp/clojars4347617638713438132diff 2013-04-17 14:00:46.252734863 -0700
@@ -17,7 +17,7 @@
   <scm>
     <connection>scm:git:git://github.com/mpenet/alia.git</connection>
     <developerConnection>scm:git:ssh://git@github.com/mpenet/alia.git</developerConnection>
-    <tag>18ce22d2b1d41b597522d1ba43fd37e71c62a3e5</tag>
+    <tag>2b5454fa16cd88c2cf92647a20a7a61bb369eb4f</tag>
     <url>https://github.com/mpenet/alia</url>
   </scm>
   <build>
@@ -103,7 +103,13 @@
     <dependency>
       <groupId>clj-time</groupId>
       <artifactId>clj-time</artifactId>
-      <version>0.4.4</version>
+      <version>0.5.0</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+      <version>2.6</version>
       <scope>test</scope>
     </dependency>
   </dependencies>

Diffing ivan/core-cl2/core-cl2/0.7.0/core-cl2-0.7.0.jar
Mismatch: cl2/core.cl2
--- /tmp/clojars2641975006203217057diff 2013-04-17 14:00:46.768737418 -0700
+++ /tmp/clojars8125272192878597813diff 2013-04-17 14:00:46.768737418 -0700
@@ -1,5 +1,13 @@
 (fn not [x] (! x))
-(fn contains? [m k]
+
+(defn contains?
+  "Returns true if key is present in the given collection, otherwise
+  returns false. Note that for numerically indexed collections like
+  vectors, this tests if the numeric key is within the range of indexes;
+  for maps and sets, this tests if key is within the keys. Also, keys must
+  be of javascript primitive types.
+  See also 'some'."
+  [m k]
   (in k m))
 
 (defn boolean
@@ -17,17 +25,50 @@
                (get* m k))
           not-found)))
 
-(fn true? [expr] (=== true expr))
-(fn false? [expr] (=== false expr))
-(fn nil? [expr] (=== nil expr))
-
-(fn first [x] (get* x 0))
-(fn second [x] (get* x 1))
-(fn last [x] (get* x (- (count x) 1)))
-(fn next [x] (if (empty? x) nil (if (< 1 (count x)) (.slice x 1))))
-(fn rest [x] (if (nil? x) [] (.slice x 1)))
-(fn nnext [x] (next (next x)))
-(fn vector? [a] (isa? a "Array"))
+(defn true? [expr] (=== true expr))
+
+(defn false? [expr] (=== false expr))
+
+(defn nil? [expr] (=== nil expr))
+
+(defn first
+  "Returns the first item in the collection. Doesn't work on maps.
+  If coll is nil, returns nil."
+  [x]
+  (if (nil? x) nil (get* x 0)))
+
+(defn second
+  "Returns the second item in the collection. Doesn't work on maps.
+  If coll is nil, returns nil."
+  [x]
+  (if (nil? x) nil (get* x 1)))
+
+(defn last
+  "Returns the last item in the collection. Doesn't work on maps.
+  If coll is nil, returns nil."
+  [x]
+  (if (nil? x) nil (get* x (dec (count x)))))
+
+(defn next
+  "Returns a vector of the items after the first. Doesn't work on maps.
+  If there are no more items, returns nil."
+  [x]
+  (if (empty? x) nil (if (< 1 (count x)) (.slice x 1))))
+
+(defn rest
+  "Returns a possibly empty vector of the items after the first.
+  Doesn't work on maps."
+  [x]
+  (if (nil? x) [] (.slice x 1)))
+
+(defn nnext
+  "Same as (next (next x))"
+  [x]
+  (next (next x)))
+
+(defn vector?
+  "Return true if x is a Vector."
+  [x] (isa? x "Array"))
 
 (defn string?
   "Returns true if x is a String"
@@ -35,12 +76,27 @@
   (or (=== "string" (typeof x))
       (isa? x "String")))
 
-(fn number? [n] (=== "number" (typeof n)))
-
-(fn fn? [f] (=== "function" (typeof f)))
-
-(fn inc [arg] (+ 1 arg))
-(fn dec [arg] (- arg 1))
+(defn number?
+  "Return true if x is a Number"
+  [n]
+  (=== "number" (typeof n)))
+
+(defn zero? [x] (=== 0 x))
+
+(defn fn?
+  "Return true if x is a Function"
+  [f]
+  (=== "function" (typeof f)))
+
+(defn inc
+  "Returns a number one greater than num."
+  [arg]
+  (+ 1 arg))
+
+(defn dec
+  "Returns a number one less than num."
+  [arg]
+  (- arg 1))
 
 (defn count
   "Returns the number of items in the collection. (count nil) returns
@@ -160,7 +216,9 @@
           (recur r (+ i 1)))
         r))))
 
-(def map)
+(def ^{:doc "Creates a new vector with the results of calling a
+provided function  on every element in this vector."}
+  map)
 (if (fn? Array.prototype.map)
   (set! map (fn [f coll] (.map coll f)))
   (set! map (fn [f coll] (map* f coll))))
@@ -259,7 +317,7 @@
       false)))
 
 (defn =*
-  "Two argument version of =."
+  "Equality. Returns true if x equals y, false if not."
   [x y]
   (if (=== x y)
     true
@@ -277,6 +335,7 @@
       false)))
 
 (defn =
+  "Equality. Returns true if all its arguments are equal."
   ([]    true)
   ([x]   true)
   ([x y] (=* x y))
@@ -287,6 +346,10 @@
            (recur y (first more) (next more))
            (=* y (first more)))
          false))))
+
+;; Alias of `=` function to use in `=` macro
+(def =' =)
+
 (defn not=
   "Same as (not (= obj1 obj2))"
   ([x] false)
@@ -310,95 +373,179 @@
   [& args]
   (reduce #(* %1 %2) 1 args))
 
-(fn identity
+(defn identity
+  "Returns its argument."
   [x] x)
 
-(fn reverse [x] (.reverse (.slice x 0)))
-(fn compare [x y]
+(defn reverse
+  "Returns a seq of the items in coll in reverse order."
+  [x]
+  (.reverse (.slice x 0)))
+
+(defn compare
+  "Comparator. Returns a negative number, zero, or a positive number
+  when x is logically 'less than', 'equal to', or 'greater than'
+  y."
+  [x y]
   (cond
    (=== x y)
    0
+
    (> x y)
    1
+
    (< x y)
    -1))
-(fn zero? [x] (=== 0 x))
 
-(fn int [x]
+(defn int
+  "Coerce to int."
+  [x]
   (if (number? x) (bit-or x 0)))
 
-(def max Math.max)
-(def min Math.min)
-(fn pos? [x]
+(def ^{:doc "Returns the greatest of the nums. If no number is provided,
+  returns `-Infinity`."}
+  max Math.max)
+
+(def ^{:doc "Returns the least of the nums. If no number is provided,
+  returns `Infinity`."}
+  min Math.min)
+
+(defn pos?
+  "Returns true if num is greater than zero, else false"
+  [x]
   (and (number? x) (> x 0)))
-(fn neg? [x]
+
+(defn neg?
+  "Returns true if num is less than zero, else false"
+  [x]
   (and (number? x) (< x 0)))
-(fn rand
+
+(defn integer?
+  "Returns true if n is an integer"
+  [n]
+  (=== n (int n)))
+
+(defn even?
+  "Returns true if n is even, else false"
+  [n]
+  (=== 0 (rem n 2)))
+
+(defn odd?
+  "Returns true if n is odd, else false"
+  [n]
+  (=== 1 (rem n 2)))
+
+(defn rand
+  "Returns a random floating point number between 0 (inclusive) and
+  n (default 1) (exclusive)"
   ([]  (Math.random))
   ([n] (* n (Math.random))))
-(fn quot [x y]
+
+(defn quot
+  "quot[ient] of dividing numerator by denominator."
+  [x y]
   (int (/ x y)))
-(fn integer? [n]
-  (=== n (int n)))
-(fn even? [n]
-  (= 0 (rem n 2)))
-(fn odd? [n]
-  (= 1 (rem n 2)))
-(fn complement [f]
+
+(defn complement
+  "Takes a fn f and returns a fn that takes the same arguments as f,
+  has the same effects, if any, and returns the opposite truth value."
+  [f]
   (fn [& args] (not (apply f args))))
-(fn constantly [x]
+
+(defn constantly
+  "Returns a function that takes any number of arguments and returns x"
+  [x]
   (fn [] x))
-(fn peek [x]
-  (if (nil? x) nil (get* x 0)))
-(fn pop [x]
-  (if (nil? x) nil (.slice x 1)))
-(fn conj [coll & xs]
+
+(defn conj
+  "conj[oin]. Returns a new vector with the xs 'added' to the end."
+  [coll & xs]
   (if (empty? coll)
     xs
-    (let [ret (.slice coll 0)]
-      (.concat ret xs))))
-(fn cons [x coll]
+    (.concat coll xs)))
+
+(defn cons
+  "Returns a new seq where x is the first element and seq is the rest."
+  [x coll]
   (.concat [x] coll))
-(fn assoc [m k v]
-  (let [ret (merge m {})]
-    (set! (get* ret k) v)
-    ret))
-(fn dissoc [m & ks]
+
+(defn assoc
+  "assoc[iate]. When applied to a map, returns a new map  that contains
+  the mapping of the new key to the new val. When applied to a vector,
+  returns a new vector that contains val at index.
+   Note - index must be <= (count vector)."
+  [m & kvs]
+  (let [ret (if (vector? m)
+               (. m slice 0)
+               (merge m {}))]
+    (loop [kv-tail kvs]
+      (if kv-tail
+        (do (let* [k v] kv-tail)
+            (set! (get* ret k) v)
+            (recur (nnext kv-tail)))
+        ret))))
+
+(defn dissoc
+  "dissoc[iate]. Returns a new map that does not contain a mapping for key(s)."
+  [m & ks]
   (let [ret (merge m {})]
     (doseq [k ks]
       (delete (get* ret k)))
     ret))
-(fn find [m k]
+
+(defn find
+  "Returns the map entry for key, or nil if key not present."
+  [m k]
   (if (contains? m k)
     [k (get* m k)]
     nil))
-(fn every?
+
+(defn every?
+  "Returns true if (pred x) is logical true for every x in coll, else
+  false."
   [pred coll]
   (cond
    (empty? coll) true
    (pred (first coll)) (every? pred (next coll))
    :else false))
-(fn some
+
+(defn some
+  "Returns the first logical true value of (pred x) for any x in coll,
+  else nil.  One common idiom is to use a set as pred, for example
+  this will return :fred if :fred is in the sequence, otherwise nil:
+  (some #{:fred} coll)"
   [pred coll]
   (when coll
     (or (pred (first coll))
         (some pred (next coll)))))
 
-(fn concat
-  ([] [])
-  ([x] [x])
-  ([x y] (.concat x y))
-  ([x & xs] (concat x (apply concat xs))))
-
-(fn mapcat
+(defn concat
+  "Returns a vector representing the concatenation of the elements in
+  the supplied colls."
+  [& xs]
+  (loop [ret []
+         xs-tail xs]
+    (if xs-tail
+      (recur (. ret concat (get* xs-tail 0))
+             (next xs-tail))
+      ret)))
+
+(defn mapcat
+  "Returns the result of applying concat to the result of applying map
+  to f and colls.  Thus function f should return a collection."
   [f coll]
   (apply concat (map f coll)))
-(fn drop
+
+(defn drop
+  "Returns a vector of all but the first n items in coll."
   [n coll]
   (when (pos? n)
     (when-let [s coll]
       (.slice s n))))
-(fn take
+
+(defn take
+  "Returns a vector of the first n items in coll, or all items if
+  there are fewer than n."
   [n coll]
   (when (pos? n)
     (when-let [s coll]
@@ -421,23 +568,35 @@
   [coll]
   (Cl2Set. coll))
 
-(fn sort
+(defn sort
+  "Returns a sorted sequence of the items in coll. If no comparator is
+  supplied, uses Javascript native sort."
   ([coll]
      (.sort (Array.prototype.slice.call coll 0)))
   ([comp x]
      (.sort (Array.prototype.slice.call x 0) comp)))
-(fn take-while [pred coll]
+
+(defn take-while
+  "Returns a vector of successive items from coll while
+  (pred item) returns true. pred must be free of side-effects."
+  [pred coll]
   (when-let [s coll]
     (when (pred (first s))
       (conj (take-while pred (rest s)) (first s)))))
 
-(fn drop-last [n coll]
+(defn drop-last
+  "Return a vector of all but the last n (default 1) items in coll."
+  [n coll]
   (.slice coll 0 (- coll.length n)))
 
-(fn take-last [n coll]
+(defn take-last
+  "Returns a seq of the last n items in coll. See also subvec."
+  [n coll]
   (.slice coll (- coll.length n)))
 
-(fn drop-while [pred coll]
+(defn drop-while
+  "Returns a vector of the items in coll starting from the first
+  item for which (pred item) returns logical false."
   [pred coll]
   (let [step (fn [pred coll]
                (let [s coll]
@@ -445,29 +604,46 @@
                    (step pred (rest s))
                    s)))]
     (step pred coll)))
-(fn cycle [coll n]
+
+(defn cycle
+  "Returns a vector of n repetitions of the items in coll."
+  [coll n]
   (loop [ret [] n n]
     (if (zero? n)
       ret
       (recur (.concat ret coll) (dec n)))))
-(fn split-at [n coll]
+
+(defn split-at
+  "Returns a vector of [(take n coll) (drop n coll)]"
+  [n coll]
   [(take n coll) (drop n coll)])
-(fn repeat [n x]
+
+(defn repeat
+  "Returns a sequence of xs for n times."
+  [n x]
   (loop [ret [] n n]
     (if (zero? n)
       ret
       (recur (conj ret x) (dec n)))))
-(fn iterate [f x n]
+
+(defn iterate
+  "Returns a vector of x, (f x), (f (f x)) etc upto n times.
+  f must be free of side-effects"
+  [f x n]
   (def ret [])
   (cons x (loop [v x i (dec n)]
             (if (zero? i)
               ret
               (recur (let [val (f v)] (ret.push val) val)
                      (dec i))))))
-(fn split-with [pred coll]
+
+(defn split-with
+  "Returns a vector of [(take-while pred coll) (drop-while pred coll)]"
+  [pred coll]
   [(take-while pred coll) (drop-while pred coll)])
 
-(fn zipmap
+(defn zipmap
+  "Returns a map with the keys mapped to the corresponding vals."
   [keys vals]
   (def map {})
   (loop [ks keys
@@ -478,23 +654,34 @@
                  (next vs)))
       map)))
 
-(fn nthnext
+(defn nthnext
+  "Returns the nth next of coll, coll when n is 0."
   [coll n]
   (loop [n n xs coll]
     (if (and xs (pos? n))
       (recur (dec n) (next xs))
       xs)))
-(fn nthrest
+
+(defn nthrest
+  "Returns the nth rest of coll, coll when n is 0."
   [coll n]
   (loop [n n xs coll]
     (if (and xs (pos? n))
       (recur (dec n) (rest xs))
       xs)))
-(fn rand-int [n] (int (rand n)))
-(fn rand-nth
+
+(defn rand-int
+  "Returns a random integer between 0 (inclusive) and n (exclusive)."
+  [n]
+  (int (rand n)))
+
+(defn rand-nth
+  "Return a random element of the vector."
   [coll]
   (nth coll (rand-int (count coll))))
-(fn range*
+
+(defn range*
+  "Standard version of range."
   [start end step]
   (let [ret []
         comp (if (pos? step) #(< %1 %2) #(> %1 %2))]
@@ -506,11 +693,20 @@
         (if (comp i end)
           (cons ret (range* i end step))
           ret)))))
-(fn range
+(defn range
+  "Returns a vector of nums from start (inclusive) to end
+  (exclusive), by step, where start defaults to 0, step to 1, and end
+  to infinity."
   ([end] (range* 0 end 1))
   ([start end] (range* start end 1))
   ([start end step] (range* start end step)))
-(fn partition
+
+(defn partition
+  "Returns a vector of lists of n items each, at offsets step
+  apart. If step is not supplied, defaults to n, i.e. the partitions
+  do not overlap. If a pad collection is supplied, use its elements as
+  necessary to complete last partition upto n items. In case there are
+  not enough padding elements, return a partition with less than n items."
   ([n coll] (partion n n coll))
   ([n step coll]
      (when-let [s coll]
@@ -524,10 +720,26 @@
          (if (= n (count p))
            (cons p (partition n step pad (nthrest s step)))
            [(take n (concat p pad))])))))
+
 (defn subs
   "Returns the substring of s beginning at start inclusive, and ending
   at end (defaults to length of string), exclusive."
   [s start end]
   (.slice s start end))
 
-(def println console.log)
\ No newline at end of file
+(def println (if (=== "object" (typeof console))
+               console.log
+               (fn [])))
+
+(defn trampoline
+  "trampoline can be used to convert algorithms requiring mutual
+  recursion without stack consumption. Calls f with supplied args, if
+  any. If f returns a fn, calls that fn with no arguments, and
+  continues to repeat, until the return value is not a fn, then
+  returns that non-fn value. Note that if you want to return a fn as a
+  final value, you must wrap it in some data structure and unpack it
+  after trampoline returns."
+  ([f]
+     (loop [ret (f)] (if (fn? ret) (recur (ret)) ret)))
+  ([f & args]
+     (trampoline #(apply f args))))

Mismatch: mutable.cl2
--- /tmp/clojars5520738613941336429diff 2013-04-17 14:00:46.776737457 -0700
+++ /tmp/clojars7913743807076584993diff 2013-04-17 14:00:46.776737457 -0700
@@ -1,30 +1,45 @@
 (defmacro inc! [arg] `(set! ~arg (+* ~arg 1)))
+
 (defmacro dec! [arg] `(set! ~arg (-* ~arg 1)))
 
-(fn assoc*! [m k v]
-  (set! (get m k) v)
-  m)
-(fn assoc!
-  ([map key val] (assoc*! map key val))
-  ([map key val & kvs]
-     (let [ret (assoc*! map key val)]
-       (if kvs
-         (assoc! ret (first kvs) (second kvs) (nnext kvs))
-         ret))))
-(fn dissoc! [m & ks]
-  (for [k ks]
-    (delete (get m k)))
+(defn assoc!
+  "Mutable version of assoc."
+  [m & kvs]
+  (loop [kv-tail kvs]
+    (if kv-tail
+      (do (let* [k v] kv-tail)
+          (set! (get* m k) v)
+          (recur (nnext kv-tail)))
+      m)))
+
+(defn dissoc!
+  "Mutable version of dissoc."
+  [m & ks]
+  (doseq [k ks]
+    (delete (get* m k)))
   m)
-(fn reverse! [x] (.reverse x))
-(fn conj! [coll & xs]
+
+(defn reverse!
+  "Mutable version of reverse."
+  [x]
+  (.reverse x))
+
+(defn conj!
+  "Mutable version of conj."
+  [coll & xs]
   (.apply coll.push coll xs)
   coll)
-(fn cons! [coll & xs]
+
+(defn cons!
+  "Mutable version of cons."
+  [coll & xs]
   (.apply coll.unshift coll xs)
   coll)
-(fn merge!
+
+(defn merge!
+  "Mutable version of merge."
   [m0 & ms]
-  (for [m ms]
-    (for [[k v] m]
-      (set! (get m0 k) v)))
+  (doseq [m ms]
+    (doseq [[k v] m]
+      (set! (get* m0 k) v)))
   m0)
\ No newline at end of file

Mismatch: project.clj
--- /tmp/clojars5029921198835195283diff 2013-04-17 14:00:46.788737528 -0700
+++ /tmp/clojars6555301203268377303diff 2013-04-17 14:00:46.788737528 -0700
@@ -7,5 +7,5 @@
   :profiles {:provided
              {:dependencies
               [[org.clojure/clojure "1.5.1"]
-               [chlorine "1.5.2.1"]
+               [chlorine "1.5.2.2"]
                ]}})

Mismatch: META-INF/maven/core-cl2/core-cl2/pom.properties
--- /tmp/clojars891640806456440062diff  2013-04-17 14:00:46.796737551 -0700
+++ /tmp/clojars3259944303922097614diff 2013-04-17 14:00:46.796737551 -0700
@@ -1,5 +1,5 @@
 #Leiningen
-#Fri Mar 29 12:00:49 ICT 2013
+#Wed Apr 10 20:49:46 ICT 2013
 version=0.7.0
 groupId=core-cl2
 artifactId=core-cl2

Mismatch: boot.cl2
--- /tmp/clojars1132656434949251394diff 2013-04-17 14:00:46.804737599 -0700
+++ /tmp/clojars2826549605160695469diff 2013-04-17 14:00:46.804737599 -0700
@@ -2,10 +2,18 @@
   [a t]
   `(instanceof ~a ~(symbol t)))
 
-(defmacro borrow-macros [& syms] (apply chlorine.js/borrow-macros syms))
+(defmacro borrow-macros
+  "Reuses clojure.core macros in Chlorine."
+  [& syms]
+  (apply chlorine.js/borrow-macros syms))
+
+(borrow-macros when when-not unless if-not if-let when-let cond condp .. -> ->>)
+
 (defmacro apply [fun & args] `(.apply ~fun 0 ~@args))
-(borrow-macros when when-not unless if-not if-let when-let cond .. -> ->>)
-(defmacro fn [& fdeclrs]
+
+(defmacro fn
+  "Function form. Supports multi-arity."
+  [& fdeclrs]
   (let [valid-fn-declrs? (fn [fdeclrs]
                            (and (list? fdeclrs)
                                 (vector? (first fdeclrs))))
@@ -51,22 +59,21 @@
      (throw (Exception. "Invalid function declaration!"))
      )))
 
-(defmacro defn [fname & fdeclrs]
+(defmacro defn
+  "Defines a function."
+  [fname & fdeclrs]
+  ;; Will undefine macros when ^:inline is implemented.
+  ;; Chlorine currently uses macros instead of ^:inline
   ;;(chlorine.js/undef-macro fname)
-  `(def ~fname ~(cons 'fn fdeclrs)))
-
-(defmacro lvar [& bindings]
-  `(inline
-    ~(str "var "
-          (clojure.string/join ","
-            (map (fn [[vname vval]]
-                   (str vname " = " (chlorine.js/emit-str vval)))
-                 (partition 2 bindings))))))
+  `(set! ~fname ~(cons 'fn fdeclrs)))
 
-(defmacro dotimes [[var n] & body]
+(defmacro dotimes
+  "Repeatedly executes body (presumably for side-effects) with name
+  bound to integers from 0 through n-1."
+  [[var n] & body]
   (let [nsym (gensym)]
     `(do
-       (lvar ~nsym ~n)
+       (let* ~nsym ~n)
        (loop [~var 0]
          (when (< ~var ~nsym)
            ~@body
@@ -177,12 +184,6 @@
              ~@body
              ~return-name))))))
 
-(defmacro re-test [regexp s]
-  `(.. ~regexp (test ~s)))
-
-(defmacro re-exec [regexp s]
-  `(.. ~regexp (exec ~s)))
-
 (defmacro defmulti [fname dispatch-fn]
   `(do
      (defn ~fname [& args]
@@ -211,7 +212,3 @@
        `(set! ~setee ~(cons 'fn fdeclr))))
 
 (defmacro nth [& args] `(get* ~@args))
-
-(defmacro as-fn [x]
-  (cond (keyword? x) `(fn [coll not-found] (get coll ~x not-found))
-        (set? x)     `(fn [y] (contains? ~x y))))
\ No newline at end of file

Mismatch: cl2/inlines.cl2
--- /tmp/clojars6273556464201923053diff 2013-04-17 14:00:46.812737645 -0700
+++ /tmp/clojars4661448747613301068diff 2013-04-17 14:00:46.812737645 -0700
@@ -53,8 +53,21 @@
 (defmacro =
   ([] `true)
   ([x] `true)
-  ([x y] `(=* ~x ~y))
-  ([x y & more] `(=* ~x ~y ~@more)))
+  ([x y]
+     ;; things to be compared using `===`
+     (if (or (some #{'null}
+                   [x y])
+             (some #(or (number? %)
+                        (keyword? %)
+                        (string? %)
+                        (true? %)
+                        (false? %)
+                        (nil? %))
+                   [x y]))
+       `(=== ~x ~y)
+       `(=* ~x ~y)))
+  ([x y & more]
+     `(=' ~x ~y ~@more)))
 
 (defmacro reduce
   ([f val coll]

Mismatch: prod.cl2
--- /tmp/clojars3109276775715657573diff 2013-04-17 14:00:46.820737675 -0700
+++ /tmp/clojars5830314241786237617diff 2013-04-17 14:00:46.820737675 -0700
@@ -1,2 +1,3 @@
 (import!  "./boot.cl2" "./inlines.cl2")
-(include! "./core.cl2" "./mutable.cl2")
\ No newline at end of file
+(include! "./core.cl2" "./mutable.cl2")
+(import! "./hiccup.cl2")
\ No newline at end of file

Mismatch: cl2/boot.cl2
--- /tmp/clojars5443900877667833256diff 2013-04-17 14:00:46.828737716 -0700
+++ /tmp/clojars5792989964815285200diff 2013-04-17 14:00:46.828737716 -0700
@@ -2,10 +2,18 @@
   [a t]
   `(instanceof ~a ~(symbol t)))
 
-(defmacro borrow-macros [& syms] (apply chlorine.js/borrow-macros syms))
+(defmacro borrow-macros
+  "Reuses clojure.core macros in Chlorine."
+  [& syms]
+  (apply chlorine.js/borrow-macros syms))
+
+(borrow-macros when when-not unless if-not if-let when-let cond condp .. -> ->>)
+
 (defmacro apply [fun & args] `(.apply ~fun 0 ~@args))
-(borrow-macros when when-not unless if-not if-let when-let cond .. -> ->>)
-(defmacro fn [& fdeclrs]
+
+(defmacro fn
+  "Function form. Supports multi-arity."
+  [& fdeclrs]
   (let [valid-fn-declrs? (fn [fdeclrs]
                            (and (list? fdeclrs)
                                 (vector? (first fdeclrs))))
@@ -51,22 +59,21 @@
      (throw (Exception. "Invalid function declaration!"))
      )))
 
-(defmacro defn [fname & fdeclrs]
+(defmacro defn
+  "Defines a function."
+  [fname & fdeclrs]
+  ;; Will undefine macros when ^:inline is implemented.
+  ;; Chlorine currently uses macros instead of ^:inline
   ;;(chlorine.js/undef-macro fname)
-  `(def ~fname ~(cons 'fn fdeclrs)))
-
-(defmacro lvar [& bindings]
-  `(inline
-    ~(str "var "
-          (clojure.string/join ","
-            (map (fn [[vname vval]]
-                   (str vname " = " (chlorine.js/emit-str vval)))
-                 (partition 2 bindings))))))
+  `(set! ~fname ~(cons 'fn fdeclrs)))
 
-(defmacro dotimes [[var n] & body]
+(defmacro dotimes
+  "Repeatedly executes body (presumably for side-effects) with name
+  bound to integers from 0 through n-1."
+  [[var n] & body]
   (let [nsym (gensym)]
     `(do
-       (lvar ~nsym ~n)
+       (let* ~nsym ~n)
        (loop [~var 0]
          (when (< ~var ~nsym)
            ~@body
@@ -177,12 +184,6 @@
              ~@body
              ~return-name))))))
 
-(defmacro re-test [regexp s]
-  `(.. ~regexp (test ~s)))
-
-(defmacro re-exec [regexp s]
-  `(.. ~regexp (exec ~s)))
-
 (defmacro defmulti [fname dispatch-fn]
   `(do
      (defn ~fname [& args]
@@ -211,7 +212,3 @@
        `(set! ~setee ~(cons 'fn fdeclr))))
 
 (defmacro nth [& args] `(get* ~@args))
-
-(defmacro as-fn [x]
-  (cond (keyword? x) `(fn [coll not-found] (get coll ~x not-found))
-        (set? x)     `(fn [y] (contains? ~x y))))
\ No newline at end of file

Mismatch: META-INF/leiningen/core-cl2/core-cl2/project.clj
--- /tmp/clojars7531371348817664603diff 2013-04-17 14:00:46.836737755 -0700
+++ /tmp/clojars8669179836097600839diff 2013-04-17 14:00:46.836737755 -0700
@@ -7,5 +7,5 @@
   :profiles {:provided
              {:dependencies
               [[org.clojure/clojure "1.5.1"]
-               [chlorine "1.5.2.1"]
+               [chlorine "1.5.2.2"]
                ]}})

Mismatch: inlines.cl2
--- /tmp/clojars343389767510692849diff  2013-04-17 14:00:46.848737816 -0700
+++ /tmp/clojars5884917980523504161diff 2013-04-17 14:00:46.848737816 -0700
@@ -53,8 +53,21 @@
 (defmacro =
   ([] `true)
   ([x] `true)
-  ([x y] `(=* ~x ~y))
-  ([x y & more] `(=* ~x ~y ~@more)))
+  ([x y]
+     ;; things to be compared using `===`
+     (if (or (some #{'null}
+                   [x y])
+             (some #(or (number? %)
+                        (keyword? %)
+                        (string? %)
+                        (true? %)
+                        (false? %)
+                        (nil? %))
+                   [x y]))
+       `(=== ~x ~y)
+       `(=* ~x ~y)))
+  ([x y & more]
+     `(=' ~x ~y ~@more)))
 
 (defmacro reduce
   ([f val coll]

Mismatch: hiccup.cl2
--- /tmp/clojars7558703908769417114diff 2013-04-17 14:00:46.856737857 -0700
+++ /tmp/clojars6323133169595047581diff 2013-04-17 14:00:46.856737857 -0700
@@ -11,4 +11,4 @@
                        #"\{\{CL2HIC\}\}")]
     `(+* ~@(mapcat (fn [[html var]] (list html (symbol var)))
                  (partition 2 hiccup-output))
-         ~@(last hiccup-output))))
\ No newline at end of file
+         ~(last hiccup-output))))
\ No newline at end of file

Mismatch: cl2/prod.cl2
--- /tmp/clojars7837159434249706237diff 2013-04-17 14:00:46.864737896 -0700
+++ /tmp/clojars6401939253215853618diff 2013-04-17 14:00:46.864737896 -0700
@@ -1,2 +1,3 @@
 (import!  "./boot.cl2" "./inlines.cl2")
-(include! "./core.cl2" "./mutable.cl2")
\ No newline at end of file
+(include! "./core.cl2" "./mutable.cl2")
+(import! "./hiccup.cl2")
\ No newline at end of file

Mismatch: core.cl2
--- /tmp/clojars3739497826798787485diff 2013-04-17 14:00:46.872737933 -0700
+++ /tmp/clojars2533104014661902740diff 2013-04-17 14:00:46.872737933 -0700
@@ -1,5 +1,13 @@
 (fn not [x] (! x))
-(fn contains? [m k]
+
+(defn contains?
+  "Returns true if key is present in the given collection, otherwise
+  returns false. Note that for numerically indexed collections like
+  vectors, this tests if the numeric key is within the range of indexes;
+  for maps and sets, this tests if key is within the keys. Also, keys must
+  be of javascript primitive types.
+  See also 'some'."
+  [m k]
   (in k m))
 
 (defn boolean
@@ -17,17 +25,50 @@
                (get* m k))
           not-found)))
 
-(fn true? [expr] (=== true expr))
-(fn false? [expr] (=== false expr))
-(fn nil? [expr] (=== nil expr))
-
-(fn first [x] (get* x 0))
-(fn second [x] (get* x 1))
-(fn last [x] (get* x (- (count x) 1)))
-(fn next [x] (if (empty? x) nil (if (< 1 (count x)) (.slice x 1))))
-(fn rest [x] (if (nil? x) [] (.slice x 1)))
-(fn nnext [x] (next (next x)))
-(fn vector? [a] (isa? a "Array"))
+(defn true? [expr] (=== true expr))
+
+(defn false? [expr] (=== false expr))
+
+(defn nil? [expr] (=== nil expr))
+
+(defn first
+  "Returns the first item in the collection. Doesn't work on maps.
+  If coll is nil, returns nil."
+  [x]
+  (if (nil? x) nil (get* x 0)))
+
+(defn second
+  "Returns the second item in the collection. Doesn't work on maps.
+  If coll is nil, returns nil."
+  [x]
+  (if (nil? x) nil (get* x 1)))
+
+(defn last
+  "Returns the last item in the collection. Doesn't work on maps.
+  If coll is nil, returns nil."
+  [x]
+  (if (nil? x) nil (get* x (dec (count x)))))
+
+(defn next
+  "Returns a vector of the items after the first. Doesn't work on maps.
+  If there are no more items, returns nil."
+  [x]
+  (if (empty? x) nil (if (< 1 (count x)) (.slice x 1))))
+
+(defn rest
+  "Returns a possibly empty vector of the items after the first.
+  Doesn't work on maps."
+  [x]
+  (if (nil? x) [] (.slice x 1)))
+
+(defn nnext
+  "Same as (next (next x))"
+  [x]
+  (next (next x)))
+
+(defn vector?
+  "Return true if x is a Vector."
+  [x] (isa? x "Array"))
 
 (defn string?
   "Returns true if x is a String"
@@ -35,12 +76,27 @@
   (or (=== "string" (typeof x))
       (isa? x "String")))
 
-(fn number? [n] (=== "number" (typeof n)))
-
-(fn fn? [f] (=== "function" (typeof f)))
-
-(fn inc [arg] (+ 1 arg))
-(fn dec [arg] (- arg 1))
+(defn number?
+  "Return true if x is a Number"
+  [n]
+  (=== "number" (typeof n)))
+
+(defn zero? [x] (=== 0 x))
+
+(defn fn?
+  "Return true if x is a Function"
+  [f]
+  (=== "function" (typeof f)))
+
+(defn inc
+  "Returns a number one greater than num."
+  [arg]
+  (+ 1 arg))
+
+(defn dec
+  "Returns a number one less than num."
+  [arg]
+  (- arg 1))
 
 (defn count
   "Returns the number of items in the collection. (count nil) returns
@@ -160,7 +216,9 @@
           (recur r (+ i 1)))
         r))))
 
-(def map)
+(def ^{:doc "Creates a new vector with the results of calling a
+provided function  on every element in this vector."}
+  map)
 (if (fn? Array.prototype.map)
   (set! map (fn [f coll] (.map coll f)))
   (set! map (fn [f coll] (map* f coll))))
@@ -259,7 +317,7 @@
       false)))
 
 (defn =*
-  "Two argument version of =."
+  "Equality. Returns true if x equals y, false if not."
   [x y]
   (if (=== x y)
     true
@@ -277,6 +335,7 @@
       false)))
 
 (defn =
+  "Equality. Returns true if all its arguments are equal."
   ([]    true)
   ([x]   true)
   ([x y] (=* x y))
@@ -287,6 +346,10 @@
            (recur y (first more) (next more))
            (=* y (first more)))
          false))))
+
+;; Alias of `=` function to use in `=` macro
+(def =' =)
+
 (defn not=
   "Same as (not (= obj1 obj2))"
   ([x] false)
@@ -310,95 +373,179 @@
   [& args]
   (reduce #(* %1 %2) 1 args))
 
-(fn identity
+(defn identity
+  "Returns its argument."
   [x] x)
 
-(fn reverse [x] (.reverse (.slice x 0)))
-(fn compare [x y]
+(defn reverse
+  "Returns a seq of the items in coll in reverse order."
+  [x]
+  (.reverse (.slice x 0)))
+
+(defn compare
+  "Comparator. Returns a negative number, zero, or a positive number
+  when x is logically 'less than', 'equal to', or 'greater than'
+  y."
+  [x y]
   (cond
    (=== x y)
    0
+
    (> x y)
    1
+
    (< x y)
    -1))
-(fn zero? [x] (=== 0 x))
 
-(fn int [x]
+(defn int
+  "Coerce to int."
+  [x]
   (if (number? x) (bit-or x 0)))
 
-(def max Math.max)
-(def min Math.min)
-(fn pos? [x]
+(def ^{:doc "Returns the greatest of the nums. If no number is provided,
+  returns `-Infinity`."}
+  max Math.max)
+
+(def ^{:doc "Returns the least of the nums. If no number is provided,
+  returns `Infinity`."}
+  min Math.min)
+
+(defn pos?
+  "Returns true if num is greater than zero, else false"
+  [x]
   (and (number? x) (> x 0)))
-(fn neg? [x]
+
+(defn neg?
+  "Returns true if num is less than zero, else false"
+  [x]
   (and (number? x) (< x 0)))
-(fn rand
+
+(defn integer?
+  "Returns true if n is an integer"
+  [n]
+  (=== n (int n)))
+
+(defn even?
+  "Returns true if n is even, else false"
+  [n]
+  (=== 0 (rem n 2)))
+
+(defn odd?
+  "Returns true if n is odd, else false"
+  [n]
+  (=== 1 (rem n 2)))
+
+(defn rand
+  "Returns a random floating point number between 0 (inclusive) and
+  n (default 1) (exclusive)"
   ([]  (Math.random))
   ([n] (* n (Math.random))))
-(fn quot [x y]
+
+(defn quot
+  "quot[ient] of dividing numerator by denominator."
+  [x y]
   (int (/ x y)))
-(fn integer? [n]
-  (=== n (int n)))
-(fn even? [n]
-  (= 0 (rem n 2)))
-(fn odd? [n]
-  (= 1 (rem n 2)))
-(fn complement [f]
+
+(defn complement
+  "Takes a fn f and returns a fn that takes the same arguments as f,
+  has the same effects, if any, and returns the opposite truth value."
+  [f]
   (fn [& args] (not (apply f args))))
-(fn constantly [x]
+
+(defn constantly
+  "Returns a function that takes any number of arguments and returns x"
+  [x]
   (fn [] x))
-(fn peek [x]
-  (if (nil? x) nil (get* x 0)))
-(fn pop [x]
-  (if (nil? x) nil (.slice x 1)))
-(fn conj [coll & xs]
+
+(defn conj
+  "conj[oin]. Returns a new vector with the xs 'added' to the end."
+  [coll & xs]
   (if (empty? coll)
     xs
-    (let [ret (.slice coll 0)]
-      (.concat ret xs))))
-(fn cons [x coll]
+    (.concat coll xs)))
+
+(defn cons
+  "Returns a new seq where x is the first element and seq is the rest."
+  [x coll]
   (.concat [x] coll))
-(fn assoc [m k v]
-  (let [ret (merge m {})]
-    (set! (get* ret k) v)
-    ret))
-(fn dissoc [m & ks]
+
+(defn assoc
+  "assoc[iate]. When applied to a map, returns a new map  that contains
+  the mapping of the new key to the new val. When applied to a vector,
+  returns a new vector that contains val at index.
+   Note - index must be <= (count vector)."
+  [m & kvs]
+  (let [ret (if (vector? m)
+               (. m slice 0)
+               (merge m {}))]
+    (loop [kv-tail kvs]
+      (if kv-tail
+        (do (let* [k v] kv-tail)
+            (set! (get* ret k) v)
+            (recur (nnext kv-tail)))
+        ret))))
+
+(defn dissoc
+  "dissoc[iate]. Returns a new map that does not contain a mapping for key(s)."
+  [m & ks]
   (let [ret (merge m {})]
     (doseq [k ks]
       (delete (get* ret k)))
     ret))
-(fn find [m k]
+
+(defn find
+  "Returns the map entry for key, or nil if key not present."
+  [m k]
   (if (contains? m k)
     [k (get* m k)]
     nil))
-(fn every?
+
+(defn every?
+  "Returns true if (pred x) is logical true for every x in coll, else
+  false."
   [pred coll]
   (cond
    (empty? coll) true
    (pred (first coll)) (every? pred (next coll))
    :else false))
-(fn some
+
+(defn some
+  "Returns the first logical true value of (pred x) for any x in coll,
+  else nil.  One common idiom is to use a set as pred, for example
+  this will return :fred if :fred is in the sequence, otherwise nil:
+  (some #{:fred} coll)"
   [pred coll]
   (when coll
     (or (pred (first coll))
         (some pred (next coll)))))
 
-(fn concat
-  ([] [])
-  ([x] [x])
-  ([x y] (.concat x y))
-  ([x & xs] (concat x (apply concat xs))))
-
-(fn mapcat
+(defn concat
+  "Returns a vector representing the concatenation of the elements in
+  the supplied colls."
+  [& xs]
+  (loop [ret []
+         xs-tail xs]
+    (if xs-tail
+      (recur (. ret concat (get* xs-tail 0))
+             (next xs-tail))
+      ret)))
+
+(defn mapcat
+  "Returns the result of applying concat to the result of applying map
+  to f and colls.  Thus function f should return a collection."
   [f coll]
   (apply concat (map f coll)))
-(fn drop
+
+(defn drop
+  "Returns a vector of all but the first n items in coll."
   [n coll]
   (when (pos? n)
     (when-let [s coll]
       (.slice s n))))
-(fn take
+
+(defn take
+  "Returns a vector of the first n items in coll, or all items if
+  there are fewer than n."
   [n coll]
   (when (pos? n)
     (when-let [s coll]
@@ -421,23 +568,35 @@
   [coll]
   (Cl2Set. coll))
 
-(fn sort
+(defn sort
+  "Returns a sorted sequence of the items in coll. If no comparator is
+  supplied, uses Javascript native sort."
   ([coll]
      (.sort (Array.prototype.slice.call coll 0)))
   ([comp x]
      (.sort (Array.prototype.slice.call x 0) comp)))
-(fn take-while [pred coll]
+
+(defn take-while
+  "Returns a vector of successive items from coll while
+  (pred item) returns true. pred must be free of side-effects."
+  [pred coll]
   (when-let [s coll]
     (when (pred (first s))
       (conj (take-while pred (rest s)) (first s)))))
 
-(fn drop-last [n coll]
+(defn drop-last
+  "Return a vector of all but the last n (default 1) items in coll."
+  [n coll]
   (.slice coll 0 (- coll.length n)))
 
-(fn take-last [n coll]
+(defn take-last
+  "Returns a seq of the last n items in coll. See also subvec."
+  [n coll]
   (.slice coll (- coll.length n)))
 
-(fn drop-while [pred coll]
+(defn drop-while
+  "Returns a vector of the items in coll starting from the first
+  item for which (pred item) returns logical false."
   [pred coll]
   (let [step (fn [pred coll]
                (let [s coll]
@@ -445,29 +604,46 @@
                    (step pred (rest s))
                    s)))]
     (step pred coll)))
-(fn cycle [coll n]
+
+(defn cycle
+  "Returns a vector of n repetitions of the items in coll."
+  [coll n]
   (loop [ret [] n n]
     (if (zero? n)
       ret
       (recur (.concat ret coll) (dec n)))))
-(fn split-at [n coll]
+
+(defn split-at
+  "Returns a vector of [(take n coll) (drop n coll)]"
+  [n coll]
   [(take n coll) (drop n coll)])
-(fn repeat [n x]
+
+(defn repeat
+  "Returns a sequence of xs for n times."
+  [n x]
   (loop [ret [] n n]
     (if (zero? n)
       ret
       (recur (conj ret x) (dec n)))))
-(fn iterate [f x n]
+
+(defn iterate
+  "Returns a vector of x, (f x), (f (f x)) etc upto n times.
+  f must be free of side-effects"
+  [f x n]
   (def ret [])
   (cons x (loop [v x i (dec n)]
             (if (zero? i)
               ret
               (recur (let [val (f v)] (ret.push val) val)
                      (dec i))))))
-(fn split-with [pred coll]
+
+(defn split-with
+  "Returns a vector of [(take-while pred coll) (drop-while pred coll)]"
+  [pred coll]
   [(take-while pred coll) (drop-while pred coll)])
 
-(fn zipmap
+(defn zipmap
+  "Returns a map with the keys mapped to the corresponding vals."
   [keys vals]
   (def map {})
   (loop [ks keys
@@ -478,23 +654,34 @@
                  (next vs)))
       map)))
 
-(fn nthnext
+(defn nthnext
+  "Returns the nth next of coll, coll when n is 0."
   [coll n]
   (loop [n n xs coll]
     (if (and xs (pos? n))
       (recur (dec n) (next xs))
       xs)))
-(fn nthrest
+
+(defn nthrest
+  "Returns the nth rest of coll, coll when n is 0."
   [coll n]
   (loop [n n xs coll]
     (if (and xs (pos? n))
       (recur (dec n) (rest xs))
       xs)))
-(fn rand-int [n] (int (rand n)))
-(fn rand-nth
+
+(defn rand-int
+  "Returns a random integer between 0 (inclusive) and n (exclusive)."
+  [n]
+  (int (rand n)))
+
+(defn rand-nth
+  "Return a random element of the vector."
   [coll]
   (nth coll (rand-int (count coll))))
-(fn range*
+
+(defn range*
+  "Standard version of range."
   [start end step]
   (let [ret []
         comp (if (pos? step) #(< %1 %2) #(> %1 %2))]
@@ -506,11 +693,20 @@
         (if (comp i end)
           (cons ret (range* i end step))
           ret)))))
-(fn range
+(defn range
+  "Returns a vector of nums from start (inclusive) to end
+  (exclusive), by step, where start defaults to 0, step to 1, and end
+  to infinity."
   ([end] (range* 0 end 1))
   ([start end] (range* start end 1))
   ([start end step] (range* start end step)))
-(fn partition
+
+(defn partition
+  "Returns a vector of lists of n items each, at offsets step
+  apart. If step is not supplied, defaults to n, i.e. the partitions
+  do not overlap. If a pad collection is supplied, use its elements as
+  necessary to complete last partition upto n items. In case there are
+  not enough padding elements, return a partition with less than n items."
   ([n coll] (partion n n coll))
   ([n step coll]
      (when-let [s coll]
@@ -524,10 +720,26 @@
          (if (= n (count p))
            (cons p (partition n step pad (nthrest s step)))
            [(take n (concat p pad))])))))
+
 (defn subs
   "Returns the substring of s beginning at start inclusive, and ending
   at end (defaults to length of string), exclusive."
   [s start end]
   (.slice s start end))
 
-(def println console.log)
\ No newline at end of file
+(def println (if (=== "object" (typeof console))
+               console.log
+               (fn [])))
+
+(defn trampoline
+  "trampoline can be used to convert algorithms requiring mutual
+  recursion without stack consumption. Calls f with supplied args, if
+  any. If f returns a fn, calls that fn with no arguments, and
+  continues to repeat, until the return value is not a fn, then
+  returns that non-fn value. Note that if you want to return a fn as a
+  final value, you must wrap it in some data structure and unpack it
+  after trampoline returns."
+  ([f]
+     (loop [ret (f)] (if (fn? ret) (recur (ret)) ret)))
+  ([f & args]
+     (trampoline #(apply f args))))

Mismatch: cl2/mutable.cl2
--- /tmp/clojars1131436514464828325diff 2013-04-17 14:00:46.880737977 -0700
+++ /tmp/clojars949717788851052153diff  2013-04-17 14:00:46.880737977 -0700
@@ -1,30 +1,45 @@
 (defmacro inc! [arg] `(set! ~arg (+* ~arg 1)))
+
 (defmacro dec! [arg] `(set! ~arg (-* ~arg 1)))
 
-(fn assoc*! [m k v]
-  (set! (get m k) v)
-  m)
-(fn assoc!
-  ([map key val] (assoc*! map key val))
-  ([map key val & kvs]
-     (let [ret (assoc*! map key val)]
-       (if kvs
-         (assoc! ret (first kvs) (second kvs) (nnext kvs))
-         ret))))
-(fn dissoc! [m & ks]
-  (for [k ks]
-    (delete (get m k)))
+(defn assoc!
+  "Mutable version of assoc."
+  [m & kvs]
+  (loop [kv-tail kvs]
+    (if kv-tail
+      (do (let* [k v] kv-tail)
+          (set! (get* m k) v)
+          (recur (nnext kv-tail)))
+      m)))
+
+(defn dissoc!
+  "Mutable version of dissoc."
+  [m & ks]
+  (doseq [k ks]
+    (delete (get* m k)))
   m)
-(fn reverse! [x] (.reverse x))
-(fn conj! [coll & xs]
+
+(defn reverse!
+  "Mutable version of reverse."
+  [x]
+  (.reverse x))
+
+(defn conj!
+  "Mutable version of conj."
+  [coll & xs]
   (.apply coll.push coll xs)
   coll)
-(fn cons! [coll & xs]
+
+(defn cons!
+  "Mutable version of cons."
+  [coll & xs]
   (.apply coll.unshift coll xs)
   coll)
-(fn merge!
+
+(defn merge!
+  "Mutable version of merge."
   [m0 & ms]
-  (for [m ms]
-    (for [[k v] m]
-      (set! (get m0 k) v)))
+  (doseq [m ms]
+    (doseq [[k v] m]
+      (set! (get* m0 k) v)))
   m0)
\ No newline at end of file

Mismatch: META-INF/maven/core-cl2/core-cl2/pom.xml
--- /tmp/clojars3710530167761002708diff 2013-04-17 14:00:46.892738042 -0700
+++ /tmp/clojars7490566663070339985diff 2013-04-17 14:00:46.892738042 -0700
@@ -59,7 +59,7 @@
     <dependency>
       <groupId>chlorine</groupId>
       <artifactId>chlorine</artifactId>
-      <version>1.5.2.1</version>
+      <version>1.5.2.2</version>
       <scope>provided</scope>
     </dependency>
   </dependencies>

Mismatch: cl2/hiccup.cl2
--- /tmp/clojars7795089180437807243diff 2013-04-17 14:00:46.900738072 -0700
+++ /tmp/clojars5793687373786244259diff 2013-04-17 14:00:46.900738072 -0700
@@ -11,4 +11,4 @@
                        #"\{\{CL2HIC\}\}")]
     `(+* ~@(mapcat (fn [[html var]] (list html (symbol var)))
                  (partition 2 hiccup-output))
-         ~@(last hiccup-output))))
\ No newline at end of file
+         ~(last hiccup-output))))
\ No newline at end of file

Diffing ivan/clojurewerkz/archimedes/1.0.0-alpha3/archimedes-1.0.0-alpha3.jar
Mismatch: META-INF/maven/clojurewerkz/archimedes/pom.properties
--- /tmp/clojars3120482594016903321diff 2013-04-17 14:00:47.164739390 -0700
+++ /tmp/clojars5981360701462713147diff 2013-04-17 14:00:47.164739390 -0700
@@ -1,6 +1,6 @@
 #Leiningen
-#Tue Apr 02 02:42:15 MSK 2013
+#Tue Apr 09 16:54:28 MSK 2013
 version=1.0.0-alpha3
-revision=c5286dea99c6613771f3cc4d5c7771b79c5d3977
+revision=7db2b11dd3bf733d90b01b49c973bba180e3ae21
 groupId=clojurewerkz
 artifactId=archimedes

Mismatch: META-INF/maven/clojurewerkz/archimedes/pom.xml
--- /tmp/clojars8866008621804281988diff 2013-04-17 14:00:47.172739424 -0700
+++ /tmp/clojars262218379822999327diff  2013-04-17 14:00:47.172739424 -0700
@@ -17,7 +17,7 @@
   <scm>
     <connection>scm:git:git://github.com/clojurewerkz/archimedes.git</connection>
     <developerConnection>scm:git:ssh://git@github.com/clojurewerkz/archimedes.git</developerConnection>
-    <tag>c5286dea99c6613771f3cc4d5c7771b79c5d3977</tag>
+    <tag>7db2b11dd3bf733d90b01b49c973bba180e3ae21</tag>
     <url>https://github.com/clojurewerkz/archimedes</url>
   </scm>
   <build>

Mismatch: archimedes/edge.clj
--- /tmp/clojars3684246716009581269diff 2013-04-17 14:00:47.180739470 -0700
+++ /tmp/clojars3873167085372007858diff 2013-04-17 14:00:47.180739470 -0700
@@ -69,7 +69,7 @@
   "Returns all edges."
   []
   (*pre-fn*)
-  (set (.getVertices ^Graph *graph*)))
+  (set (.getEdges ^Graph *graph*)))
 
 (defn ^Vertex get-vertex
   "Get the vertex of the edge in a certain direction."
@@ -147,7 +147,7 @@
    current properties of the edge. If no such edge exists, then an
    edge is created with the given data."
   ([^Vertex v1 label ^Vertex v2]
-     (upconnect! v1 name v2 {}))
+     (upconnect! v1 label v2 {}))
   ([^Vertex v1 label ^Vertex v2 data]
      (*pre-fn*)
      (if-let [^Edge edges (edges-between v1 label v2)]

Diffing ivan/org/flatland/phonograph/0.1.4/phonograph-0.1.4.jar
Mismatch: META-INF/maven/org.flatland/phonograph/pom.properties
--- /tmp/clojars6610000540864818147diff 2013-04-17 14:00:47.384740471 -0700
+++ /tmp/clojars7501424056389763822diff 2013-04-17 14:00:47.384740471 -0700
@@ -1,5 +1,5 @@
 #Leiningen
-#Thu Apr 11 15:03:51 PDT 2013
+#Thu Apr 11 16:02:31 PDT 2013
 version=0.1.4
 revision=85cdceebb842a5c499b8170d97e49aecaae2ab49
 groupId=org.flatland

Diffing ivan/me/arrdem/imprecise/me.arrdem.imprecise/0.1.0/me.arrdem.imprecise-0.1.0.jar
Mismatch: META-INF/MANIFEST.MF
--- /tmp/clojars592009201624563909diff  2013-04-17 14:00:47.580741453 -0700
+++ /tmp/clojars4232480371090448015diff 2013-04-17 14:00:47.580741453 -0700
@@ -1,4 +1,4 @@
 Manifest-Version: 1.0
 Built-By: reid
-Created-By: Leiningen 2.1.0
+Created-By: Leiningen 2.1.2
 

Mismatch: META-INF/maven/me.arrdem.imprecise/me.arrdem.imprecise/pom.xml
--- /tmp/clojars3603037427996666975diff 2013-04-17 14:00:47.620741651 -0700
+++ /tmp/clojars3767496644848740232diff 2013-04-17 14:00:47.620741651 -0700
@@ -16,7 +16,7 @@
   <scm>
     <connection>scm:git:git://github.com/arrdem/imprecise.git</connection>
     <developerConnection>scm:git:ssh://git@github.com/arrdem/imprecise.git</developerConnection>
-    <tag>174062f0fae36d7419a2d2c2f151ec77ec4592cb</tag>
+    <tag>bf020b9ccff5fde7c1667162f22d50ff7cc3feb2</tag>
     <url>https://github.com/arrdem/imprecise</url>
   </scm>
   <build>

Mismatch: META-INF/maven/me.arrdem.imprecise/me.arrdem.imprecise/pom.properties
--- /tmp/clojars4103720171847376679diff 2013-04-17 14:00:47.636741730 -0700
+++ /tmp/clojars3861269942618170528diff 2013-04-17 14:00:47.636741730 -0700
@@ -1,6 +1,6 @@
 #Leiningen
-#Wed Mar 20 16:41:11 CDT 2013
+#Mon Apr 15 00:56:38 CDT 2013
 version=0.1.0
-revision=174062f0fae36d7419a2d2c2f151ec77ec4592cb
+revision=bf020b9ccff5fde7c1667162f22d50ff7cc3feb2
 groupId=me.arrdem.imprecise
 artifactId=me.arrdem.imprecise

Mismatch: me/arrdem/imprecise.clj
--- /tmp/clojars452591993546830792diff  2013-04-17 14:00:47.652741808 -0700
+++ /tmp/clojars5859049439841599250diff 2013-04-17 14:00:47.652741808 -0700
@@ -36,9 +36,12 @@
 
 (defn e-div [x y]
  (ENumber. (clojure.core// (to-scalar x) (to-scalar y))
-            (clojure.core/+
-             (clojure.core/* (to-scalar x) (tolerance y))
-             (clojure.core/* (to-scalar y) (tolerance x)))))
+            (clojure.core//
+             (- (* (tolerance x) (+ (to-scalar y) (tolerance y)))
+                (* (tolerance y) (+ (to-scalar x) (tolerance x))))
+             (+ (* (to-scalar y) (to-scalar y))
+                (* 2 (to-scalar y) (tolerance y))
+                (* (tolerance y) (tolerance y))))))
 
 (defmacro multi-extend-type [types & rest]
   (doseq [t types]

Diffing ivan/net/clojure/monads/1.0.1/monads-1.0.1.jar
Mismatch: META-INF/maven/net.clojure/monads/pom.properties
--- /tmp/clojars1894966852030507241diff 2013-04-17 14:00:47.976743405 -0700
+++ /tmp/clojars8819455333546784373diff 2013-04-17 14:00:47.976743405 -0700
@@ -1,5 +1,5 @@
 #Leiningen
-#Thu Feb 28 10:31:32 CST 2013
+#Wed Apr 10 10:08:12 CDT 2013
 version=1.0.1
 revision=fe971d0cc2c6c5869527749305df782103cc01b8
 groupId=net.clojure

Diffing ivan/bwo/monads/0.1.0/monads-0.1.0.jar
Mismatch: monads/util.clj
--- /tmp/clojars1982456566126857753diff 2013-04-17 14:00:48.280744918 -0700
+++ /tmp/clojars3812980362627083180diff 2013-04-17 14:00:48.280744918 -0700
@@ -23,10 +23,14 @@
 
 
 (defn lift-m
+  "Transform a function a -> b into a monadic function m a -> m b."
   ([f] #(lift-m f %))
   ([f m] (>>= m (comp return f))))
 
-(defn sequence-m [ms]
+(defn sequence-m
+  "Transform a sequence of monadic values [m a] into a monadic value
+   which is a sequence, m [a]."
+  [ms]
   (reduce (fn [m-acc m]
             (mdo mval <- m
                  ms <- m-acc
@@ -34,7 +38,38 @@
           (return ())
           (reverse ms)))
 
+(defmacro deflift-m-n [n]
+  (let [nm (symbol (str "lift-m-" n))
+        arglists (map (comp vec #(cons 'f (for [n (range %)]
+                                            (symbol (str "m" (inc n))))))
+                      (range (inc n)))]
+    `(defn ~nm
+       {:arglists ~(list 'quote arglists)}
+       ~@(for [passed-args (range n)]
+           (let [f (gensym "f_")
+                 argsyms (repeatedly passed-args #(gensym "now_"))]
+             `([~f ~@argsyms]
+                 (fn
+                   ~@(for [next-args (range 1 (- (inc n) passed-args))]
+                       (let [next-arg-syms (repeatedly next-args #(gensym "later_"))]
+                         `([~@next-arg-syms] (~nm ~f ~@argsyms ~@next-arg-syms))))))))
+       ~(let [f (gensym "f_")
+              m-args (repeatedly n #(gensym "m_"))
+              args (repeatedly n gensym)
+              mdo (concat '[mdo]
+                          (mapcat #(list %1 '<- %2) args m-args)
+                          (list (list 'return (list* f args))))]
+          `([~f ~@m-args]
+              ~mdo)))))
+
+(defmacro deflift-m-ns [lo hi]
+  (when-not (== lo hi)
+    `(do (deflift-m-n ~lo)
+         (deflift-m-ns ~(inc lo) ~hi))))
+
 (defn lift-m-2
+  "As lift-m but for binary functions: transforms a -> b -> c into m a
+   -> m b -> m c. Likewise for lift-m-3, etc."
   ([f] (fn
          ([x] (lift-m-2 f x))
          ([x y] (lift-m-2 f x y))))
@@ -44,7 +79,9 @@
           b <- m2
           (return (f a b)))))
 
-(def ap (lift-m-2 (fn [a b] (a b))))
+(deflift-m-ns 3 9)
+
+(def ^{:doc "Lift function application."} ap (lift-m-2 (fn [a b] (a b))))
 
 (defn lift-m*
   ([f] (fn [& m-args] (apply lift-m* f m-args)))
@@ -52,21 +89,30 @@
       (mdo args <- (sequence-m m-args)
            (return (apply f args)))))
 
-(defn fold-m [f acc xs]
+(defn fold-m
+  "Analogous to reduce, except the result of f is in a monad: f is a -> b -> m a."
+  [f acc xs]
   (if (empty? xs)
     (return acc)
     (mdo a <- (f acc (first xs))
          (fold-m f a (rest xs)))))
 
-(defn msum [addends]
+(defn msum
+  "Add all the addends together using mplus."
+  [addends]
   (reduce #(mplus %2 %1) (reverse addends)))
 
-(defn mwhen [p acc]
+(defn mwhen
+  "Execute the computation acc if p is truthy."
+  [p acc]
   (if p
     acc
     (return nil)))
 
-(defn guard [p]
+(defn guard
+  "If p is truthy, return (return nil), otherwise mzero, halting the
+  current computation."
+  [p]
   (if p
     (return nil)
     mzero))

Mismatch: monads/reader.clj
--- /tmp/clojars3640286933286029773diff 2013-04-17 14:00:48.288744957 -0700
+++ /tmp/clojars5795524909887750439diff 2013-04-17 14:00:48.288744957 -0700
@@ -55,3 +55,8 @@
 
 (def t reader-t)
 (def m reader-m)
+
+(defn lift-catch [m h]
+  (Returned. (curryfn [t e]
+               (run-monad (:inner t) (catch-error (run-reader-t t m e)
+                                                  (fn [err] (run-reader-t t (h err) e)))))))

Mismatch: META-INF/maven/bwo/monads/pom.properties
--- /tmp/clojars3944546810492043582diff 2013-04-17 14:00:48.300745022 -0700
+++ /tmp/clojars5918166224947394562diff 2013-04-17 14:00:48.300745022 -0700
@@ -1,6 +1,6 @@
 #Leiningen
-#Sun Mar 31 14:47:43 PDT 2013
+#Thu Apr 04 21:06:27 PDT 2013
 version=0.1.0
-revision=e9308567201a966bae2a67560a4e8b38981e210b
+revision=aea52d6cd79516d529b088d42fafc80cd5a505ba
 groupId=bwo
 artifactId=monads

Mismatch: monads/maybe.clj
--- /tmp/clojars5695698502531066698diff 2013-04-17 14:00:48.308745055 -0700
+++ /tmp/clojars3531769361368987254diff 2013-04-17 14:00:48.308745055 -0700
@@ -1,5 +1,6 @@
 (ns monads.maybe
   (:require [monads.core :refer :all])
+  (:import [monads.types Returned])
   (:use [monads.types :only [from-just nothing? just nothing maybe]]
         [monads.util :only [lift-m]]))
 
@@ -8,6 +9,7 @@
 (defn- maybe-t* [inner]
   (let [i-return (:return inner)]
     (monad
+     :inner inner
      :return (fn [x] (i-return (just x)))
      :bind (fn [m f] (run-mdo inner
                              v <- m
@@ -39,3 +41,10 @@
 
 (def m maybe-m)
 (def t maybe-t)
+
+(defn lift-catch [m h]
+  (Returned.
+   (fn [t]
+     (run-monad (:inner t)
+                (catch-error (run-monad t m)
+                             (fn [e] (run-monad t (h e))))))))

Mismatch: monads/cont.clj
--- /tmp/clojars3351684360602865198diff 2013-04-17 14:00:48.316745103 -0700
+++ /tmp/clojars4300133846252368636diff 2013-04-17 14:00:48.316745103 -0700
@@ -10,14 +10,6 @@
   (toString [this]
     (with-out-str (print [c v]))))
 
-(defn get-cont [^Cont c]
-  (.c c))
-(defn get-arg [^Cont c]
-  (.v c))
-
-(defn- cont? [o]
-  (instance? Cont o))
-
 (defmonad cont-m
   :return (curryfn [r c] (Cont. c r))
   :bind (fn [m f]
@@ -37,14 +29,14 @@
 (defn run-cont [m]
   (loop [m m c identity]
     (let [m ((run-monad cont-m m) c)]
-      (if (cont? m)
-        (recur (get-cont m) (get-arg m))
+      (if-instance Cont m
+        (recur (.c m) (.v m))
         m))))
 
 (defn run-c [c]
   (loop [c c f identity]
-    (if (cont? c)
-      (recur (get-cont c) (get-arg c))
+    (if-instance Cont c
+      (recur (.c c) (.v c))
       (f c))))
 
 ;; after http://okmij.org/ftp/continuations/ContTutorial.hs, loosely.
@@ -60,8 +52,8 @@
 
 (defn run-cont-t [m comp cont]
   (let [comp ((run-monad m comp) cont)]
-    (if (cont? comp)
-      (recur m (get-cont comp) (get-arg comp))
+    (if-instance Cont comp
+      (recur m (.c comp) (.v comp))
       comp)))
 
 (def t cont-t)

Mismatch: monads/writer.clj
--- /tmp/clojars962873835499820234diff  2013-04-17 14:00:48.324745132 -0700
+++ /tmp/clojars7476105340608364396diff 2013-04-17 14:00:48.324745132 -0700
@@ -78,3 +78,10 @@
 
 (def t writer-t)
 (def m writer-m)
+
+(defn lift-catch [m h]
+  (Returned.
+   (fn [t]
+     (run-monad (:inner t)
+                (catch-error (run-monad t m)
+                             (fn [err] (run-monad t (h err))))))))

Mismatch: monads/state.clj
--- /tmp/clojars7108844847532166236diff 2013-04-17 14:00:48.336745196 -0700
+++ /tmp/clojars8696772282718296698diff 2013-04-17 14:00:48.336745196 -0700
@@ -63,3 +63,10 @@
 
 (def t state-t)
 (def m state-m)
+
+(defn lift-catch [m h]
+  (Returned.
+   (curryfn [t s]
+     (run-monad (:inner t)
+                (catch-error (run-state-t t m s)
+                             (fn [e] (run-state-t t (h m) s)))))))

Mismatch: META-INF/maven/bwo/monads/pom.xml
--- /tmp/clojars1042830004364815271diff 2013-04-17 14:00:48.348745251 -0700
+++ /tmp/clojars3050258425536227905diff 2013-04-17 14:00:48.348745251 -0700
@@ -17,7 +17,7 @@
   <scm>
     <connection>scm:git:git://github.com/bwo/monads.git</connection>
     <developerConnection>scm:git:ssh://git@github.com/bwo/monads.git</developerConnection>
-    <tag>e9308567201a966bae2a67560a4e8b38981e210b</tag>
+    <tag>aea52d6cd79516d529b088d42fafc80cd5a505ba</tag>
     <url>https://github.com/bwo/monads</url>
   </scm>
   <build>

Mismatch: monads/core.clj
--- /tmp/clojars8656559905101088730diff 2013-04-17 14:00:48.360745316 -0700
+++ /tmp/clojars3659002700692080847diff 2013-04-17 14:00:48.360745316 -0700
@@ -47,56 +47,94 @@
   `(run-monad ~m (mdo ~@exprs)))
 
 ;;; monadplus
-(def mzero (Returned. (fn [m] (-> m :monadplus :mzero))))
-(defn mplus [left right]
+(def ^{:doc "The zero value for monadplus instances"}
+  mzero (Returned. (fn [m] (-> m :monadplus :mzero))))
+
+(defn mplus
+  "Add the values of left and right. Required to be associative."
+  [left right]
   (Mplus. left right))
 
 ;; monadfail
-(defn mfail [msg]
+(defn mfail
+  "Abort the current computation, with the message msg (if supported)."
+  [msg]
   (Returned. (fn [m] ((-> m :monadfail :mfail) msg))))
 
-(defn lift [inner]
+(defn lift
+  "Lift the computation inner up a level in the monad transformer stack."
+  [inner]
   (Returned. (fn [m] ((-> m :monadtrans :lift) inner))))
 
 ;; monadstate
-(def get-state
+(def ^{:doc "Return the current state"}
+  get-state
   (Returned. (fn [m] (-> m :monadstate :get-state))))
-(defn put-state [v]
+(defn put-state
+  "Make the state be the value v."
+  [v]
   (Returned. (fn [m] ((-> m :monadstate :put-state) v))))
-(defn modify [f] (>>= get-state (comp put-state f)))
+(defn modify
+  "Transform the current state by the function f."
+  [f]
+  (>>= get-state (comp put-state f)))
 
 ;;monadwriter
-(defn tell [w]
+(defn tell
+  "Add the value w to the log. Note that w must be a monoid."
+  [w]
   (Returned. (fn [m] ((-> m :monadwriter :tell) w))))
 
-(defn listen [comp]
+(defn listen
+  "Execute the computation comp, and return both its return value and
+   the log it produces."
+  [comp]
   (Returned. (fn [m] ((-> m :monadwriter :listen) comp))))
 
-;; haskell dox:
-;; | @'pass' m@ is an action that executes the action @m@, which returns
-;; a value and a function, and returns the value, applying the function
-;; to the output.
-(defn pass [comp]
+(defn pass
+  "Execute the computation comp, which should return a value and a
+   function, and return the value, applying the function to the log."
+  [comp]
   (Returned. (fn [m] ((-> m :monadwriter :pass) comp))))
 
-(defn listens [f m]
-  (mdo ^Pair p <- (listen m)
-       (return (types/fst p) (f (types/snd p)))))
-
-(defn censor [f m]
+(defn listens
+  "Execute the computation m, adding the result of calling f on its log to
+  the its return value."
+  [f m]
+  (mdo p <- (listen m)
+       (return [(first p) (f (second p))])))
+
+(defn censor
+  "Execute the computation m, returning the value it returns and modifying
+  its log by the function f."
+  [f m]
   (pass (mdo a <- m
              (return [a f]))))
 
 ;; monaderror
-(defn throw-error [e]
+(defn throw-error
+  "Abort the current computation, with the error e."
+  [e]
   (Returned. (fn [m] ((-> m :monaderror :throw-error) e))))
-(defn catch-error [comp handler]
+
+(defn catch-error
+  "Try running the computation comp, calling the function handler if
+   it is aborted by an error. The handler function will receive the
+   error value as its argument."
+  [comp handler]
   (Returned. (fn [m] ((-> m :monaderror :catch-error) comp handler))))
 
 ;; monadreader
-(def ask (Returned. (fn [m] (-> m :monadreader :ask))))
-(defn local [f comp] (Returned. (fn [m] ((-> m :monadreader :local) f comp))))
-
-(defn asks [f]
+(def ^{:doc "Return the current environment."}
+  ask
+  (Returned. (fn [m] (-> m :monadreader :ask))))
+
+(defn local
+  "Run the computation comp in an environment transformed by the function f."
+  [f comp] (Returned. (fn [m] ((-> m :monadreader :local) f comp))))
+
+(defn asks
+  "Return the environment transformed by the function f."
+  [f]
   (mdo x <- ask
        (return (f x))))

Diffing ivan/antler/caribou-admin/0.10.0/caribou-admin-0.10.0.jar
Mismatch: caribou/admin/controllers/login.clj
--- /tmp/clojars772092250392732266diff  2013-04-17 14:00:50.140754139 -0700
+++ /tmp/clojars1551685857046318260diff 2013-04-17 14:00:50.140754139 -0700
@@ -37,11 +37,14 @@
                       "&target=" target)
                  target)
         login (if match? "success" "failure")
+        session (:session request)
         session (if-not match?
-                  {}
-                  {:user (dissoc account :created_at :updated_at)
-                   :locale locale})]
-    (println "USER in submit-login is " (:user session))
+                  session
+                  (assoc session
+                    :admin
+                    {:user (dissoc account :created_at :updated_at)
+                     :locale locale}))]
+    (println "USER in submit-login is " (-> session :admin :user))
     (redirect target {:session session :login login})))
 
 
@@ -63,7 +66,7 @@
 ;; allow target
 (defn logout
   [request]
-  (render request {:session {}}))
+  (render request {:session (dissoc (:session request) :admin)}))
 
 (defn forgot-password
   [request]

Mismatch: caribou/admin/core.clj
--- /tmp/clojars4541712108263489251diff 2013-04-17 14:00:50.148754188 -0700
+++ /tmp/clojars7922140217326234379diff 2013-04-17 14:00:50.148754188 -0700
@@ -55,12 +55,11 @@
 (defn user-required
   [handler]
   (fn [request]
-    (if (or (seq (-> request :session :user))
+    (if (or (seq (-> request :session :admin :user))
             (open-page? (:uri request)))
       (handler request)
       (controller/redirect
-       (pages/route-for :admin.login {})
-       {:session (:session request)}))))
+       (pages/route-for :login {})))))
 
 (defn get-models
   [handler]

Mismatch: META-INF/maven/antler/caribou-admin/pom.properties
--- /tmp/clojars1382482030397474792diff 2013-04-17 14:00:50.156754218 -0700
+++ /tmp/clojars264252171995680966diff  2013-04-17 14:00:50.156754218 -0700
@@ -1,6 +1,6 @@
 #Leiningen
-#Thu Apr 11 17:26:51 PDT 2013
+#Mon Apr 15 15:35:01 PDT 2013
 version=0.10.0
-revision=37523a627b21b3769d293c6d140e70aa291804c4
+revision=86a07d09536c30f5b4b32b16f6e4de4f1cdf82bb
 groupId=antler
 artifactId=caribou-admin

Mismatch: config/boot.clj
--- /tmp/clojars8768897196758216336diff 2013-04-17 14:00:50.164754267 -0700
+++ /tmp/clojars6474657560700528358diff 2013-04-17 14:00:50.164754267 -0700
@@ -17,9 +17,9 @@
    :template-dir   "templates"
    :api-swank-port 9002
    :public-dir     "public"
-   :asset-dir      "../app/"
+   :asset-dir      "app/"
    :hooks-ns      "weareinstrumentv3.hooks"
-   :migrations-dir "../app/migrations"
+   :migrations-dir "app/migrations"
    :api-public     "resources/public"
    :controller {:namespace "weareinstrumentv3.controllers"}})
 

Mismatch: META-INF/maven/antler/caribou-admin/pom.xml
--- /tmp/clojars2378743762567986626diff 2013-04-17 14:00:50.176754319 -0700
+++ /tmp/clojars2180541351739783734diff 2013-04-17 14:00:50.176754319 -0700
@@ -10,7 +10,7 @@
   <scm>
     <connection>scm:git:git://github.com/antler/caribou-admin.git</connection>
     <developerConnection>scm:git:ssh://git@github.com/antler/caribou-admin.git</developerConnection>
-    <tag>37523a627b21b3769d293c6d140e70aa291804c4</tag>
+    <tag>86a07d09536c30f5b4b32b16f6e4de4f1cdf82bb</tag>
     <url>https://github.com/antler/caribou-admin</url>
   </scm>
   <build>

Diffing ivan/docopt/docopt/0.6.1/docopt-0.6.1.jar
Mismatch: docopt/util$defmultimethods$fn__20.class
Binary files /tmp/clojars2402007577731723005diff and /tmp/clojars6753123817591288001diff differ

Mismatch: docopt/usageblock$tokenize_pattern_lines$fn__106.class
Binary files /tmp/clojars2402395106126530576diff and /tmp/clojars6383804855375728524diff differ

Mismatch: docopt/core.clj
--- /tmp/clojars8456568317932151774diff 2013-04-17 14:00:50.716756997 -0700
+++ /tmp/clojars5496631039578008577diff 2013-04-17 14:00:50.716756997 -0700
@@ -21,11 +21,11 @@
 (defmacro docopt
   "Parses doc string at compile-time and matches command line arguments at run-time.
 The doc string may be omitted, in which case the metadata of '-main' is used"
-  ([args]
-    `(let [doc# (:doc (meta (var ~'-main)))]
-       (if (string? doc#)
-         (m/match-argv (parse doc#) ~args)
-         (throw (Exception. "Docopt with one argument requires that #'-main have a doc string.")))))
+  ([args] 
+    (let [doc (:doc (meta (find-var (symbol (pr-str (ns-name *ns*)) "-main"))))]
+      (if (string? doc)
+        `(m/match-argv ~(parse doc) ~args)
+        (throw (Exception. "Docopt with one argument requires that #'-main have a doc string.\n")))))
   ([doc args]
     `(m/match-argv ~(parse doc) ~args)))
 

Mismatch: docopt/core$parse$osplitfn__18.class
Only in one jar: docopt/core$parse$osplitfn__18.class #<ZipEntry docopt/core$parse$osplitfn__18.class> nil

Mismatch: docopt/usageblock$fn__96$new_short__98.class
Binary files /tmp/clojars8088850769975503635diff and /tmp/clojars2203690081529987310diff differ

Mismatch: project.clj
--- /tmp/clojars6340149257411286019diff 2013-04-17 14:00:50.748757161 -0700
+++ /tmp/clojars4754479653699943262diff 2013-04-17 14:00:50.748757161 -0700
@@ -1,8 +1,7 @@
 (defproject docopt "0.6.1"
   :description "docopt creates beautiful command-line interfaces - clojure port"
   :url "http://docopt.org"
-  :license {:name "MIT"
-            :url "https://github.com/docopt/docopt.clj/blob/master/LICENSE"}
+  :license {:name "MIT" :url "https://github.com/docopt/docopt.clj/blob/master/LICENSE"}
   :dependencies [[org.clojure/clojure "1.4.0"]]
   :profiles {:test {:dependencies [[org.clojure/data.json "0.2.1"]]}}
   :aot :all)

Mismatch: docopt/core$parse.class
Binary files /tmp/clojars3724418863917951411diff and /tmp/clojars6873151320100394834diff differ

Mismatch: META-INF/maven/docopt/docopt/pom.properties
--- /tmp/clojars5006034501892614005diff 2013-04-17 14:00:50.772757280 -0700
+++ /tmp/clojars4001842867362830112diff 2013-04-17 14:00:50.776757291 -0700
@@ -1,6 +1,6 @@
 #Leiningen
-#Fri Apr 05 13:24:04 EDT 2013
+#Thu Apr 11 08:05:37 EDT 2013
 version=0.6.1
-revision=2e8d0f032e5ac344df8e8063f6abc0bf651605d7
+revision=c0a23a90e95e1b49e519773e61101179adfc9fc8
 groupId=docopt
 artifactId=docopt

Mismatch: docopt/usageblock$compile_long_options_re$fn__55.class
Binary files /tmp/clojars3303588351140430710diff and /tmp/clojars402565300501924034diff differ

Mismatch: docopt/core$parse$sec_re__14.class
Only in one jar: docopt/core$parse$sec_re__14.class #<ZipEntry docopt/core$parse$sec_re__14.class> nil

Mismatch: docopt/usageblock$compile_long_options_re.class
Binary files /tmp/clojars7486843708312858479diff and /tmp/clojars3871630436690248819diff differ

Mismatch: docopt/usageblock$tokenize_pattern_lines$fn__106$fn__107.class
Binary files /tmp/clojars5050153743286713324diff and /tmp/clojars9178913224289266431diff differ

Mismatch: docopt/core$parse$section__16.class
Only in one jar: docopt/core$parse$section__16.class #<ZipEntry docopt/core$parse$section__16.class> nil

Mismatch: docopt/usageblock$fn__96.class
Binary files /tmp/clojars9166777136873119204diff and /tmp/clojars7265190675975659240diff differ

Mismatch: docopt/core$_docopt.class
Binary files /tmp/clojars919339958993027304diff and /tmp/clojars5893725219819036605diff differ

Mismatch: META-INF/leiningen/docopt/docopt/project.clj
--- /tmp/clojars9049899889949524451diff 2013-04-17 14:00:50.864757730 -0700
+++ /tmp/clojars729959410108212282diff  2013-04-17 14:00:50.864757730 -0700
@@ -1,8 +1,7 @@
 (defproject docopt "0.6.1"
   :description "docopt creates beautiful command-line interfaces - clojure port"
   :url "http://docopt.org"
-  :license {:name "MIT"
-            :url "https://github.com/docopt/docopt.clj/blob/master/LICENSE"}
+  :license {:name "MIT" :url "https://github.com/docopt/docopt.clj/blob/master/LICENSE"}
   :dependencies [[org.clojure/clojure "1.4.0"]]
   :profiles {:test {:dependencies [[org.clojure/data.json "0.2.1"]]}}
   :aot :all)

Mismatch: docopt/core$docopt.class
Binary files /tmp/clojars5448970850150674873diff and /tmp/clojars1478778198942705982diff differ

Mismatch: docopt/usageblock$tokenize_pattern_lines.class
Binary files /tmp/clojars9021310930800595566diff and /tmp/clojars8414748346625822234diff differ

Mismatch: docopt/util$defmultimethods.class
Binary files /tmp/clojars6091076643412805921diff and /tmp/clojars262904681989226179diff differ

Mismatch: META-INF/maven/docopt/docopt/pom.xml
--- /tmp/clojars1884917115526228733diff 2013-04-17 14:00:50.908757949 -0700
+++ /tmp/clojars8135971442079776163diff 2013-04-17 14:00:50.908757949 -0700
@@ -17,7 +17,7 @@
   <scm>
     <connection>scm:git:git://github.com//.git</connection>
     <developerConnection>scm:git:ssh://git@github.com//.git</developerConnection>
-    <tag>2e8d0f032e5ac344df8e8063f6abc0bf651605d7</tag>
+    <tag>c0a23a90e95e1b49e519773e61101179adfc9fc8</tag>
     <url>https://github.com//</url>
   </scm>
   <build>

Diffing ivan/chlorine/chlorine/1.5.2.1/chlorine-1.5.2.1.jar
Mismatch: META-INF/maven/chlorine/chlorine/pom.properties
--- /tmp/clojars1391698127356977733diff 2013-04-17 14:00:51.064758730 -0700
+++ /tmp/clojars526918066650642402diff  2013-04-17 14:00:51.064758730 -0700
@@ -1,5 +1,5 @@
 #Leiningen
-#Thu Mar 28 22:55:51 ICT 2013
+#Mon Apr 01 13:12:29 ICT 2013
 version=1.5.2.1
 revision=36c241ef16daf29d558ed1689c55ece41eac39e9
 groupId=chlorine

Diffing ivan/service-hub/service-hub/1.0.3/service-hub-1.0.3.jar
Mismatch: META-INF/maven/service-hub/service-hub/pom.properties
--- /tmp/clojars6829208315965654506diff 2013-04-17 14:00:51.208759437 -0700
+++ /tmp/clojars4789295922305229809diff 2013-04-17 14:00:51.208759437 -0700
@@ -1,6 +1,6 @@
 #Leiningen
-#Tue Apr 09 19:14:54 CEST 2013
+#Sun Apr 14 18:31:14 CEST 2013
 version=1.0.3
-revision=6a5414c74dea64c15c53c37508a657341aebfbe0
+revision=8a077882f1f31ad7ec428ec9db4f427739777073
 groupId=service-hub
 artifactId=service-hub

Mismatch: META-INF/maven/service-hub/service-hub/pom.xml
--- /tmp/clojars7157294738318960995diff 2013-04-17 14:00:51.216759473 -0700
+++ /tmp/clojars3437040959282483651diff 2013-04-17 14:00:51.216759473 -0700
@@ -16,7 +16,7 @@
   <scm>
     <connection>scm:git:git://github.com/ITEdge/ServiceHub.git</connection>
     <developerConnection>scm:git:ssh://git@github.com/ITEdge/ServiceHub.git</developerConnection>
-    <tag>6a5414c74dea64c15c53c37508a657341aebfbe0</tag>
+    <tag>8a077882f1f31ad7ec428ec9db4f427739777073</tag>
     <url>https://github.com/ITEdge/ServiceHub</url>
   </scm>
   <build>

Mismatch: servicehub/routes_util.clj
--- /tmp/clojars5438012715647712652diff 2013-04-17 14:00:51.228759535 -0700
+++ /tmp/clojars2547047508924622482diff 2013-04-17 14:00:51.228759535 -0700
@@ -57,55 +57,54 @@
   ([path entity-service pk]
     (scaffold-crud-routes path entity-service pk nil))
   ([path entity-service pk post-fns]
-   (let [pass-through (fn [result] result)]
-      (routes (GET (str path "/") [:as request]
-                 (let [range (parse-range-headers request)
-                       sort-args (parse-sort-args :sortBy (:params request))
-                       auth (:auth request)
-                       result (list-entities entity-service nil sort-args (:from range) (:to range) auth)]
-                      (-> (util/craft-json-response 
-                      (-> (:message result)
-                            ((:list post-fns pass-through))))
-                     (create-status-code result)
-                     (create-content-range-headers result))))
-              (GET [(str path "/:id"), :id #"[0-9]+"] [id :as request]
-                 (let [auth (:auth request)
-                       result (find-entity entity-service id auth)]
-                      (-> (util/craft-json-response 
-                      (-> (:message result)
-                          ((:get post-fns pass-through))))
-                     (create-status-code result))))
-              (GET path [:as request]
-                  (let [range (parse-range-headers request)
-                       params (:params request)
-                       sort-args (parse-sort-args :sortBy params)
-                       auth (:auth request)
-                       result (list-entities entity-service params sort-args (:from range) (:to range) auth)]
-                    (-> (util/craft-json-response
-                     (-> (:message result)
-                         ((:query post-fns pass-through))))
-                     (create-status-code result)
-                     (create-content-range-headers result))))
-              (PUT [(str path "/:id"), :id #"[0-9]+"] [id :as request]
-                 (let [attributes (assoc (util/read-json (slurp (:body request))) pk id)
-                       auth (:auth request)
-                       result (update-entity entity-service attributes auth)]
-                      (-> (util/craft-json-response
-                      (-> (:message result)
-                          ((:update post-fns pass-through))))
-                     (create-status-code result))))
-              (POST path [:as request]
-                 (let [attributes (util/read-json (slurp (:body request)))
-                       auth (:auth request)
-                       result (add-entity entity-service attributes auth)] 
-                      (-> (util/craft-json-response
-                      (-> (:message result)
-                          ((:create post-fns pass-through))))
-                      (create-status-code result))))
-              (DELETE [(str path "/:id"), :id #"[0-9]+"] [id :as request]
-                 (let [auth (:auth request)
-                       result (delete-entity entity-service id auth)]   
-                      (-> (util/craft-json-response
-                      (-> (:message result)
-                          ((:delete post-fns pass-through))))
-                      (create-status-code result))))))))
\ No newline at end of file
+   (routes (GET (str path "/") [:as request]
+               (let [range (parse-range-headers request)
+                     sort-args (parse-sort-args :sortBy (:params request))
+                     auth (:auth request)
+                     result (list-entities entity-service nil sort-args (:from range) (:to range) auth)]
+                  (-> (util/craft-json-response 
+                   (-> (:message result)
+                        ((:list post-fns identity))))
+                   (create-status-code result)
+                   (create-content-range-headers result))))
+           (GET [(str path "/:id"), :id #"[0-9]+"] [id :as request]
+               (let [auth (:auth request)
+                     result (find-entity entity-service id auth)]
+                  (-> (util/craft-json-response 
+                   (-> (:message result)
+                       ((:get post-fns identity))))
+                   (create-status-code result))))
+           (GET path [:as request]
+               (let [range (parse-range-headers request)
+                     params (:params request)
+                     sort-args (parse-sort-args :sortBy params)
+                     auth (:auth request)
+                     result (list-entities entity-service params sort-args (:from range) (:to range) auth)]
+                 (-> (util/craft-json-response
+                   (-> (:message result)
+                       ((:query post-fns identity))))
+                   (create-status-code result)
+                   (create-content-range-headers result))))
+           (PUT [(str path "/:id"), :id #"[0-9]+"] [id :as request]
+               (let [attributes (assoc (util/read-json (slurp (:body request))) pk id)
+                     auth (:auth request)
+                     result (update-entity entity-service attributes auth)]
+                  (-> (util/craft-json-response
+                   (-> (:message result)
+                       ((:update post-fns identity))))
+                   (create-status-code result))))
+           (POST path [:as request]
+               (let [attributes (util/read-json (slurp (:body request)))
+                     auth (:auth request)
+                     result (add-entity entity-service attributes auth)] 
+                  (-> (util/craft-json-response
+                   (-> (:message result)
+                       ((:create post-fns identity))))
+                   (create-status-code result))))
+           (DELETE [(str path "/:id"), :id #"[0-9]+"] [id :as request]
+               (let [auth (:auth request)
+                     result (delete-entity entity-service id auth)]   
+                  (-> (util/craft-json-response
+                   (-> (:message result)
+                       ((:delete post-fns identity))))
+                   (create-status-code result)))))))
\ No newline at end of file

Diffing ivan/com/narkisr/carmine/1.6.0/carmine-1.6.0.jar
Mismatch: META-INF/maven/com.narkisr/carmine/pom.properties
--- /tmp/clojars4058967108097342001diff 2013-04-17 14:00:51.416760465 -0700
+++ /tmp/clojars6513184143100174800diff 2013-04-17 14:00:51.416760465 -0700
@@ -1,5 +1,5 @@
 #Leiningen
-#Tue Apr 02 00:43:50 IDT 2013
+#Tue Apr 02 00:48:20 IDT 2013
 version=1.6.0
 revision=88fdffed85c111a8961ed954434db49a20f2c958
 groupId=com.narkisr

Diffing ivan/factual/c4/0.0.11/c4-0.0.11.jar
Mismatch: c4/apis/google.clj
--- /tmp/clojars1832074329176503680diff 2013-04-17 14:00:51.580761287 -0700
+++ /tmp/clojars5842009764750459859diff 2013-04-17 14:00:51.580761287 -0700
@@ -89,14 +89,14 @@
 
    The result will also be wrapped in metadata parsed from the
    response metadata returned by Google, such as response status."
-  [ref]
+  ([ref]
   (assoc
     (get-result PLACES_LOOKUP {:reference ref})
-    :reference ref)
-  [ref lang]
+    :reference ref))
+  ([ref lang]
   (assoc
     (get-result PLACES_LOOKUP {:reference ref :language lang})
-    :reference ref :language lang))
+    :reference ref :language lang)))
 
 (defn addr-parts [place]
   (when-let [parts (place "address_components")]

Mismatch: META-INF/maven/factual/c4/pom.properties
--- /tmp/clojars5870017323388441190diff 2013-04-17 14:00:51.592761346 -0700
+++ /tmp/clojars3727808279033475724diff 2013-04-17 14:00:51.592761346 -0700
@@ -1,5 +1,5 @@
 #Leiningen
-#Mon Apr 01 11:06:34 PDT 2013
+#Mon Apr 01 11:28:49 PDT 2013
 version=0.0.11
 groupId=factual
 artifactId=c4

Diffing ivan/rst-format-parser/rst-format-parser/0.0.1/rst-format-parser-0.0.1.jar
Mismatch: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___64$fn__65.class
Only in one jar: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___64$fn__65.class nil #<ZipEntry rst_format_parser/core$leaves$leaves_SINGLEQUOTE___64$fn__65.class>

Mismatch: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___28$fn__29.class
Only in one jar: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___28$fn__29.class nil #<ZipEntry rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___28$fn__29.class>

Mismatch: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___52$fn__53.class
Binary files /tmp/clojars5983978509565430611diff and /tmp/clojars371849119684179497diff differ

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___38$fn__39.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___38$fn__39.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___38$fn__39.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__41.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__41.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__41.class>

Mismatch: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___71$fn__72.class
Only in one jar: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___71$fn__72.class nil #<ZipEntry rst_format_parser/core$leaves$leaves_SINGLEQUOTE___71$fn__72.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___34$fn__35.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___34$fn__35.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___34$fn__35.class>

Mismatch: dorothy/core$fn__111.class
Only in one jar: dorothy/core$fn__111.class nil #<ZipEntry dorothy/core$fn__111.class>

Mismatch: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___72$fn__73.class
Only in one jar: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___72$fn__73.class nil #<ZipEntry rst_format_parser/core$leaves$leaves_SINGLEQUOTE___72$fn__73.class>

Mismatch: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___58$fn__59.class
Only in one jar: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___58$fn__59.class nil #<ZipEntry rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___58$fn__59.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66.class>

Mismatch: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___60$fn__61.class
Only in one jar: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___60$fn__61.class nil #<ZipEntry rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___60$fn__61.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___35$fn__36.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___35$fn__36.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___35$fn__36.class>

Mismatch: dorothy/core$fn__94.class
Only in one jar: dorothy/core$fn__94.class nil #<ZipEntry dorothy/core$fn__94.class>

Mismatch: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___40$fn__41.class
Only in one jar: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___40$fn__41.class nil #<ZipEntry rst_format_parser/core$leaves$leaves_SINGLEQUOTE___40$fn__41.class>

Mismatch: dorothy/core$dot.class
Only in one jar: dorothy/core$dot.class nil #<ZipEntry dorothy/core$dot.class>

Mismatch: rst_format_parser/tree_converter$tree2str$tree2str_SINGLEQUOTE___48$fn__49.class
Only in one jar: rst_format_parser/tree_converter$tree2str$tree2str_SINGLEQUOTE___48$fn__49.class nil #<ZipEntry rst_format_parser/tree_converter$tree2str$tree2str_SINGLEQUOTE___48$fn__49.class>

Mismatch: dorothy/core$digraph.class
Only in one jar: dorothy/core$digraph.class nil #<ZipEntry dorothy/core$digraph.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___36$fn__37.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___36$fn__37.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___36$fn__37.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45$fn__46.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45$fn__46.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45$fn__46.class>

Mismatch: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___52$fn__53.class
Only in one jar: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___52$fn__53.class nil #<ZipEntry rst_format_parser/core$leaves$leaves_SINGLEQUOTE___52$fn__53.class>

Mismatch: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___81$fn__82.class
Only in one jar: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___81$fn__82.class nil #<ZipEntry rst_format_parser/core$leaves$leaves_SINGLEQUOTE___81$fn__82.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66$fn__67.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66$fn__67.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66$fn__67.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45$fn__46$fn__47$fn__48.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45$fn__46$fn__47$fn__48.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45$fn__46$fn__47$fn__48.class>

Mismatch: dorothy/core$fn__62.class
Only in one jar: dorothy/core$fn__62.class nil #<ZipEntry dorothy/core$fn__62.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66$fn__67$fn__68.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66$fn__67$fn__68.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66$fn__67$fn__68.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43.class>

Mismatch: dorothy/core$loading__4784__auto__.class
Only in one jar: dorothy/core$loading__4784__auto__.class nil #<ZipEntry dorothy/core$loading__4784__auto__.class>

Mismatch: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___148.class
Only in one jar: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___148.class nil #<ZipEntry rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___148.class>

Mismatch: dorothy/core$fn__96.class
Only in one jar: dorothy/core$fn__96.class nil #<ZipEntry dorothy/core$fn__96.class>

Mismatch: dorothy/core$check_ast.class
Only in one jar: dorothy/core$check_ast.class nil #<ZipEntry dorothy/core$check_ast.class>

Mismatch: dorothy/core$show_BANG_.class
Only in one jar: dorothy/core$show_BANG_.class nil #<ZipEntry dorothy/core$show_BANG_.class>

Mismatch: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___83.class
Only in one jar: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___83.class nil #<ZipEntry rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___83.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___34.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___34.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___34.class>

Mismatch: rst_format_parser/tree_converter$multi_QMARK_.class
Binary files /tmp/clojars8703314571414560766diff and /tmp/clojars7309816877672734148diff differ

Mismatch: rst_format_parser/core$batch_mode$fn__49.class
Only in one jar: rst_format_parser/core$batch_mode$fn__49.class nil #<ZipEntry rst_format_parser/core$batch_mode$fn__49.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66$fn__67$fn__68$fn__69.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66$fn__67$fn__68$fn__69.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66$fn__67$fn__68$fn__69.class>

Mismatch: dorothy/core$save_BANG_.class
Only in one jar: dorothy/core$save_BANG_.class nil #<ZipEntry dorothy/core$save_BANG_.class>

Mismatch: dorothy/core$node_attrs.class
Only in one jar: dorothy/core$node_attrs.class nil #<ZipEntry dorothy/core$node_attrs.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45.class>

Mismatch: rst_format_parser/core$graphviz_mode.class
Only in one jar: rst_format_parser/core$graphviz_mode.class nil #<ZipEntry rst_format_parser/core$graphviz_mode.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___35.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___35.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___35.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66$fn__67$fn__68$fn__69$fn__70$fn__71.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66$fn__67$fn__68$fn__69$fn__70$fn__71.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66$fn__67$fn__68$fn__69$fn__70$fn__71.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45$fn__46$fn__47.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45$fn__46$fn__47.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45$fn__46$fn__47.class>

Mismatch: rst_format_parser/core$loading__4784__auto__.class
Binary files /tmp/clojars623850110494478198diff and /tmp/clojars875632437416398312diff differ

Mismatch: dorothy/core$parse_node_id.class
Only in one jar: dorothy/core$parse_node_id.class nil #<ZipEntry dorothy/core$parse_node_id.class>

Mismatch: rst_format_parser/core$get_cli_opts.class
Binary files /tmp/clojars7578087709390277468diff and /tmp/clojars570154454595287766diff differ

Mismatch: dorothy/core$fn__103.class
Only in one jar: dorothy/core$fn__103.class nil #<ZipEntry dorothy/core$fn__103.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___34$fn__35$fn__36.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___34$fn__35$fn__36.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___34$fn__35$fn__36.class>

Mismatch: rst_format_parser/tree_converter$loading__4784__auto__.class
Binary files /tmp/clojars7485856109479444971diff and /tmp/clojars2233338215416450734diff differ

Mismatch: rst_format_parser/core$batch_mode.class
Only in one jar: rst_format_parser/core$batch_mode.class nil #<ZipEntry rst_format_parser/core$batch_mode.class>

Mismatch: dorothy/core$save_BANG_$fn__130.class
Only in one jar: dorothy/core$save_BANG_$fn__130.class nil #<ZipEntry dorothy/core$save_BANG_$fn__130.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___36.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___36.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___36.class>

Mismatch: rst_format_parser/core$leaf2markdown_text.class
Only in one jar: rst_format_parser/core$leaf2markdown_text.class nil #<ZipEntry rst_format_parser/core$leaf2markdown_text.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___35$fn__36$fn__37.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___35$fn__36$fn__37.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___35$fn__36$fn__37.class>

Mismatch: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___58.class
Only in one jar: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___58.class nil #<ZipEntry rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___58.class>

Mismatch: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___69.class
Only in one jar: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___69.class nil #<ZipEntry rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___69.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___34$fn__39.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___34$fn__39.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___34$fn__39.class>

Mismatch: rst_format_parser/tree_converter$dependencies.class
Only in one jar: rst_format_parser/tree_converter$dependencies.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45$fn__46$fn__47$fn__50$fn__51.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45$fn__46$fn__47$fn__50$fn__51.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45$fn__46$fn__47$fn__50$fn__51.class>

Mismatch: dorothy/core$dot_STAR__trailing_attrs.class
Only in one jar: dorothy/core$dot_STAR__trailing_attrs.class nil #<ZipEntry dorothy/core$dot_STAR__trailing_attrs.class>

Mismatch: rst_format_parser/binarizer$bidirectional_binarize.class
Only in one jar: rst_format_parser/binarizer$bidirectional_binarize.class nil #<ZipEntry rst_format_parser/binarizer$bidirectional_binarize.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___156.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___156.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___156.class>

Mismatch: rst_format_parser/tree_converter$tree2str$tree2str_SINGLEQUOTE___48.class
Only in one jar: rst_format_parser/tree_converter$tree2str$tree2str_SINGLEQUOTE___48.class nil #<ZipEntry rst_format_parser/tree_converter$tree2str$tree2str_SINGLEQUOTE___48.class>

Mismatch: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___59.class
Only in one jar: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___59.class nil #<ZipEntry rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___59.class>

Mismatch: rst_format_parser/tree_converter$find_first.class
Only in one jar: rst_format_parser/tree_converter$find_first.class nil #<ZipEntry rst_format_parser/tree_converter$find_first.class>

Mismatch: rst_format_parser/tree_converter$tree2str$fn__52.class
Only in one jar: rst_format_parser/tree_converter$tree2str$fn__52.class nil #<ZipEntry rst_format_parser/tree_converter$tree2str$fn__52.class>

Mismatch: dorothy/core$fn__99.class
Only in one jar: dorothy/core$fn__99.class nil #<ZipEntry dorothy/core$fn__99.class>

Mismatch: dorothy/core$check_compass_pt.class
Only in one jar: dorothy/core$check_compass_pt.class nil #<ZipEntry dorothy/core$check_compass_pt.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___156$fn__161.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___156$fn__161.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___156$fn__161.class>

Mismatch: dorothy/core$graph.class
Only in one jar: dorothy/core$graph.class nil #<ZipEntry dorothy/core$graph.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___36$fn__37$fn__38.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___36$fn__37$fn__38.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___36$fn__37$fn__38.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__120.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__120.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__120.class>

Mismatch: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___63.class
Only in one jar: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___63.class nil #<ZipEntry rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___63.class>

Mismatch: rst_format_parser/core.clj
--- /tmp/clojars4554089739216667424diff 2013-04-17 14:00:53.864772613 -0700
+++ /tmp/clojars7513292431187593095diff 2013-04-17 14:00:53.864772613 -0700
@@ -1,10 +1,15 @@
 (ns rst-format-parser.core
   (:use rst-format-parser.rst-parser)
   (:use [rst-format-parser.tree-converter
-         :only (tree2tex tree2rhetoricaltext)])
+         :only (tree2tex tree2rhetoricaltext tree2digraph)])
+  (:use [clj-utils.io :only (with-temp-file)])
+  (:use [dorothy.core :only (dot save!)])
+  (:use [clojure.java.shell :only [sh]])
   (:require [clojure.tools.cli :as cli])
   (:gen-class))
 
+(import 'java.io.File)
+
 (defn valid-span? [tree begin end]
   (and  (<= (first (tree :clause-idx)) begin)
         (<= end (second (tree :clause-idx)))))
@@ -46,15 +51,8 @@
                  (tree :children))))]
     (leaves-text' tree [])))
 
-(defn- get-cli-opts [args]
-  (cli/cli args
-           ["--file" "File name of parsing"]
-           ["--begin" "Beginning of span index" :default 1 :parse-fn #(Integer. %)]
-           ["--end" "End of span index" :default Integer/MAX_VALUE :parse-fn #(Integer. %)]))
-
-(defn -main [& args]
-  (let [[options args banner] (get-cli-opts args)
-        replaced-filename (clojure.string/replace (options :file) #"_" "")
+(defn rst-mode [options]
+  (let [replaced-filename (clojure.string/replace (options :in) #"_" "")
         conv-regex [[#"(\$)" "\\\\$1"] ;; ordering is important!
                     [#"%" "\\\\%"]
                     [#"(<)" "\\$$1\\$"]
@@ -76,3 +74,77 @@
           (tree2rhetoricaltext replaced-filename)
           (escape-latex-chars conv-regex)
           println))))
+
+(defn graphviz-mode [options]
+  (-> (options :in)
+      slurp
+      (clojure.string/replace #"//TT_ERR" "")
+      tree
+      first
+      tree2digraph
+      dot
+      (save! (options :out) {:format :pdf})))
+
+(defn leaves [tree]
+  (letfn [(leaves' [tree result]
+            (if (leaf? tree) (conj result tree)
+                (reduce
+                 (fn [v child] (vec (concat v (leaves' child []))))
+                 result
+                 (:children tree))))]
+    (leaves' tree [])))
+
+(defn- end-with-paragraph-marker? [text]
+  (= "<P>" (apply str (reverse (take 3 (reverse text))))))
+
+(defn leaf2markdown-text [leaf]
+  (let [text (:text leaf)]
+    (if (end-with-paragraph-marker? text)
+      (str "[" (clojure.string/replace text #"<P>" "") "]" (:clause-idx leaf) "\n\n")
+      (str "[" text "]" (:clause-idx leaf)))))
+
+(defn edu-mode [options]
+  (let [ls (-> (options :in)
+               slurp
+               (clojure.string/replace #"//TT_ERR" "")
+               tree
+               first
+               leaves)
+        markdown (->> ls
+                      (map leaf2markdown-text)
+                      (apply str (str "***" (options :in) "***\n\n")))]
+    (with-temp-file [tmp-file-obj]
+      (spit tmp-file-obj markdown)
+      (->> ["/usr/local/bin/pandoc" "-V" "geometry:paperwidth=210mm"
+            "-V" "geometry:paperheight=297mm"
+            "-V" "geometry:margin=1in"
+            "-s" "-f" "markdown" (.getPath  tmp-file-obj)
+            "-o" (options :out)]
+           (apply sh)))))
+
+(defn batch-mode [options]
+  (let [base-path "/Users/yasuhisa/Downloads/RSTtrees-WSJ-main-1.0/TEST/"
+        files (->> (.list (File. base-path))
+                   (filter #(re-matches #".*\.dis" %)))]
+    (doseq [in files]
+      (println (str base-path in))
+      (edu-mode {:in (str base-path in)
+                 :out (str base-path in ".text.pdf")})
+      (graphviz-mode {:in (str base-path in)
+                      :out (str base-path in ".tree.pdf")}))))
+
+(defn- get-cli-opts [args]
+  (cli/cli args
+           ["--mode" "RST or graphviz" :default "graphviz"]
+           ["--in" "Input file name of parsing"]
+           ["--out" "Output file name of parsing" :default "sample.pdf"]
+           ["--begin" "Beginning of span index" :default 1 :parse-fn #(Integer. %)]
+           ["--end" "End of span index" :default Integer/MAX_VALUE :parse-fn #(Integer. %)]))
+
+(defn -main [& args]
+  (let [[options args banner] (get-cli-opts args)]
+    (cond (= "rst" (:mode options)) (rst-mode options)
+          (= "graphviz" (:mode options)) (graphviz-mode options)
+          (= "edu" (:mode options)) (edu-mode options)
+          (= "batch" (:mode options)) (batch-mode options)
+          :else (println banner))))

Mismatch: dorothy/core$fn__56.class
Only in one jar: dorothy/core$fn__56.class nil #<ZipEntry dorothy/core$fn__56.class>

Mismatch: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___74.class
Only in one jar: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___74.class nil #<ZipEntry rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___74.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___38.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___38.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___38.class>

Mismatch: rst_format_parser/tree_converter.clj
--- /tmp/clojars3699735182375696848diff 2013-04-17 14:00:53.912772851 -0700
+++ /tmp/clojars5719778641535325877diff 2013-04-17 14:00:53.916772865 -0700
@@ -1,5 +1,7 @@
 (ns rst-format-parser.tree-converter
-  (:use rst-format-parser.rst-parser))
+  (:use rst-format-parser.rst-parser)
+  (:use [dorothy.core :only (digraph)])
+  (:use [clj-utils.collection :only (find-first)]))
 
 (defn multi? [tree] (= :multi (tree :direction)))
 (defn left? [tree] (= :left (tree :direction)))
@@ -44,3 +46,73 @@
         )
        "\\source{" prefix "}"
        "\\end{rhetoricaltext}"))
+
+;;;;;;;;;;;;;;;
+;; For graphviz
+;;;;;;;;;;;;;;;
+
+(defn node-id [tree]
+  (if (leaf? tree)
+    (str (:clause-idx tree))
+    (str (first (:clause-idx tree)) "-" (second (:clause-idx tree)))))
+
+(defn node-id-with-style [tree]
+  (let [label (node-id tree)]
+    (if (= "Nucleus" (:node-type tree))
+      [label {:style :filled}]
+      label)))
+
+(defn nodes [tree]
+  (letfn [(nodes' [tree result]
+            (if (leaf? tree)
+              (conj result (node-id-with-style tree))
+              (->> (->> (:children tree)
+                        (map #(nodes' % []))
+                        (apply concat))
+                   (concat result [(node-id-with-style tree)])
+                   (vec))))]
+    (nodes' tree [])))
+
+(defn edge-with-style [tree child]
+  (if (= "Nucleus" (:node-type child))
+    [(node-id tree) (node-id child)
+     {:label (find-first #(and (not (= "span" %)) (not (= "Span" %)))
+                         (map :rel2par (:children tree)))}]
+    [(node-id tree) (node-id child)
+     {:dir "none"}]))
+
+(defn dependencies [tree]
+  (letfn [(dependencies' [tree result]
+            (let [v (reduce (fn [cum c]
+                              (conj cum (edge-with-style tree c)))
+                            result (:children tree))]
+              (apply concat v (map #(dependencies' % []) (remove leaf? (:children tree))))))]
+    (vec (dependencies' tree []))))
+
+(defn tree2digraph [t]
+  (-> (apply concat [(nodes t) (dependencies t)])
+      vec
+      digraph))
+
+(defn tree2str
+  "hashとvectorからなる木をRST形式の文字列に変換する関数"
+  [t]
+  (letfn [(tree2str' [t]
+                       (if (leaf? t)
+                          (->> ["(" (:node-type t)
+                                (str "(leaf " (:clause-idx t) ")")
+                                (str "(rel2par " (:rel2par t) ")")
+                                (str "(text _!" (:text t) "_!)") ")\n"]
+                               (interpose " ")
+                               (apply str))
+                          (->> ["(" (:node-type t)
+                                (str "(span " (first (:clause-idx t)) " " (second (:clause-idx t)) ")")
+                                (str "(rel2par " (:rel2par t) ")\n")
+                                (apply str (mapv #(tree2str' %) (:children t)))
+                                ")\n"]
+                               (interpose " ")
+                               (apply str))))]
+    (str "( Root"
+         (str "(span " (first (:clause-idx t)) " " (second (:clause-idx t)) ")\n")
+         (apply str (mapv #(tree2str' %) (:children t)))
+         " )")))

Mismatch: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___113$fn__114.class
Only in one jar: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___113$fn__114.class nil #<ZipEntry rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___113$fn__114.class>

Mismatch: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___64.class
Only in one jar: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___64.class nil #<ZipEntry rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___64.class>

Mismatch: dorothy/core$fn__68.class
Only in one jar: dorothy/core$fn__68.class nil #<ZipEntry dorothy/core$fn__68.class>

Mismatch: rst_format_parser/tree_converter$tree2rhetoricaltext.class
Binary files /tmp/clojars1545686594566744411diff and /tmp/clojars777162463455983505diff differ

Mismatch: rst_format_parser/core$edu_mode.class
Only in one jar: rst_format_parser/core$edu_mode.class nil #<ZipEntry rst_format_parser/core$edu_mode.class>

Mismatch: dorothy/core$gen_id.class
Only in one jar: dorothy/core$gen_id.class nil #<ZipEntry dorothy/core$gen_id.class>

Mismatch: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___28.class
Only in one jar: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___28.class nil #<ZipEntry rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___28.class>

Mismatch: rst_format_parser/binarizer$binarize.class
Only in one jar: rst_format_parser/binarizer$binarize.class nil #<ZipEntry rst_format_parser/binarizer$binarize.class>

Mismatch: dorothy/core$graph_attrs.class
Only in one jar: dorothy/core$graph_attrs.class nil #<ZipEntry dorothy/core$graph_attrs.class>

Mismatch: dorothy/core$dot_STAR__attrs$iter__71__75$fn__76.class
Only in one jar: dorothy/core$dot_STAR__attrs$iter__71__75$fn__76.class nil #<ZipEntry dorothy/core$dot_STAR__attrs$iter__71__75$fn__76.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__122.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__122.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__122.class>

Mismatch: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___65.class
Only in one jar: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___65.class nil #<ZipEntry rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___65.class>

Mismatch: rst_format_parser/binarizer$bidirectional_QMARK_.class
Only in one jar: rst_format_parser/binarizer$bidirectional_QMARK_.class nil #<ZipEntry rst_format_parser/binarizer$bidirectional_QMARK_.class>

Mismatch: rst_format_parser/core$filter_span$fn__171.class
Only in one jar: rst_format_parser/core$filter_span$fn__171.class nil #<ZipEntry rst_format_parser/core$filter_span$fn__171.class>

Mismatch: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___33.class
Only in one jar: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___33.class nil #<ZipEntry rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___33.class>

Mismatch: dorothy/core$dot_STAR__statements.class
Only in one jar: dorothy/core$dot_STAR__statements.class nil #<ZipEntry dorothy/core$dot_STAR__statements.class>

Mismatch: rst_format_parser/core$leaves_text.class
Binary files /tmp/clojars6859881590743779279diff and /tmp/clojars8170799374234281386diff differ

Mismatch: dorothy/core$is_ast_QMARK_.class
Only in one jar: dorothy/core$is_ast_QMARK_.class nil #<ZipEntry dorothy/core$is_ast_QMARK_.class>

Mismatch: clj_utils/collection$loading__4784__auto__.class
Only in one jar: clj_utils/collection$loading__4784__auto__.class nil #<ZipEntry clj_utils/collection$loading__4784__auto__.class>

Mismatch: dorothy/core$dot_STAR__x_attrs.class
Only in one jar: dorothy/core$dot_STAR__x_attrs.class nil #<ZipEntry dorothy/core$dot_STAR__x_attrs.class>

Mismatch: rst_format_parser/core$rst_mode.class
Only in one jar: rst_format_parser/core$rst_mode.class nil #<ZipEntry rst_format_parser/core$rst_mode.class>

Mismatch: rst_format_parser/tree_converter$nodes.class
Only in one jar: rst_format_parser/tree_converter$nodes.class nil #<ZipEntry rst_format_parser/tree_converter$nodes.class>

Mismatch: rst_format_parser/core$filter_span.class
Binary files /tmp/clojars8992452654147513994diff and /tmp/clojars1120331326688886098diff differ

Mismatch: dorothy/core__init.class
Only in one jar: dorothy/core__init.class nil #<ZipEntry dorothy/core__init.class>

Mismatch: dorothy/core$subgraph.class
Only in one jar: dorothy/core$subgraph.class nil #<ZipEntry dorothy/core$subgraph.class>

Mismatch: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___57.class
Binary files /tmp/clojars431090988252654645diff and /tmp/clojars7424557381153842575diff differ

Mismatch: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___26.class
Only in one jar: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___26.class nil #<ZipEntry rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___26.class>

Mismatch: rst_format_parser/tree_converter$tree2rhetoricaltext$fn__143.class
Only in one jar: rst_format_parser/tree_converter$tree2rhetoricaltext$fn__143.class nil #<ZipEntry rst_format_parser/tree_converter$tree2rhetoricaltext$fn__143.class>

Mismatch: dorothy/core$id_generator.class
Only in one jar: dorothy/core$id_generator.class nil #<ZipEntry dorothy/core$id_generator.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__104.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__104.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__104.class>

Mismatch: project.clj
--- /tmp/clojars6638729386103522816diff 2013-04-17 14:00:54.352775033 -0700
+++ /tmp/clojars1879115107755444398diff 2013-04-17 14:00:54.352775033 -0700
@@ -5,5 +5,7 @@
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :dependencies [[org.clojure/clojure "1.4.0"]
                  [org.clojure/algo.monads "0.1.0"]
-                 [org.clojure/tools.cli "0.2.1"]]
+                 [org.clojure/tools.cli "0.2.1"]
+                 [info.yasuhisay/clj-utils "0.1.1"]
+                 [dorothy "0.0.3"]]
   :main rst-format-parser.core)

Mismatch: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___27.class
Only in one jar: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___27.class nil #<ZipEntry rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___27.class>

Mismatch: rst_format_parser/rst_parser$fn__15$fn__37$fn__38$fn__39$fn__40$fn__41$fn__42$fn__43.class
Binary files /tmp/clojars8715559709529850614diff and /tmp/clojars2202427093097281981diff differ

Mismatch: rst_format_parser/rst_parser$fn__15$fn__17$fn__18$fn__19.class
Binary files /tmp/clojars4103937554722902042diff and /tmp/clojars8004182974205163221diff differ

Mismatch: META-INF/leiningen/rst-format-parser/rst-format-parser/project.clj
--- /tmp/clojars6179602337341457568diff 2013-04-17 14:00:54.408775304 -0700
+++ /tmp/clojars77160944731492192diff   2013-04-17 14:00:54.408775304 -0700
@@ -5,5 +5,7 @@
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :dependencies [[org.clojure/clojure "1.4.0"]
                  [org.clojure/algo.monads "0.1.0"]
-                 [org.clojure/tools.cli "0.2.1"]]
+                 [org.clojure/tools.cli "0.2.1"]
+                 [info.yasuhisay/clj-utils "0.1.1"]
+                 [dorothy "0.0.3"]]
   :main rst-format-parser.core)

Mismatch: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___108.class
Only in one jar: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___108.class nil #<ZipEntry rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___108.class>

Mismatch: rst_format_parser/core$markdown_mode.class
Only in one jar: rst_format_parser/core$markdown_mode.class nil #<ZipEntry rst_format_parser/core$markdown_mode.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___156$fn__157.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___156$fn__157.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___156$fn__157.class>

Mismatch: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___148$fn__149.class
Only in one jar: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___148$fn__149.class nil #<ZipEntry rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___148$fn__149.class>

Mismatch: dorothy/core$escape_quotes.class
Only in one jar: dorothy/core$escape_quotes.class nil #<ZipEntry dorothy/core$escape_quotes.class>

Mismatch: rst_format_parser/core$valid_span_QMARK_.class
Binary files /tmp/clojars8637957210981463884diff and /tmp/clojars5876057169190501180diff differ

Mismatch: dorothy/core$html_QMARK_.class
Only in one jar: dorothy/core$html_QMARK_.class nil #<ZipEntry dorothy/core$html_QMARK_.class>

Mismatch: rst_format_parser/core$text_to_num.class
Binary files /tmp/clojars5742063176207301844diff and /tmp/clojars4821827507768206014diff differ

Mismatch: rst_format_parser/core$escape_latex_chars.class
Binary files /tmp/clojars2810033482659927155diff and /tmp/clojars3024429718669224869diff differ

Mismatch: rst_format_parser/tree_converter__init.class
Binary files /tmp/clojars7042025626231073766diff and /tmp/clojars3301681554207887825diff differ

Mismatch: rst_format_parser/rst_parser$fn__15$fn__17$fn__18$fn__19$fn__20$fn__21.class
Binary files /tmp/clojars5175828740839490688diff and /tmp/clojars7879691574649177701diff differ

Mismatch: clj_utils/io$fn__58$fn__59.class
Only in one jar: clj_utils/io$fn__58$fn__59.class nil #<ZipEntry clj_utils/io$fn__58$fn__59.class>

Mismatch: dorothy/core$gen_id_QMARK_.class
Only in one jar: dorothy/core$gen_id_QMARK_.class nil #<ZipEntry dorothy/core$gen_id_QMARK_.class>

Mismatch: clj_utils/io$fn__48$fn__49.class
Only in one jar: clj_utils/io$fn__48$fn__49.class nil #<ZipEntry clj_utils/io$fn__48$fn__49.class>

Mismatch: rst_format_parser/rst_parser$fn__15$fn__37$fn__38$fn__39$fn__40$fn__41$fn__42$fn__43$fn__44$fn__45.class
Binary files /tmp/clojars171637250873622747diff and /tmp/clojars1844627555521149332diff differ

Mismatch: rst_format_parser/core__init.class
Binary files /tmp/clojars5701820141225300198diff and /tmp/clojars8409627704631229353diff differ

Mismatch: rst_format_parser/tree_converter$edge_with_style$fn__33.class
Only in one jar: rst_format_parser/tree_converter$edge_with_style$fn__33.class nil #<ZipEntry rst_format_parser/tree_converter$edge_with_style$fn__33.class>

Mismatch: rst_format_parser/rst_parser$fn__15$fn__37$fn__38$fn__39$fn__40$fn__41$fn__42$fn__43$fn__44$fn__45$fn__46$fn__47.class
Binary files /tmp/clojars2170591542541779127diff and /tmp/clojars2839897396063121932diff differ

Mismatch: rst_format_parser/tree_converter$tree2tex.class
Binary files /tmp/clojars3710552244649348296diff and /tmp/clojars9036630664426925787diff differ

Mismatch: rst_format_parser/rst_parser$fn__15$fn__17$fn__18$fn__19$fn__20$fn__21$fn__22$fn__23.class
Binary files /tmp/clojars6490248930826656467diff and /tmp/clojars2753882621871075924diff differ

Mismatch: dorothy/core$options_for_type.class
Only in one jar: dorothy/core$options_for_type.class nil #<ZipEntry dorothy/core$options_for_type.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__106.class
Binary files /tmp/clojars994448611406550644diff and /tmp/clojars4611520035813439954diff differ

Mismatch: dorothy/core$digraph_STAR_.class
Only in one jar: dorothy/core$digraph_STAR_.class nil #<ZipEntry dorothy/core$digraph_STAR_.class>

Mismatch: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___29.class
Only in one jar: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___29.class nil #<ZipEntry rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___29.class>

Mismatch: rst_format_parser/rst_parser$fn__15$fn__17$fn__18$fn__19$fn__20$fn__21$fn__22$fn__23$fn__26$fn__27.class
Binary files /tmp/clojars6863849774019529546diff and /tmp/clojars6980195759089757555diff differ

Mismatch: dorothy/core$node_id.class
Only in one jar: dorothy/core$node_id.class nil #<ZipEntry dorothy/core$node_id.class>

Mismatch: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___29$fn__30.class
Only in one jar: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___29$fn__30.class nil #<ZipEntry rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___29$fn__30.class>

Mismatch: rst_format_parser/tree_converter$tree2tex$fn__140.class
Only in one jar: rst_format_parser/tree_converter$tree2tex$fn__140.class nil #<ZipEntry rst_format_parser/tree_converter$tree2tex$fn__140.class>

Mismatch: rst_format_parser/tree_converter$tree2tex$fn__74.class
Binary files /tmp/clojars793789086670059846diff and /tmp/clojars2475214034859704602diff differ

Mismatch: rst_format_parser/core$filter_span$fn__60.class
Only in one jar: rst_format_parser/core$filter_span$fn__60.class nil #<ZipEntry rst_format_parser/core$filter_span$fn__60.class>

Mismatch: dorothy/core$build_render_command.class
Only in one jar: dorothy/core$build_render_command.class nil #<ZipEntry dorothy/core$build_render_command.class>

Mismatch: dorothy/core$escape_id.class
Only in one jar: dorothy/core$escape_id.class nil #<ZipEntry dorothy/core$escape_id.class>

Mismatch: rst_format_parser/tree_converter$tree2digraph.class
Only in one jar: rst_format_parser/tree_converter$tree2digraph.class nil #<ZipEntry rst_format_parser/tree_converter$tree2digraph.class>

Mismatch: rst_format_parser/core$escape_latex_chars$fn__175.class
Only in one jar: rst_format_parser/core$escape_latex_chars$fn__175.class nil #<ZipEntry rst_format_parser/core$escape_latex_chars$fn__175.class>

Mismatch: dorothy/core$safe_id_QMARK_.class
Only in one jar: dorothy/core$safe_id_QMARK_.class nil #<ZipEntry dorothy/core$safe_id_QMARK_.class>

Mismatch: rst_format_parser/tree_converter$tree2tex$fn__20.class
Only in one jar: rst_format_parser/tree_converter$tree2tex$fn__20.class nil #<ZipEntry rst_format_parser/tree_converter$tree2tex$fn__20.class>

Mismatch: rst_format_parser/core$_main.class
Binary files /tmp/clojars4269504629917977782diff and /tmp/clojars1861669813412109279diff differ

Mismatch: dorothy/core$dot_STAR__attrs.class
Only in one jar: dorothy/core$dot_STAR__attrs.class nil #<ZipEntry dorothy/core$dot_STAR__attrs.class>

Mismatch: dorothy/core$vector_to_ast.class
Only in one jar: dorothy/core$vector_to_ast.class nil #<ZipEntry dorothy/core$vector_to_ast.class>

Mismatch: rst_format_parser/core$escape_latex_chars$fn__53.class
Only in one jar: rst_format_parser/core$escape_latex_chars$fn__53.class nil #<ZipEntry rst_format_parser/core$escape_latex_chars$fn__53.class>

Mismatch: rst_format_parser/core$escape_latex_chars$fn__64.class
Only in one jar: rst_format_parser/core$escape_latex_chars$fn__64.class nil #<ZipEntry rst_format_parser/core$escape_latex_chars$fn__64.class>

Mismatch: rst_format_parser/tree_converter$node_id.class
Only in one jar: rst_format_parser/tree_converter$node_id.class nil #<ZipEntry rst_format_parser/tree_converter$node_id.class>

Mismatch: rst_format_parser/core$filter_span$fn__50.class
Only in one jar: rst_format_parser/core$filter_span$fn__50.class nil #<ZipEntry rst_format_parser/core$filter_span$fn__50.class>

Mismatch: rst_format_parser/binarizer$loading__4784__auto__.class
Only in one jar: rst_format_parser/binarizer$loading__4784__auto__.class nil #<ZipEntry rst_format_parser/binarizer$loading__4784__auto__.class>

Mismatch: clj_utils/io$loading__4784__auto__.class
Only in one jar: clj_utils/io$loading__4784__auto__.class nil #<ZipEntry clj_utils/io$loading__4784__auto__.class>

Mismatch: rst_format_parser/rst_parser$fn__15$fn__17$fn__18$fn__19$fn__20.class
Binary files /tmp/clojars1389556186149610937diff and /tmp/clojars7925011814583642433diff differ

Mismatch: clj_utils/io$fn__64.class
Only in one jar: clj_utils/io$fn__64.class nil #<ZipEntry clj_utils/io$fn__64.class>

Mismatch: rst_format_parser/core$escape_latex_chars$fn__54.class
Only in one jar: rst_format_parser/core$escape_latex_chars$fn__54.class nil #<ZipEntry rst_format_parser/core$escape_latex_chars$fn__54.class>

Mismatch: rst_format_parser/core$filter_span$fn__51.class
Only in one jar: rst_format_parser/core$filter_span$fn__51.class nil #<ZipEntry rst_format_parser/core$filter_span$fn__51.class>

Mismatch: dorothy/core$x_attrs.class
Only in one jar: dorothy/core$x_attrs.class nil #<ZipEntry dorothy/core$x_attrs.class>

Mismatch: rst_format_parser/tree_converter$left_QMARK_.class
Binary files /tmp/clojars596168922724901638diff and /tmp/clojars8523286164070447369diff differ

Mismatch: dorothy/core$graph_STAR_.class
Only in one jar: dorothy/core$graph_STAR_.class nil #<ZipEntry dorothy/core$graph_STAR_.class>

Mismatch: rst_format_parser/rst_parser$fn__15$fn__17$fn__18$fn__19$fn__20$fn__21$fn__22.class
Binary files /tmp/clojars2914541165201104301diff and /tmp/clojars3578619462768735208diff differ

Mismatch: clj_utils/io$fn__54.class
Only in one jar: clj_utils/io$fn__54.class nil #<ZipEntry clj_utils/io$fn__54.class>

Mismatch: rst_format_parser/core$escape_latex_chars$fn__55.class
Only in one jar: rst_format_parser/core$escape_latex_chars$fn__55.class nil #<ZipEntry rst_format_parser/core$escape_latex_chars$fn__55.class>

Mismatch: dorothy/core$read_dot_result.class
Only in one jar: dorothy/core$read_dot_result.class nil #<ZipEntry dorothy/core$read_dot_result.class>

Mismatch: dorothy/core$render.class
Only in one jar: dorothy/core$render.class nil #<ZipEntry dorothy/core$render.class>

Mismatch: rst_format_parser/rst_parser$left_child.class
Binary files /tmp/clojars5634400428727119596diff and /tmp/clojars8748360699125804452diff differ

Mismatch: rst_format_parser/rst_parser$fn__15$fn__37$fn__38$fn__39$fn__40$fn__41$fn__42.class
Binary files /tmp/clojars3843126524822550467diff and /tmp/clojars5491707293115127625diff differ

Mismatch: rst_format_parser/tree_converter$edge_with_style.class
Only in one jar: rst_format_parser/tree_converter$edge_with_style.class nil #<ZipEntry rst_format_parser/tree_converter$edge_with_style.class>

Mismatch: clj_utils/io$fn__66.class
Only in one jar: clj_utils/io$fn__66.class nil #<ZipEntry clj_utils/io$fn__66.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___156$fn__157$fn__158.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___156$fn__157$fn__158.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___156$fn__157$fn__158.class>

Mismatch: rst_format_parser/rst_parser$fn__15$fn__37$fn__38$fn__39$fn__40$fn__41$fn__42$fn__43$fn__44.class
Binary files /tmp/clojars3791171802895090598diff and /tmp/clojars4121730939030801538diff differ

Mismatch: rst_format_parser/core$escape_latex_chars$fn__23.class
Only in one jar: rst_format_parser/core$escape_latex_chars$fn__23.class nil #<ZipEntry rst_format_parser/core$escape_latex_chars$fn__23.class>

Mismatch: clj_utils/collection__init.class
Only in one jar: clj_utils/collection__init.class nil #<ZipEntry clj_utils/collection__init.class>

Mismatch: rst_format_parser/core$exact_match_span_QMARK_.class
Binary files /tmp/clojars9119532132337472236diff and /tmp/clojars2761665902856421890diff differ

Mismatch: rst_format_parser/core$filter_span$fn__43.class
Binary files /tmp/clojars6948451031644798247diff and /tmp/clojars7165748777724067868diff differ

Mismatch: rst_format_parser/core$escape_latex_chars$fn__103.class
Only in one jar: rst_format_parser/core$escape_latex_chars$fn__103.class nil #<ZipEntry rst_format_parser/core$escape_latex_chars$fn__103.class>

Mismatch: rst_format_parser/rst_parser$fn__15$fn__37$fn__38$fn__39$fn__40$fn__41$fn__42$fn__43$fn__44$fn__45$fn__46.class
Binary files /tmp/clojars1402292561057178901diff and /tmp/clojars2738659919964810041diff differ

Mismatch: rst_format_parser/binarizer.clj
--- /tmp/clojars4323112095935874087diff 2013-04-17 14:00:55.284779654 -0700
+++ /tmp/clojars1691400581614154581diff 2013-04-17 14:00:55.284779654 -0700
@@ -2,13 +2,48 @@
   (:use [rst-format-parser.rst-parser :only (leaf?)])
   (:use [rst-format-parser.tree-converter :only (multi?)]))
 
-(defn binarize [span]
-  (if (= 2 (count (span :children)))
-    span
-    (let [[leftest & remaining] (span :children)
-          tmp-parent {:node-type "Nucleus"
-                      :clause-idx [((first remaining) :clause-idx)
-                                   ((last remaining) :clause-idx)]
-                      :rel2par (leftest :rel2par)
-                      :children (vec remaining)}]
-      (assoc span :children [leftest (binarize tmp-parent)]))))
+(defn left-subtree-first-clause-idx [left-subtree]
+  (if (leaf? left-subtree)
+    (:clause-idx left-subtree)
+    (first (:clause-idx left-subtree))))
+
+(defn right-subtree-second-clause-idx [right-subtree]
+  (if (leaf? right-subtree)
+    (:clause-idx right-subtree)
+    (second (:clause-idx right-subtree))))
+
+(defn bidirectional?
+  "[A B C]みたいなのがあったときにBがNucleusでAとCが
+   それに係るSatelliteであるパターン"
+  [subtree]
+  (and (= (count (subtree :children)) 3)
+       (let [[a b c] (subtree :children)]
+         (and (= "Satellite" (:node-type a))
+              (= "Nucleus" (:node-type b))
+              (= "Satellite" (:node-type c))))))
+
+(defn bidirectional-binarize
+  "[A B C] => [[A B] C]に変形する"
+  [subtree]
+  (assert (= 3 (count (:children subtree))))
+  (let [[a b c] (:children subtree)
+        tmp-tree {:node-type "Nucleus"
+                  :clause-idx [(left-subtree-first-clause-idx a)
+                               (right-subtree-second-clause-idx b)]
+                  :rel2par "span"
+                  :children [a b]}]
+    (assoc subtree :children [tmp-tree c])))
+
+(defn binarize [subtree]
+  (cond (leaf? subtree) subtree
+        (= 2 (count (:children subtree))) (assoc subtree :children (mapv binarize (:children subtree)))
+        (bidirectional? subtree) (binarize (bidirectional-binarize subtree))
+        :else (let [[leftest & remaining] (:children subtree) ;; nested pattern
+                    tmp-parent {:node-type "Nucleus"
+                                :clause-idx [(left-subtree-first-clause-idx
+                                              (first remaining))
+                                             (right-subtree-second-clause-idx
+                                              (last remaining))]
+                                :rel2par (:rel2par leftest)
+                                :children (vec remaining)}]
+                (assoc subtree :children [(binarize leftest) (binarize tmp-parent)]))))

Mismatch: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___69$fn__70.class
Only in one jar: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___69$fn__70.class nil #<ZipEntry rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___69$fn__70.class>

Mismatch: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___59$fn__60.class
Only in one jar: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___59$fn__60.class nil #<ZipEntry rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___59$fn__60.class>

Mismatch: clj_utils/io$fn__56.class
Only in one jar: clj_utils/io$fn__56.class nil #<ZipEntry clj_utils/io$fn__56.class>

Mismatch: META-INF/maven/rst-format-parser/rst-format-parser/pom.xml
--- /tmp/clojars3633381141698849488diff 2013-04-17 14:00:55.336779903 -0700
+++ /tmp/clojars8199206510058770046diff 2013-04-17 14:00:55.336779903 -0700
@@ -15,7 +15,7 @@
     </license>
   </licenses>
   <scm>
-    <tag>2711da9ebe5c832e2b78695a52496c8cf4af1461</tag>
+    <tag>bac72450534afc23be087c707e09760ca7f9f1e2</tag>
     <url/>
   </scm>
   <build>
@@ -75,5 +75,15 @@
       <artifactId>tools.cli</artifactId>
       <version>0.2.1</version>
     </dependency>
+    <dependency>
+      <groupId>info.yasuhisay</groupId>
+      <artifactId>clj-utils</artifactId>
+      <version>0.1.1</version>
+    </dependency>
+    <dependency>
+      <groupId>dorothy</groupId>
+      <artifactId>dorothy</artifactId>
+      <version>0.0.3</version>
+    </dependency>
   </dependencies>
 </project>

Mismatch: META-INF/maven/rst-format-parser/rst-format-parser/pom.properties
--- /tmp/clojars8109414072131727335diff 2013-04-17 14:00:55.348779966 -0700
+++ /tmp/clojars358004270773287764diff  2013-04-17 14:00:55.348779966 -0700
@@ -1,6 +1,6 @@
 #Leiningen
-#Mon Mar 04 14:36:58 JST 2013
+#Sun Apr 14 14:02:54 JST 2013
 version=0.0.1
-revision=2711da9ebe5c832e2b78695a52496c8cf4af1461
+revision=bac72450534afc23be087c707e09760ca7f9f1e2
 groupId=rst-format-parser
 artifactId=rst-format-parser

Mismatch: rst_format_parser/core$filter_span$fn__99.class
Only in one jar: rst_format_parser/core$filter_span$fn__99.class nil #<ZipEntry rst_format_parser/core$filter_span$fn__99.class>

Mismatch: rst_format_parser/rst_parser$fn__15$fn__17$fn__18$fn__19$fn__20$fn__21$fn__22$fn__23$fn__26.class
Binary files /tmp/clojars6055766833667003775diff and /tmp/clojars4812272689099362301diff differ

Mismatch: rst_format_parser/core$markdown_mode$fn__46.class
Only in one jar: rst_format_parser/core$markdown_mode$fn__46.class nil #<ZipEntry rst_format_parser/core$markdown_mode$fn__46.class>

Mismatch: rst_format_parser/core$escape_latex_chars$fn__47.class
Binary files /tmp/clojars2732348369718672816diff and /tmp/clojars1179783052440848660diff differ

Mismatch: dorothy/core$dot_STAR__attrs$iter__71__75.class
Only in one jar: dorothy/core$dot_STAR__attrs$iter__71__75.class nil #<ZipEntry dorothy/core$dot_STAR__attrs$iter__71__75.class>

Mismatch: clj_utils/io$fn__58.class
Only in one jar: clj_utils/io$fn__58.class nil #<ZipEntry clj_utils/io$fn__58.class>

Mismatch: rst_format_parser/core$leaves.class
Only in one jar: rst_format_parser/core$leaves.class nil #<ZipEntry rst_format_parser/core$leaves.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66$fn__67$fn__68$fn__69$fn__70.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66$fn__67$fn__68$fn__69$fn__70.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64$fn__65$fn__66$fn__67$fn__68$fn__69$fn__70.class>

Mismatch: rst_format_parser/core$batch_mode$fn__71.class
Only in one jar: rst_format_parser/core$batch_mode$fn__71.class nil #<ZipEntry rst_format_parser/core$batch_mode$fn__71.class>

Mismatch: rst_format_parser/core$batch_mode$fn__93.class
Only in one jar: rst_format_parser/core$batch_mode$fn__93.class nil #<ZipEntry rst_format_parser/core$batch_mode$fn__93.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___38$fn__41.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___38$fn__41.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___38$fn__41.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__60.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__60.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__60.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__82.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__82.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__82.class>

Mismatch: rst_format_parser/tree_converter$tree2str.class
Only in one jar: rst_format_parser/tree_converter$tree2str.class nil #<ZipEntry rst_format_parser/tree_converter$tree2str.class>

Mismatch: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___63$fn__64.class
Only in one jar: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___63$fn__64.class nil #<ZipEntry rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___63$fn__64.class>

Mismatch: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___74$fn__75.class
Only in one jar: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___74$fn__75.class nil #<ZipEntry rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___74$fn__75.class>

Mismatch: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___57$fn__58.class
Binary files /tmp/clojars587348611750153681diff and /tmp/clojars5525403985766184374diff differ

Mismatch: clj_utils/io$fn__48.class
Only in one jar: clj_utils/io$fn__48.class nil #<ZipEntry clj_utils/io$fn__48.class>

Mismatch: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___64$fn__65.class
Only in one jar: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___64$fn__65.class nil #<ZipEntry rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___64$fn__65.class>

Mismatch: rst_format_parser/core$batch_mode$fn__50.class
Only in one jar: rst_format_parser/core$batch_mode$fn__50.class nil #<ZipEntry rst_format_parser/core$batch_mode$fn__50.class>

Mismatch: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___65$fn__66.class
Only in one jar: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___65$fn__66.class nil #<ZipEntry rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___65$fn__66.class>

Mismatch: rst_format_parser/core$batch_mode$fn__72.class
Only in one jar: rst_format_parser/core$batch_mode$fn__72.class nil #<ZipEntry rst_format_parser/core$batch_mode$fn__72.class>

Mismatch: rst_format_parser/core$batch_mode$fn__83.class
Only in one jar: rst_format_parser/core$batch_mode$fn__83.class nil #<ZipEntry rst_format_parser/core$batch_mode$fn__83.class>

Mismatch: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___33$fn__34.class
Only in one jar: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___33$fn__34.class nil #<ZipEntry rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___33$fn__34.class>

Mismatch: dorothy/core$dot_STAR__attrs$iter__71__75$fn__76$fn__77.class
Only in one jar: dorothy/core$dot_STAR__attrs$iter__71__75$fn__76$fn__77.class nil #<ZipEntry dorothy/core$dot_STAR__attrs$iter__71__75$fn__76$fn__77.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__61.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__61.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__61.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__83.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__83.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__83.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__94.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__94.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__94.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45$fn__46$fn__47$fn__50.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45$fn__46$fn__47$fn__50.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44$fn__45$fn__46$fn__47$fn__50.class>

Mismatch: rst_format_parser/tree_converter$tree2rhetoricaltext$fn__21.class
Only in one jar: rst_format_parser/tree_converter$tree2rhetoricaltext$fn__21.class nil #<ZipEntry rst_format_parser/tree_converter$tree2rhetoricaltext$fn__21.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___36$fn__41.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___36$fn__41.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___36$fn__41.class>

Mismatch: dorothy/core$subgraph_STAR_.class
Only in one jar: dorothy/core$subgraph_STAR_.class nil #<ZipEntry dorothy/core$subgraph_STAR_.class>

Mismatch: rst_format_parser/core$batch_mode$fn__84.class
Only in one jar: rst_format_parser/core$batch_mode$fn__84.class nil #<ZipEntry rst_format_parser/core$batch_mode$fn__84.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__62.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__62.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__62.class>

Mismatch: dorothy/core$render$fn__123.class
Only in one jar: dorothy/core$render$fn__123.class nil #<ZipEntry dorothy/core$render$fn__123.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__84.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__84.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__84.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__95.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__95.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__95.class>

Mismatch: dorothy/core$init_process_builder.class
Only in one jar: dorothy/core$init_process_builder.class nil #<ZipEntry dorothy/core$init_process_builder.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___35$fn__40.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___35$fn__40.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___35$fn__40.class>

Mismatch: rst_format_parser/tree_converter$tree2tex$fn__18.class
Only in one jar: rst_format_parser/tree_converter$tree2tex$fn__18.class nil #<ZipEntry rst_format_parser/tree_converter$tree2tex$fn__18.class>

Mismatch: rst_format_parser/tree_converter$tree2rhetoricaltext$fn__77.class
Binary files /tmp/clojars2270928289123543669diff and /tmp/clojars1282913753461431824diff differ

Mismatch: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___185.class
Only in one jar: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___185.class nil #<ZipEntry rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___185.class>

Mismatch: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___180$fn__181.class
Only in one jar: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___180$fn__181.class nil #<ZipEntry rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___180$fn__181.class>

Mismatch: rst_format_parser/core$batch_mode$fn__41.class
Only in one jar: rst_format_parser/core$batch_mode$fn__41.class nil #<ZipEntry rst_format_parser/core$batch_mode$fn__41.class>

Mismatch: rst_format_parser/core$batch_mode$fn__52.class
Only in one jar: rst_format_parser/core$batch_mode$fn__52.class nil #<ZipEntry rst_format_parser/core$batch_mode$fn__52.class>

Mismatch: clj_utils/io$with_temp_file.class
Only in one jar: clj_utils/io$with_temp_file.class nil #<ZipEntry clj_utils/io$with_temp_file.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__52.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__52.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__52.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__63.class
Binary files /tmp/clojars2425631057650532566diff and /tmp/clojars2020881184810530288diff differ

Mismatch: dorothy/core$edge.class
Only in one jar: dorothy/core$edge.class nil #<ZipEntry dorothy/core$edge.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__85.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__85.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__85.class>

Mismatch: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___34$fn__40.class
Only in one jar: rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___34$fn__40.class nil #<ZipEntry rst_format_parser/tree_converter$dependencies$dependencies_SINGLEQUOTE___34$fn__40.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__96.class
Binary files /tmp/clojars8866861340993798911diff and /tmp/clojars7107910705123547510diff differ

Mismatch: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___108$fn__109.class
Only in one jar: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___108$fn__109.class nil #<ZipEntry rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___108$fn__109.class>

Mismatch: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___81.class
Only in one jar: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___81.class nil #<ZipEntry rst_format_parser/core$leaves$leaves_SINGLEQUOTE___81.class>

Mismatch: rst_format_parser/tree_converter$tree2rhetoricaltext$fn__23.class
Only in one jar: rst_format_parser/tree_converter$tree2rhetoricaltext$fn__23.class nil #<ZipEntry rst_format_parser/tree_converter$tree2rhetoricaltext$fn__23.class>

Mismatch: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___26$fn__27.class
Only in one jar: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___26$fn__27.class nil #<ZipEntry rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___26$fn__27.class>

Mismatch: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___83$fn__84.class
Only in one jar: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___83$fn__84.class nil #<ZipEntry rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___83$fn__84.class>

Mismatch: rst_format_parser/tree_converter$node_id_with_style.class
Only in one jar: rst_format_parser/tree_converter$node_id_with_style.class nil #<ZipEntry rst_format_parser/tree_converter$node_id_with_style.class>

Mismatch: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___27$fn__28.class
Only in one jar: rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___27$fn__28.class nil #<ZipEntry rst_format_parser/tree_converter$nodes$nodes_SINGLEQUOTE___27$fn__28.class>

Mismatch: dorothy/core$desugar_graph_options.class
Only in one jar: dorothy/core$desugar_graph_options.class nil #<ZipEntry dorothy/core$desugar_graph_options.class>

Mismatch: rst_format_parser/core$filter_span$fn__49.class
Only in one jar: rst_format_parser/core$filter_span$fn__49.class nil #<ZipEntry rst_format_parser/core$filter_span$fn__49.class>

Mismatch: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___60.class
Only in one jar: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___60.class nil #<ZipEntry rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___60.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__42.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__42.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__42.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__64.class
Binary files /tmp/clojars619859640228901736diff and /tmp/clojars2247087769673090898diff differ

Mismatch: dorothy/core$render$fn__125.class
Only in one jar: dorothy/core$render$fn__125.class nil #<ZipEntry dorothy/core$render$fn__125.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__75.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__75.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__75.class>

Mismatch: dorothy/core$to_ast.class
Only in one jar: dorothy/core$to_ast.class nil #<ZipEntry dorothy/core$to_ast.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__97.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__97.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__97.class>

Mismatch: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___71.class
Only in one jar: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___71.class nil #<ZipEntry rst_format_parser/core$leaves$leaves_SINGLEQUOTE___71.class>

Mismatch: rst_format_parser/core$batch_mode$fn__53.class
Only in one jar: rst_format_parser/core$batch_mode$fn__53.class nil #<ZipEntry rst_format_parser/core$batch_mode$fn__53.class>

Mismatch: rst_format_parser/core$batch_mode$fn__64.class
Only in one jar: rst_format_parser/core$batch_mode$fn__64.class nil #<ZipEntry rst_format_parser/core$batch_mode$fn__64.class>

Mismatch: rst_format_parser/core$end_with_paragraph_marker_QMARK_.class
Only in one jar: rst_format_parser/core$end_with_paragraph_marker_QMARK_.class nil #<ZipEntry rst_format_parser/core$end_with_paragraph_marker_QMARK_.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__87.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__87.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__87.class>

Mismatch: rst_format_parser/binarizer$right_subtree_second_clause_idx.class
Only in one jar: rst_format_parser/binarizer$right_subtree_second_clause_idx.class nil #<ZipEntry rst_format_parser/binarizer$right_subtree_second_clause_idx.class>

Mismatch: rst_format_parser/binarizer__init.class
Only in one jar: rst_format_parser/binarizer__init.class nil #<ZipEntry rst_format_parser/binarizer__init.class>

Mismatch: clj_utils/io__init.class
Only in one jar: clj_utils/io__init.class nil #<ZipEntry clj_utils/io__init.class>

Mismatch: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___72.class
Only in one jar: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___72.class nil #<ZipEntry rst_format_parser/core$leaves$leaves_SINGLEQUOTE___72.class>

Mismatch: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___185$fn__186.class
Only in one jar: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___185$fn__186.class nil #<ZipEntry rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___185$fn__186.class>

Mismatch: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___180.class
Only in one jar: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___180.class nil #<ZipEntry rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___180.class>

Mismatch: dorothy/core$id_generator$fn__19.class
Only in one jar: dorothy/core$id_generator$fn__19.class nil #<ZipEntry dorothy/core$id_generator$fn__19.class>

Mismatch: rst_format_parser/core$batch_mode$fn__54.class
Only in one jar: rst_format_parser/core$batch_mode$fn__54.class nil #<ZipEntry rst_format_parser/core$batch_mode$fn__54.class>

Mismatch: rst_format_parser/core$batch_mode$fn__76.class
Only in one jar: rst_format_parser/core$batch_mode$fn__76.class nil #<ZipEntry rst_format_parser/core$batch_mode$fn__76.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__54.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__54.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__54.class>

Mismatch: rst_format_parser/rst_parser$fn__15$fn__17$fn__18.class
Binary files /tmp/clojars1740756320392365603diff and /tmp/clojars1100224731349643334diff differ

Mismatch: rst_format_parser/core$get_cli_opts$fn__65.class
Binary files /tmp/clojars1447431042707635872diff and /tmp/clojars7330473812956879495diff differ

Mismatch: rst_format_parser/binarizer$left_subtree_first_clause_idx.class
Only in one jar: rst_format_parser/binarizer$left_subtree_first_clause_idx.class nil #<ZipEntry rst_format_parser/binarizer$left_subtree_first_clause_idx.class>

Mismatch: rst_format_parser/rst_parser$fn__39.class
Only in one jar: rst_format_parser/rst_parser$fn__39.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39.class>

Mismatch: dorothy/core$edge_attrs.class
Only in one jar: dorothy/core$edge_attrs.class nil #<ZipEntry dorothy/core$edge_attrs.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__44.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__44.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__44.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__66.class
Binary files /tmp/clojars4248780853004138092diff and /tmp/clojars5028980723444728613diff differ

Mismatch: rst_format_parser/core$get_cli_opts$fn__77.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__77.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__77.class>

Mismatch: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___40.class
Only in one jar: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___40.class nil #<ZipEntry rst_format_parser/core$leaves$leaves_SINGLEQUOTE___40.class>

Mismatch: clj_utils/collection$find_first.class
Only in one jar: clj_utils/collection$find_first.class nil #<ZipEntry clj_utils/collection$find_first.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__61$fn__62.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__61$fn__62.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__61$fn__62.class>

Mismatch: rst_format_parser/core$filter_span$fn__19.class
Only in one jar: rst_format_parser/core$filter_span$fn__19.class nil #<ZipEntry rst_format_parser/core$filter_span$fn__19.class>

Mismatch: rst_format_parser/core$text_to_num$text_to_num_SINGLEQUOTE___52.class
Binary files /tmp/clojars4784170676407168538diff and /tmp/clojars6656011309991288064diff differ

Mismatch: rst_format_parser/rst_parser$fn__39$fn__61.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__61.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__61.class>

Mismatch: rst_format_parser/core$get_cli_opts$fn__67.class
Binary files /tmp/clojars5116847237482145228diff and /tmp/clojars5066981711251141621diff differ

Mismatch: rst_format_parser/core$get_cli_opts$fn__89.class
Only in one jar: rst_format_parser/core$get_cli_opts$fn__89.class nil #<ZipEntry rst_format_parser/core$get_cli_opts$fn__89.class>

Mismatch: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___52.class
Only in one jar: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___52.class nil #<ZipEntry rst_format_parser/core$leaves$leaves_SINGLEQUOTE___52.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__41$fn__42.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__41$fn__42.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__41$fn__42.class>

Mismatch: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___113.class
Only in one jar: rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___113.class nil #<ZipEntry rst_format_parser/core$leaves_text$leaves_text_SINGLEQUOTE___113.class>

Mismatch: dorothy/core$fn__92.class
Only in one jar: dorothy/core$fn__92.class nil #<ZipEntry dorothy/core$fn__92.class>

Mismatch: dorothy/core$vector_to_ast_edge.class
Only in one jar: dorothy/core$vector_to_ast_edge.class nil #<ZipEntry dorothy/core$vector_to_ast_edge.class>

Mismatch: dorothy/core$error.class
Only in one jar: dorothy/core$error.class nil #<ZipEntry dorothy/core$error.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__41$fn__42$fn__43$fn__44.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63.class>

Mismatch: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64.class
Only in one jar: rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64.class nil #<ZipEntry rst_format_parser/rst_parser$fn__39$fn__61$fn__62$fn__63$fn__64.class>

Mismatch: rst_format_parser/tree_converter$right_QMARK_.class
Binary files /tmp/clojars7050018444843627051diff and /tmp/clojars6718088142855102468diff differ

Mismatch: dorothy/core$node.class
Only in one jar: dorothy/core$node.class nil #<ZipEntry dorothy/core$node.class>

Mismatch: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___64.class
Only in one jar: rst_format_parser/core$leaves$leaves_SINGLEQUOTE___64.class nil #<ZipEntry rst_format_parser/core$leaves$leaves_SINGLEQUOTE___64.class>

Generated by Phil Hagelberg using scpaste at Wed Apr 17 14:02:27 2013. PDT. (original)