Commits

Anonymous committed 09fb1b8

First toy example

Comments (0)

Files changed (118)

+name := "scala-macros-playground"
+
+version := "0.1"
+
+organization := "me.adinapoli"
+
+scalaVersion := "2.10.0"
+
+/** Shell */
+shellPrompt := { state => System.getProperty("user.name") + "> " }
+
+shellPrompt in ThisBuild := { state => Project.extract(state).currentRef.project + "> " }
+
+/** Dependencies */
+resolvers += "snapshots-repo" at "http://scala-tools.org/repo-snapshots"
+
+resolvers += "spray repo" at "http://repo.spray.io"
+
+resolvers += "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/"
+
+resolvers += "Sonatype OSS Releases" at "http://oss.sonatype.org/content/repositories/releases/"
+
+resolvers += "Sonatype OSS Snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/"
+
+libraryDependencies <<= scalaVersion { scala_version => 
+  val scalazVersion = "7.0.0-M7"
+  Seq(
+    "org.scala-lang"       % "scala-reflect"                   % "2.10.0",
+    "org.scala-lang"       % "scala-compiler"                   % "2.10.0",
+    "com.typesafe"         % "slick_2.10"                      % "1.0.0-RC1",
+    "org.scalaz"           % "scalaz-core_2.10"                % scalazVersion
+  )
+}
+
+/** Compilation */
+javaOptions += "-Xmx2G"
+
+scalacOptions ++= Seq("-deprecation", "-unchecked", "-feature", "-language:experimental.macros")
+
+maxErrors := 20 
+
+pollInterval := 1000
+
+logBuffered := false
+
+cancelable := true

project/target/config-classes/$0962d594399e895358a0$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$0962d594399e895358a0$.class

Binary file added.

project/target/config-classes/$0962d594399e895358a0.class

Binary file added.

project/target/config-classes/$1f375108655de9632982$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$1f375108655de9632982$.class

Binary file added.

project/target/config-classes/$1f375108655de9632982.class

Binary file added.

project/target/config-classes/$37574a86bba74b9a2690$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$37574a86bba74b9a2690$.class

Binary file added.

project/target/config-classes/$37574a86bba74b9a2690.class

Binary file added.

project/target/config-classes/$37d6c5250fb9feecb6bb$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$37d6c5250fb9feecb6bb$.class

Binary file added.

project/target/config-classes/$37d6c5250fb9feecb6bb.class

Binary file added.

project/target/config-classes/$47549eb1d20efb14b80f$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$47549eb1d20efb14b80f$.class

Binary file added.

project/target/config-classes/$47549eb1d20efb14b80f.class

Binary file added.

project/target/config-classes/$574991fde9b9df33bff0$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$574991fde9b9df33bff0$.class

Binary file added.

project/target/config-classes/$574991fde9b9df33bff0.class

Binary file added.

project/target/config-classes/$5d5ecb28bfecb650907d$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$5d5ecb28bfecb650907d$.class

Binary file added.

project/target/config-classes/$5d5ecb28bfecb650907d.class

Binary file added.

project/target/config-classes/$60d0e3d8bfcd00f3222f$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$60d0e3d8bfcd00f3222f$.class

Binary file added.

project/target/config-classes/$60d0e3d8bfcd00f3222f.class

Binary file added.

project/target/config-classes/$64d1d323fac8262a4c2f$$anonfun$$sbtdef$1$$anonfun$apply$1.class

Binary file added.

project/target/config-classes/$64d1d323fac8262a4c2f$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$64d1d323fac8262a4c2f$.class

Binary file added.

project/target/config-classes/$64d1d323fac8262a4c2f.class

Binary file added.

project/target/config-classes/$85d763054570c357bb6a$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$85d763054570c357bb6a$.class

Binary file added.

project/target/config-classes/$85d763054570c357bb6a.class

Binary file added.

project/target/config-classes/$8b01d1f5938f3190e529$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$8b01d1f5938f3190e529$.class

Binary file added.

project/target/config-classes/$8b01d1f5938f3190e529.class

Binary file added.

project/target/config-classes/$927692a6b4f013c3bc31$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$927692a6b4f013c3bc31$.class

Binary file added.

project/target/config-classes/$927692a6b4f013c3bc31.class

Binary file added.

project/target/config-classes/$a83cc95afd977516d41f$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$a83cc95afd977516d41f$.class

Binary file added.

project/target/config-classes/$a83cc95afd977516d41f.class

Binary file added.

project/target/config-classes/$b5d65000917be5e3655a$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$b5d65000917be5e3655a$.class

Binary file added.

project/target/config-classes/$b5d65000917be5e3655a.class

Binary file added.

project/target/config-classes/$c7d465b64352740d3795$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$c7d465b64352740d3795$.class

Binary file added.

project/target/config-classes/$c7d465b64352740d3795.class

Binary file added.

project/target/config-classes/$c9e94baa379911215c73$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$c9e94baa379911215c73$.class

Binary file added.

project/target/config-classes/$c9e94baa379911215c73.class

Binary file added.

project/target/config-classes/$d3fb002f86cd66359e80$$anonfun$$sbtdef$1$$anonfun$apply$1.class

Binary file added.

project/target/config-classes/$d3fb002f86cd66359e80$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$d3fb002f86cd66359e80$.class

Binary file added.

project/target/config-classes/$d3fb002f86cd66359e80.class

Binary file added.

project/target/config-classes/$df466e7efdc4f8dfa363$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$df466e7efdc4f8dfa363$.class

Binary file added.

project/target/config-classes/$df466e7efdc4f8dfa363.class

Binary file added.

project/target/config-classes/$e551a8ad2d9443a6328f$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$e551a8ad2d9443a6328f$.class

Binary file added.

project/target/config-classes/$e551a8ad2d9443a6328f.class

Binary file added.

project/target/config-classes/$edf12de4e1c20b86fd40$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$edf12de4e1c20b86fd40$.class

Binary file added.

project/target/config-classes/$edf12de4e1c20b86fd40.class

Binary file added.

project/target/config-classes/$fce48fcdb68cbd2ba00c$$anonfun$$sbtdef$1.class

Binary file added.

project/target/config-classes/$fce48fcdb68cbd2ba00c$.class

Binary file added.

project/target/config-classes/$fce48fcdb68cbd2ba00c.class

Binary file added.

src/main/scala/Id.scala

+package me.adinapoli
+
+/* Simplest macro ever. */
+
+import reflect.macros.Context
+import language.experimental.macros
+
+object Id {
+  def id[T <: AnyRef](a: T): a.type = macro IdImpl.idImpl[T]
+}
+
+object IdImpl {
+  def idImpl[T](c: Context)(a: c.Expr[T]): c.Expr[T] = a
+}

src/main/scala/Main.scala

+package me.adinapoli
+
+import AssertTrue._
+
+object Main extends App {
+  assertTrue(true)
+  assertTrue(10 > 1)
+  assertTrue(true)
+  try {
+    assertTrue(false)
+  } catch {
+    case e:Throwable => println(e.toString)
+  }
+  println("Done.")
+}

src/main/scala/MyIf.scala

+package me.adinapoli
+
+/** A simple version of assert **/
+
+import reflect.macros.Context
+import language.experimental.macros
+
+object AssertTrue {
+  def assertTrue(cond: Boolean): Unit = macro AssertTrueImpl.assertTrueImpl
+}
+
+//Took here: https://github.com/retronym/macrocosm
+object AssertTrueImpl {
+  def assertTrueImpl(c: Context)(cond: c.Expr[Boolean]): c.Expr[Unit] = {
+    import c.universe._
+    val condCode = c.Expr[String](Literal(Constant(show(cond.tree))))
+    c.universe.reify {
+      assert(cond.splice, condCode.splice)
+      ()
+    }
+  }
+
+
+}
+compile
+:q
+~compile
+sbt run
+run

target/resolution-cache/me.adinapoli/scala-macros-playground_2.10/0.1/resolved.xml.properties

+#me.adinapoli#scala-macros-playground_2.10;0.1 resolved revisions
+#Sat Jan 19 12:13:20 GMT 2013
++revision\:\#@\#\:+2.10.0\:\#@\#\:+module\:\#@\#\:+scala-compiler\:\#@\#\:+organisation\:\#@\#\:+org.scala-lang\:\#@\#\:+branch\:\#@\#\:+@\#\:NULL\:\#@\:\#@\#\:=2.10.0 release 2.10.0
++revision\:\#@\#\:+2.10.0\:\#@\#\:+module\:\#@\#\:+scala-reflect\:\#@\#\:+organisation\:\#@\#\:+org.scala-lang\:\#@\#\:+branch\:\#@\#\:+@\#\:NULL\:\#@\:\#@\#\:=2.10.0 release 2.10.0
++revision\:\#@\#\:+7.0.0-M7\:\#@\#\:+module\:\#@\#\:+scalaz-core_2.10\:\#@\#\:+organisation\:\#@\#\:+org.scalaz\:\#@\#\:+branch\:\#@\#\:+@\#\:NULL\:\#@\:\#@\#\:=7.0.0-M7 release 7.0.0-M7
++revision\:\#@\#\:+1.0.0-RC1\:\#@\#\:+module\:\#@\#\:+slick_2.10\:\#@\#\:+organisation\:\#@\#\:+com.typesafe\:\#@\#\:+branch\:\#@\#\:+@\#\:NULL\:\#@\:\#@\#\:=1.0.0-RC1 release 1.0.0-RC1

target/resolution-cache/me.adinapoli/scala-macros-playground_2.10/0.1/resolved.xml.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
+	<info organisation="me.adinapoli"
+		module="scala-macros-playground_2.10"
+		revision="0.1"
+		status="integration"
+		publication="20130119121319"
+	>
+		<description>
+		scala-macros-playground
+		</description>
+	</info>
+	<configurations>
+		<conf name="compile" visibility="public" description=""/>
+		<conf name="runtime" visibility="public" description="" extends="compile"/>
+		<conf name="test" visibility="public" description="" extends="runtime"/>
+		<conf name="provided" visibility="public" description=""/>
+		<conf name="optional" visibility="public" description=""/>
+		<conf name="compile-internal" visibility="private" description="" extends="compile,optional,provided"/>
+		<conf name="runtime-internal" visibility="private" description="" extends="runtime,optional"/>
+		<conf name="test-internal" visibility="private" description="" extends="test,optional,provided"/>
+		<conf name="plugin" visibility="private" description=""/>
+		<conf name="sources" visibility="public" description=""/>
+		<conf name="docs" visibility="public" description=""/>
+		<conf name="pom" visibility="public" description=""/>
+	</configurations>
+	<publications>
+		<artifact name="scala-macros-playground_2.10" type="pom" ext="pom" conf="pom"/>
+		<artifact name="scala-macros-playground_2.10" type="jar" ext="jar" conf="compile"/>
+		<artifact name="scala-macros-playground_2.10" type="src" ext="jar" conf="sources" e:classifier="sources"/>
+		<artifact name="scala-macros-playground_2.10" type="doc" ext="jar" conf="docs" e:classifier="javadoc"/>
+	</publications>
+	<dependencies>
+		<dependency org="org.scala-lang" name="scala-reflect" rev="2.10.0" conf="compile->default(compile)"/>
+		<dependency org="org.scala-lang" name="scala-compiler" rev="2.10.0" conf="compile->default(compile)"/>
+		<dependency org="com.typesafe" name="slick_2.10" rev="1.0.0-RC1" conf="compile->default(compile)"/>
+		<dependency org="org.scalaz" name="scalaz-core_2.10" rev="7.0.0-M7" conf="compile->default(compile)"/>
+		<exclude org="org.scala-lang" module="scala-library" artifact="*" type="jar" ext="*" matcher="exact"/>
+		<exclude org="org.scala-lang" module="scala-compiler" artifact="*" type="jar" ext="*" matcher="exact"/>
+		<override org="org.scala-lang" module="scala-library" matcher="exact" rev="2.10.0"/>
+		<override org="org.scala-lang" module="scala-compiler" matcher="exact" rev="2.10.0"/>
+	</dependencies>
+</ivy-module>

target/resolution-cache/reports/me.adinapoli-scala-macros-playground_2.10/compile-internal-resolved.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="ivy-report.xsl"?>
+<ivy-report version="1.0">
+	<info
+		organisation="me.adinapoli"
+		module="scala-macros-playground_2.10"
+		revision="0.1"
+		conf="compile-internal"
+		confs="compile, runtime, test, provided, optional, compile-internal, runtime-internal, test-internal, plugin, sources, docs, pom"
+		date="20130119121320"/>
+	<dependencies>
+		<module organisation="org.scalaz" name="scalaz-core_2.10">
+			<revision name="7.0.0-M7" status="release" pubdate="20121223151403" resolver="Typesafe Repository" artresolver="Typesafe Repository" homepage="http://scalaz.org" downloaded="false" searched="false" default="false" conf="default(compile), default, compile, runtime, master" position="5">
+				<license name="BSD-style" url="http://www.opensource.org/licenses/bsd-license.php"/>
+				<metadata-artifact status="no" details="" size="2517" time="0" location="/Users/adinapoli/.ivy2/cache/org.scalaz/scalaz-core_2.10/ivy-7.0.0-M7.xml" searched="false" origin-is-local="false" origin-location="http://repo.typesafe.com/typesafe/releases/org/scalaz/scalaz-core_2.10/7.0.0-M7/scalaz-core_2.10-7.0.0-M7.pom"/>
+				<caller organisation="me.adinapoli" name="scala-macros-playground_2.10" conf="optional, compile, provided, compile-internal" rev="7.0.0-M7" rev-constraint-default="7.0.0-M7" rev-constraint-dynamic="7.0.0-M7" callerrev="0.1"/>
+				<artifacts>
+					<artifact name="scalaz-core_2.10" type="bundle" ext="jar" status="no" details="" size="8724202" time="0" location="/Users/adinapoli/.ivy2/cache/org.scalaz/scalaz-core_2.10/bundles/scalaz-core_2.10-7.0.0-M7.jar">
+						<origin-location is-local="false" location="http://repo.typesafe.com/typesafe/releases/org/scalaz/scalaz-core_2.10/7.0.0-M7/scalaz-core_2.10-7.0.0-M7.jar"/>
+					</artifact>
+				</artifacts>
+			</revision>
+		</module>
+		<module organisation="com.typesafe" name="slick_2.10">
+			<revision name="1.0.0-RC1" status="release" pubdate="20121221170026" resolver="Typesafe Repository" artresolver="Typesafe Repository" homepage="http://slick.typesafe.com" downloaded="false" searched="false" default="false" conf="default(compile), default, compile, runtime, master" position="3">
+				<license name="Two-clause BSD-style license" url="http://github.com/slick/slick/blob/master/LICENSE.txt"/>
+				<metadata-artifact status="no" details="" size="2837" time="0" location="/Users/adinapoli/.ivy2/cache/com.typesafe/slick_2.10/ivy-1.0.0-RC1.xml" searched="false" origin-is-local="false" origin-location="http://repo.typesafe.com/typesafe/releases/com/typesafe/slick_2.10/1.0.0-RC1/slick_2.10-1.0.0-RC1.pom"/>
+				<caller organisation="me.adinapoli" name="scala-macros-playground_2.10" conf="optional, compile, provided, compile-internal" rev="1.0.0-RC1" rev-constraint-default="1.0.0-RC1" rev-constraint-dynamic="1.0.0-RC1" callerrev="0.1"/>
+				<artifacts>
+					<artifact name="slick_2.10" type="jar" ext="jar" status="no" details="" size="2761598" time="0" location="/Users/adinapoli/.ivy2/cache/com.typesafe/slick_2.10/jars/slick_2.10-1.0.0-RC1.jar">
+						<origin-location is-local="false" location="http://repo.typesafe.com/typesafe/releases/com/typesafe/slick_2.10/1.0.0-RC1/slick_2.10-1.0.0-RC1.jar"/>
+					</artifact>
+				</artifacts>
+			</revision>
+		</module>
+		<module organisation="org.slf4j" name="slf4j-api">
+			<revision name="1.6.4" status="release" pubdate="20121011083657" resolver="Typesafe Repository" artresolver="Typesafe Repository" homepage="http://www.slf4j.org" downloaded="false" searched="false" default="false" conf="compile, master(*), runtime, compile(*), runtime(*), master" position="4">
+				<metadata-artifact status="no" details="" size="4338" time="0" location="/Users/adinapoli/.ivy2/cache/org.slf4j/slf4j-api/ivy-1.6.4.xml" searched="false" origin-is-local="false" origin-location="http://repo.typesafe.com/typesafe/releases/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4.pom"/>
+				<caller organisation="com.typesafe" name="slick_2.10" conf="default, compile, runtime, master" rev="1.6.4" rev-constraint-default="1.6.4" rev-constraint-dynamic="1.6.4" callerrev="1.0.0-RC1"/>
+				<artifacts>
+					<artifact name="slf4j-api" type="jar" ext="jar" status="no" details="" size="25962" time="0" location="/Users/adinapoli/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.6.4.jar">
+						<origin-location is-local="false" location="http://repo.typesafe.com/typesafe/releases/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4.jar"/>
+					</artifact>
+				</artifacts>
+			</revision>
+		</module>
+		<module organisation="org.scala-lang" name="scala-compiler">
+			<revision name="2.10.0" status="release" pubdate="20121220072948" resolver="sbt-chain" artresolver="sbt-chain" homepage="http://www.scala-lang.org/" downloaded="false" searched="false" default="false" conf="default(compile), default, compile, master(*), compile(*), runtime, runtime(*), master" position="2">
+				<license name="BSD-like" url="http://www.scala-lang.org/downloads/license.html    "/>
+				<metadata-artifact status="no" details="" size="2809" time="0" location="/Users/adinapoli/.ivy2/cache/org.scala-lang/scala-compiler/ivy-2.10.0.xml" searched="false" origin-is-local="false" origin-location="http://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.10.0/scala-compiler-2.10.0.pom"/>
+				<caller organisation="com.typesafe" name="slick_2.10" conf="default, compile, runtime, master" rev="2.10.0" rev-constraint-default="2.10.0" rev-constraint-dynamic="2.10.0" callerrev="1.0.0-RC1"/>
+				<caller organisation="me.adinapoli" name="scala-macros-playground_2.10" conf="optional, compile, provided, compile-internal" rev="2.10.0" rev-constraint-default="2.10.0" rev-constraint-dynamic="2.10.0" callerrev="0.1"/>
+				<artifacts>
+				</artifacts>
+			</revision>
+		</module>
+		<module organisation="org.scala-lang" name="scala-reflect">
+			<revision name="2.10.0" status="release" pubdate="20121220072932" resolver="sbt-chain" artresolver="sbt-chain" homepage="http://www.scala-lang.org/" downloaded="false" searched="false" default="false" conf="default(compile), default, compile, master(*), compile(*), runtime, runtime(*), master" position="0">
+				<license name="BSD-like" url="http://www.scala-lang.org/downloads/license.html    "/>
+				<metadata-artifact status="no" details="" size="2552" time="0" location="/Users/adinapoli/.ivy2/cache/org.scala-lang/scala-reflect/ivy-2.10.0.xml" searched="false" origin-is-local="false" origin-location="http://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.10.0/scala-reflect-2.10.0.pom"/>
+				<caller organisation="me.adinapoli" name="scala-macros-playground_2.10" conf="optional, compile, provided, compile-internal" rev="2.10.0" rev-constraint-default="2.10.0" rev-constraint-dynamic="2.10.0" callerrev="0.1"/>
+				<caller organisation="org.scala-lang" name="scala-compiler" conf="default, compile, runtime, master" rev="2.10.0" rev-constraint-default="2.10.0" rev-constraint-dynamic="2.10.0" callerrev="2.10.0"/>
+				<artifacts>
+					<artifact name="scala-reflect" type="jar" ext="jar" status="no" details="" size="3149351" time="0" location="/Users/adinapoli/.ivy2/cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.10.0.jar">
+						<origin-location is-local="false" location="http://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.10.0/scala-reflect-2.10.0.jar"/>
+					</artifact>
+				</artifacts>
+			</revision>
+		</module>
+		<module organisation="org.scala-lang" name="scala-library">
+			<revision name="2.10.0" status="release" pubdate="20121220072916" resolver="sbt-chain" artresolver="sbt-chain" homepage="http://www.scala-lang.org/" downloaded="false" searched="false" default="false" conf="compile, master(*), runtime, compile(*), runtime(*), master" position="1">
+				<license name="BSD-like" url="http://www.scala-lang.org/downloads/license.html          "/>
+				<metadata-artifact status="no" details="" size="2392" time="0" location="/Users/adinapoli/.ivy2/cache/org.scala-lang/scala-library/ivy-2.10.0.xml" searched="false" origin-is-local="false" origin-location="http://repo1.maven.org/maven2/org/scala-lang/scala-library/2.10.0/scala-library-2.10.0.pom"/>
+				<caller organisation="org.scalaz" name="scalaz-core_2.10" conf="default, compile, runtime, master" rev="2.10.0" rev-constraint-default="2.10.0" rev-constraint-dynamic="2.10.0" callerrev="7.0.0-M7"/>
+				<caller organisation="org.scala-lang" name="scala-reflect" conf="default, compile, runtime, master" rev="2.10.0" rev-constraint-default="2.10.0" rev-constraint-dynamic="2.10.0" callerrev="2.10.0"/>
+				<caller organisation="com.typesafe" name="slick_2.10" conf="default, compile, runtime, master" rev="2.10.0" rev-constraint-default="2.10.0" rev-constraint-dynamic="2.10.0" callerrev="1.0.0-RC1"/>
+				<caller organisation="org.scala-lang" name="scala-compiler" conf="default, compile, runtime, master" rev="2.10.0" rev-constraint-default="2.10.0" rev-constraint-dynamic="2.10.0" callerrev="2.10.0"/>
+				<artifacts>
+				</artifacts>
+			</revision>
+		</module>
+	</dependencies>
+</ivy-report>

target/resolution-cache/reports/me.adinapoli-scala-macros-playground_2.10/compile-resolved.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="ivy-report.xsl"?>
+<ivy-report version="1.0">
+	<info
+		organisation="me.adinapoli"
+		module="scala-macros-playground_2.10"
+		revision="0.1"
+		conf="compile"
+		confs="compile, runtime, test, provided, optional, compile-internal, runtime-internal, test-internal, plugin, sources, docs, pom"
+		date="20130119121320"/>
+	<dependencies>
+		<module organisation="org.scalaz" name="scalaz-core_2.10">
+			<revision name="7.0.0-M7" status="release" pubdate="20121223151403" resolver="Typesafe Repository" artresolver="Typesafe Repository" homepage="http://scalaz.org" downloaded="false" searched="false" default="false" conf="default(compile), default, compile, runtime, master" position="5">
+				<license name="BSD-style" url="http://www.opensource.org/licenses/bsd-license.php"/>
+				<metadata-artifact status="no" details="" size="2517" time="0" location="/Users/adinapoli/.ivy2/cache/org.scalaz/scalaz-core_2.10/ivy-7.0.0-M7.xml" searched="false" origin-is-local="false" origin-location="http://repo.typesafe.com/typesafe/releases/org/scalaz/scalaz-core_2.10/7.0.0-M7/scalaz-core_2.10-7.0.0-M7.pom"/>
+				<caller organisation="me.adinapoli" name="scala-macros-playground_2.10" conf="compile" rev="7.0.0-M7" rev-constraint-default="7.0.0-M7" rev-constraint-dynamic="7.0.0-M7" callerrev="0.1"/>
+				<artifacts>
+					<artifact name="scalaz-core_2.10" type="bundle" ext="jar" status="no" details="" size="8724202" time="0" location="/Users/adinapoli/.ivy2/cache/org.scalaz/scalaz-core_2.10/bundles/scalaz-core_2.10-7.0.0-M7.jar">
+						<origin-location is-local="false" location="http://repo.typesafe.com/typesafe/releases/org/scalaz/scalaz-core_2.10/7.0.0-M7/scalaz-core_2.10-7.0.0-M7.jar"/>
+					</artifact>
+				</artifacts>
+			</revision>
+		</module>
+		<module organisation="com.typesafe" name="slick_2.10">
+			<revision name="1.0.0-RC1" status="release" pubdate="20121221170026" resolver="Typesafe Repository" artresolver="Typesafe Repository" homepage="http://slick.typesafe.com" downloaded="false" searched="false" default="false" conf="default(compile), default, compile, runtime, master" position="3">
+				<license name="Two-clause BSD-style license" url="http://github.com/slick/slick/blob/master/LICENSE.txt"/>
+				<metadata-artifact status="no" details="" size="2837" time="0" location="/Users/adinapoli/.ivy2/cache/com.typesafe/slick_2.10/ivy-1.0.0-RC1.xml" searched="false" origin-is-local="false" origin-location="http://repo.typesafe.com/typesafe/releases/com/typesafe/slick_2.10/1.0.0-RC1/slick_2.10-1.0.0-RC1.pom"/>
+				<caller organisation="me.adinapoli" name="scala-macros-playground_2.10" conf="compile" rev="1.0.0-RC1" rev-constraint-default="1.0.0-RC1" rev-constraint-dynamic="1.0.0-RC1" callerrev="0.1"/>
+				<artifacts>
+					<artifact name="slick_2.10" type="jar" ext="jar" status="no" details="" size="2761598" time="0" location="/Users/adinapoli/.ivy2/cache/com.typesafe/slick_2.10/jars/slick_2.10-1.0.0-RC1.jar">
+						<origin-location is-local="false" location="http://repo.typesafe.com/typesafe/releases/com/typesafe/slick_2.10/1.0.0-RC1/slick_2.10-1.0.0-RC1.jar"/>
+					</artifact>
+				</artifacts>
+			</revision>
+		</module>
+		<module organisation="org.slf4j" name="slf4j-api">
+			<revision name="1.6.4" status="release" pubdate="20121011083657" resolver="Typesafe Repository" artresolver="Typesafe Repository" homepage="http://www.slf4j.org" downloaded="false" searched="false" default="false" conf="compile, master(*), runtime, compile(*), runtime(*), master" position="4">
+				<metadata-artifact status="no" details="" size="4338" time="0" location="/Users/adinapoli/.ivy2/cache/org.slf4j/slf4j-api/ivy-1.6.4.xml" searched="false" origin-is-local="false" origin-location="http://repo.typesafe.com/typesafe/releases/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4.pom"/>
+				<caller organisation="com.typesafe" name="slick_2.10" conf="default, compile, runtime, master" rev="1.6.4" rev-constraint-default="1.6.4" rev-constraint-dynamic="1.6.4" callerrev="1.0.0-RC1"/>
+				<artifacts>
+					<artifact name="slf4j-api" type="jar" ext="jar" status="no" details="" size="25962" time="0" location="/Users/adinapoli/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.6.4.jar">
+						<origin-location is-local="false" location="http://repo.typesafe.com/typesafe/releases/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4.jar"/>
+					</artifact>
+				</artifacts>
+			</revision>
+		</module>
+		<module organisation="org.scala-lang" name="scala-compiler">
+			<revision name="2.10.0" status="release" pubdate="20121220072948" resolver="sbt-chain" artresolver="sbt-chain" homepage="http://www.scala-lang.org/" downloaded="false" searched="false" default="false" conf="default(compile), default, compile, master(*), compile(*), runtime, runtime(*), master" position="2">
+				<license name="BSD-like" url="http://www.scala-lang.org/downloads/license.html    "/>
+				<metadata-artifact status="no" details="" size="2809" time="0" location="/Users/adinapoli/.ivy2/cache/org.scala-lang/scala-compiler/ivy-2.10.0.xml" searched="false" origin-is-local="false" origin-location="http://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.10.0/scala-compiler-2.10.0.pom"/>
+				<caller organisation="com.typesafe" name="slick_2.10" conf="default, compile, runtime, master" rev="2.10.0" rev-constraint-default="2.10.0" rev-constraint-dynamic="2.10.0" callerrev="1.0.0-RC1"/>
+				<caller organisation="me.adinapoli" name="scala-macros-playground_2.10" conf="compile" rev="2.10.0" rev-constraint-default="2.10.0" rev-constraint-dynamic="2.10.0" callerrev="0.1"/>
+				<artifacts>
+				</artifacts>
+			</revision>
+		</module>
+		<module organisation="org.scala-lang" name="scala-reflect">
+			<revision name="2.10.0" status="release" pubdate="20121220072932" resolver="sbt-chain" artresolver="sbt-chain" homepage="http://www.scala-lang.org/" downloaded="false" searched="false" default="false" conf="default(compile), default, compile, master(*), compile(*), runtime, runtime(*), master" position="0">
+				<license name="BSD-like" url="http://www.scala-lang.org/downloads/license.html    "/>
+				<metadata-artifact status="no" details="" size="2552" time="0" location="/Users/adinapoli/.ivy2/cache/org.scala-lang/scala-reflect/ivy-2.10.0.xml" searched="false" origin-is-local="false" origin-location="http://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.10.0/scala-reflect-2.10.0.pom"/>
+				<caller organisation="me.adinapoli" name="scala-macros-playground_2.10" conf="compile" rev="2.10.0" rev-constraint-default="2.10.0" rev-constraint-dynamic="2.10.0" callerrev="0.1"/>
+				<caller organisation="org.scala-lang" name="scala-compiler" conf="default, compile, runtime, master" rev="2.10.0" rev-constraint-default="2.10.0" rev-constraint-dynamic="2.10.0" callerrev="2.10.0"/>
+				<artifacts>
+					<artifact name="scala-reflect" type="jar" ext="jar" status="no" details="" size="3149351" time="0" location="/Users/adinapoli/.ivy2/cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.10.0.jar">
+						<origin-location is-local="false" location="http://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.10.0/scala-reflect-2.10.0.jar"/>
+					</artifact>
+				</artifacts>
+			</revision>
+		</module>
+		<module organisation="org.scala-lang" name="scala-library">
+			<revision name="2.10.0" status="release" pubdate="20121220072916" resolver="sbt-chain" artresolver="sbt-chain" homepage="http://www.scala-lang.org/" downloaded="false" searched="false" default="false" conf="compile, master(*), runtime, compile(*), runtime(*), master" position="1">
+				<license name="BSD-like" url="http://www.scala-lang.org/downloads/license.html          "/>
+				<metadata-artifact status="no" details="" size="2392" time="0" location="/Users/adinapoli/.ivy2/cache/org.scala-lang/scala-library/ivy-2.10.0.xml" searched="false" origin-is-local="false" origin-location="http://repo1.maven.org/maven2/org/scala-lang/scala-library/2.10.0/scala-library-2.10.0.pom"/>
+				<caller organisation="org.scalaz" name="scalaz-core_2.10" conf="default, compile, runtime, master" rev="2.10.0" rev-constraint-default="2.10.0" rev-constraint-dynamic="2.10.0" callerrev="7.0.0-M7"/>
+				<caller organisation="org.scala-lang" name="scala-reflect" conf="default, compile, runtime, master" rev="2.10.0" rev-constraint-default="2.10.0" rev-constraint-dynamic="2.10.0" callerrev="2.10.0"/>
+				<caller organisation="com.typesafe" name="slick_2.10" conf="default, compile, runtime, master" rev="2.10.0" rev-constraint-default="2.10.0" rev-constraint-dynamic="2.10.0" callerrev="1.0.0-RC1"/>
+				<caller organisation="org.scala-lang" name="scala-compiler" conf="default, compile, runtime, master" rev="2.10.0" rev-constraint-default="2.10.0" rev-constraint-dynamic="2.10.0" callerrev="2.10.0"/>
+				<artifacts>
+				</artifacts>
+			</revision>
+		</module>
+	</dependencies>
+</ivy-report>

target/resolution-cache/reports/me.adinapoli-scala-macros-playground_2.10/docs-resolved.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="ivy-report.xsl"?>
+<ivy-report version="1.0">
+	<info
+		organisation="me.adinapoli"
+		module="scala-macros-playground_2.10"
+		revision="0.1"
+		conf="docs"
+		confs="compile, runtime, test, provided, optional, compile-internal, runtime-internal, test-internal, plugin, sources, docs, pom"
+		date="20130119121320"/>
+	<dependencies>
+	</dependencies>
+</ivy-report>

target/resolution-cache/reports/me.adinapoli-scala-macros-playground_2.10/ivy-report.css

+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+ 
+body {
+	font-family:"Trebuchet MS",Verdana,Geneva,Arial,Helvetica,sans-serif;
+	font-size:small; 
+}
+
+div#logo {
+    float: right; 
+    padding-left: 10px; 
+    padding-bottom: 10px; 
+    background: white;
+    text-align: center;
+}
+
+#logo img {
+	border: 0;
+}
+
+div#date {
+	font-style:     italic;
+	padding-left:	60px;
+    padding-bottom: 40px; 
+}
+
+
+h1 {
+    margin-bottom:2px;
+    
+	border-color:#7A9437;
+	border-style:solid;
+	border-width:0 0 3px 0;
+}
+
+span#module {
+	color:#7A9437;
+	text-decoration:none;
+}
+
+span#organisation {
+	color:black;
+	text-decoration:none;
+}
+
+#confmenu {
+	color: #000;
+	border-bottom: 2px solid black;
+	margin: 12px 0px 0px 0px;
+	padding: 0px;
+	z-index: 1;
+	padding-left: 10px 
+}
+
+#confmenu li {
+	display: inline;
+	overflow: hidden;
+	list-style-type: none; 
+}
+
+#confmenu a, a.active {
+	color: #DEDECF;
+	background: #898B5E;
+	font: bold 1em "Trebuchet MS", Arial, sans-serif;
+	border: 2px solid black;
+	padding: 2px 5px 0px 5px;
+	text-decoration: none; 
+}
+
+/*
+background: #ABAD85 #CED4BD
+background: #DEE4CD
+ */
+
+#confmenu a.active {
+	color: #7A9437;
+	background: #DEE4CD;
+	border-bottom: 3px solid #DEE4CD;
+}
+
+#confmenu a:hover {
+	color: #fff;
+	background: #ADC09F; 
+}
+
+#confmenu a:visited {
+	color: #DEDECF; 
+}
+
+#confmenu a.active:visited {
+	color: #7A9437; 
+}
+
+#confmenu a.active:hover {
+	background: #DEE4CD;
+	color: #DEDECF; 
+}
+
+#content {
+	background: #DEE4CD;
+	padding: 20px;
+	border: 2px solid black;
+	border-top: none;
+	z-index: 2;	
+}
+
+#content a {
+	text-decoration: none;
+	color: #E8E9BE; 
+}
+
+#content a:hover { 
+  background: #898B5E; 
+}
+
+
+h2 {
+    margin-bottom:2px;
+    font-size:medium;
+    
+    border-color:#7A9437;
+    border-style:solid;
+    border-width:0 0 2px 0;
+}
+
+h3 {
+    margin-top:30px;
+    margin-bottom:2px;
+    padding: 5 5 5 0;
+    font-size: 24px;
+    border-style:solid;
+    border-width:0 0 2px 0;
+}
+
+h4 {
+    margin-bottom:2px;
+    margin-top:2px;
+    font-size:medium;
+    
+    border-color:#7A9437;
+    border-style:dashed;
+    border-width:0 0 1px 0;
+}
+
+h5 {
+    margin-bottom:2px;
+    margin-top:2px;
+    margin-left:20px;
+    font-size:medium;
+}
+
+span.resolved {
+	padding-left: 15px;
+	font-weight: 500;
+	font-size: small;
+}
+
+
+#content table  {
+	border-collapse:collapse;
+	width:90%;
+	margin:auto;
+	margin-top: 5px;
+}
+#content thead {
+	background-color:#CED4BD;
+	border:1px solid #7A9437;
+}
+#content tbody {
+	border-collapse:collapse;
+	background-color:#FFFFFF;
+	border:1px solid #7A9437;
+}
+
+#content th {
+	font-family:monospace;
+	border:1px solid #7A9437;
+	padding:5px;
+}
+
+#content td {
+	border:1px dotted #7A9437;
+	padding:0 3 0 3;
+}
+
+#content table a {
+	color:#7A9437;
+	text-decoration:none;
+}
+
+#content table a:hover {
+	background-color:#CED4BD;
+	color:#7A9437;
+}
+
+
+
+table.deps  {
+	border-collapse:collapse;
+	width:90%;
+	margin:auto;
+	margin-top: 5px;
+}
+
+table.deps thead {
+	background-color:#CED4BD;
+	border:1px solid #7A9437;
+}
+table.deps tbody {
+	border-collapse:collapse;
+	background-color:#FFFFFF;
+	border:1px solid #7A9437;
+}
+
+table.deps th {
+	font-family:monospace;
+	border:1px solid #7A9437;
+	padding:2;
+}
+
+table.deps td {
+	border:1px dotted #7A9437;
+	padding:0 3 0 3;
+}
+
+
+
+
+
+table.header  {
+	border:0;
+	width:90%;
+	margin:auto;
+	margin-top: 5px;
+}
+
+table.header thead {
+	border:0;
+}
+table.header tbody {
+	border:0;
+}
+table.header tr {
+	padding:0px;
+	border:0;
+}
+table.header td {
+	padding:0 3 0 3;
+	border:0;
+}
+
+td.title {
+    width:150px;
+    margin-right:15px;
+
+	font-size:small;
+	font-weight:700;
+}
+
+td.title:first-letter {
+	color:#7A9437;
+	background-color:transparent;
+}
+

target/resolution-cache/reports/me.adinapoli-scala-macros-playground_2.10/ivy-report.xsl

+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.    
+-->
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:param name="confs"    select="/ivy-report/info/@confs"/>
+<xsl:param name="extension"    select="'xml'"/>
+
+<xsl:variable name="myorg"    select="/ivy-report/info/@organisation"/>
+<xsl:variable name="mymod"    select="/ivy-report/info/@module"/>
+<xsl:variable name="myconf"   select="/ivy-report/info/@conf"/>
+
+<xsl:variable name="modules"    select="/ivy-report/dependencies/module"/>
+<xsl:variable name="conflicts"    select="$modules[count(revision) > 1]"/>
+
+<xsl:variable name="revisions"  select="$modules/revision"/>
+<xsl:variable name="evicteds"   select="$revisions[@evicted]"/>
+<xsl:variable name="downloadeds"   select="$revisions[@downloaded='true']"/>
+<xsl:variable name="searcheds"   select="$revisions[@searched='true']"/>
+<xsl:variable name="errors"   select="$revisions[@error]"/>
+
+<xsl:variable name="artifacts"   select="$revisions/artifacts/artifact"/>
+<xsl:variable name="cacheartifacts" select="$artifacts[@status='no']"/>
+<xsl:variable name="dlartifacts" select="$artifacts[@status='successful']"/>
+<xsl:variable name="faileds" select="$artifacts[@status='failed']"/>
+<xsl:variable name="artifactsok" select="$artifacts[@status!='failed']"/>
+
+<xsl:template name="calling">
+    <xsl:param name="org" />
+    <xsl:param name="mod" />
+    <xsl:param name="rev" />
+    <xsl:if test="count($modules/revision/caller[(@organisation=$org and @name=$mod) and @callerrev=$rev]) = 0">
+    <table><tr><td>
+    No dependency
+    </td></tr></table>
+    </xsl:if>
+    <xsl:if test="count($modules/revision/caller[(@organisation=$org and @name=$mod) and @callerrev=$rev]) > 0">
+    <table class="deps">
+      <thead>
+      <tr>
+        <th>Module</th>
+        <th>Revision</th>
+        <th>Status</th>
+        <th>Resolver</th>
+        <th>Default</th>
+        <th>Licenses</th>
+        <th>Size</th>
+        <th></th>
+      </tr>
+      </thead>
+      <tbody>
+        <xsl:for-each select="$modules/revision/caller[(@organisation=$org and @name=$mod) and @callerrev=$rev]">
+          <xsl:call-template name="called">
+            <xsl:with-param name="callstack"     select="concat($org, string('/'), $mod)"/>
+            <xsl:with-param name="indent"        select="string('')"/>
+            <xsl:with-param name="revision"      select=".."/>
+          </xsl:call-template>
+        </xsl:for-each>   
+      </tbody>
+    </table>
+    </xsl:if>
+</xsl:template>
+
+<xsl:template name="called">
+    <xsl:param name="callstack"/>
+    <xsl:param name="indent"/>
+    <xsl:param name="revision"/>
+
+    <xsl:param name="organisation" select="$revision/../@organisation"/>
+    <xsl:param name="module" select="$revision/../@name"/>
+    <xsl:param name="rev" select="$revision/@name"/>
+    <xsl:param name="resolver" select="$revision/@resolver"/>
+    <xsl:param name="isdefault" select="$revision/@default"/>
+    <xsl:param name="status" select="$revision/@status"/>
+    <tr>
+    <td>
+       <xsl:element name="a">
+         <xsl:attribute name="href">#<xsl:value-of select="$organisation"/>-<xsl:value-of select="$module"/></xsl:attribute>
+         <xsl:value-of select="concat($indent, ' ')"/>
+         <xsl:value-of select="$module"/>
+         by
+         <xsl:value-of select="$organisation"/>
+       </xsl:element>
+    </td>
+    <td>
+       <xsl:element name="a">
+         <xsl:attribute name="href">#<xsl:value-of select="$organisation"/>-<xsl:value-of select="$module"/>-<xsl:value-of select="$rev"/></xsl:attribute>
+         <xsl:value-of select="$rev"/>
+       </xsl:element>
+    </td>
+    <td align="center">
+         <xsl:value-of select="$status"/>
+    </td>
+    <td align="center">
+         <xsl:value-of select="$resolver"/>
+    </td>
+    <td align="center">
+         <xsl:value-of select="$isdefault"/>
+    </td>
+    <td align="center">
+      <xsl:call-template name="licenses">
+        <xsl:with-param name="revision"      select="$revision"/>
+      </xsl:call-template>
+    </td>
+    <td align="center">
+      <xsl:value-of select="round(sum($revision/artifacts/artifact/@size) div 1024)"/> kB
+    </td>
+    <td align="center">
+          <xsl:call-template name="icons">
+            <xsl:with-param name="revision"      select="$revision"/>
+          </xsl:call-template>
+    </td>
+    </tr>
+    <xsl:if test="not($revision/@evicted)">
+    <xsl:if test="not(contains($callstack, concat($organisation, string('/'), $module)))">
+    <xsl:for-each select="$modules/revision/caller[(@organisation=$organisation and @name=$module) and @callerrev=$rev]">
+          <xsl:call-template name="called">
+            <xsl:with-param name="callstack"     select="concat($callstack, string('#'), $organisation, string('/'), $module)"/>
+            <xsl:with-param name="indent"        select="concat($indent, string('---'))"/>
+            <xsl:with-param name="revision"      select=".."/>
+          </xsl:call-template>
+    </xsl:for-each>   
+    </xsl:if>
+    </xsl:if>
+</xsl:template>
+
+<xsl:template name="licenses">
+      <xsl:param name="revision"/>
+      <xsl:for-each select="$revision/license">
+      	<span style="padding-right:3px;">
+      	<xsl:if test="@url">
+  	        <xsl:element name="a">
+  	            <xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
+  		    	<xsl:value-of select="@name"/>
+  	        </xsl:element>
+      	</xsl:if>
+      	<xsl:if test="not(@url)">
+  		    	<xsl:value-of select="@name"/>
+      	</xsl:if>
+      	</span>
+      </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="icons">
+    <xsl:param name="revision"/>
+    <xsl:if test="$revision/@searched = 'true'">
+         <img src="http://ant.apache.org/ivy/images/searched.gif" alt="searched" title="required a search in repository"/>
+    </xsl:if>
+    <xsl:if test="$revision/@downloaded = 'true'">
+         <img src="http://ant.apache.org/ivy/images/downloaded.gif" alt="downloaded" title="downloaded from repository"/>
+    </xsl:if>
+    <xsl:if test="$revision/@evicted">
+        <xsl:element name="img">
+            <xsl:attribute name="src">http://ant.apache.org/ivy/images/evicted.gif</xsl:attribute>
+            <xsl:attribute name="alt">evicted</xsl:attribute>
+            <xsl:attribute name="title">evicted by <xsl:for-each select="$revision/evicted-by"><xsl:value-of select="@rev"/> </xsl:for-each></xsl:attribute>
+        </xsl:element>
+    </xsl:if>
+    <xsl:if test="$revision/@error">
+        <xsl:element name="img">
+            <xsl:attribute name="src">http://ant.apache.org/ivy/images/error.gif</xsl:attribute>
+            <xsl:attribute name="alt">error</xsl:attribute>
+            <xsl:attribute name="title">error: <xsl:value-of select="$revision/@error"/></xsl:attribute>
+        </xsl:element>
+    </xsl:if>
+</xsl:template>
+
+<xsl:template name="error">
+    <xsl:param name="organisation"/>
+    <xsl:param name="module"/>
+    <xsl:param name="revision"/>
+    <xsl:param name="error"/>
+    <tr>
+    <td>
+       <xsl:element name="a">
+         <xsl:attribute name="href">#<xsl:value-of select="$organisation"/>-<xsl:value-of select="$module"/></xsl:attribute>
+         <xsl:value-of select="$module"/>
+         by
+         <xsl:value-of select="$organisation"/>
+       </xsl:element>
+    </td>
+    <td>
+       <xsl:element name="a">
+         <xsl:attribute name="href">#<xsl:value-of select="$organisation"/>-<xsl:value-of select="$module"/>-<xsl:value-of select="$revision"/></xsl:attribute>
+         <xsl:value-of select="$revision"/>
+       </xsl:element>
+    </td>
+    <td>
+         <xsl:value-of select="$error"/>
+    </td>
+    </tr>
+</xsl:template>
+
+<xsl:template name="confs">
+    <xsl:param name="configurations"/>
+    
+    <xsl:if test="contains($configurations, ',')">
+      <xsl:call-template name="conf">
+        <xsl:with-param name="conf" select="normalize-space(substring-before($configurations,','))"/>
+      </xsl:call-template>
+      <xsl:call-template name="confs">
+        <xsl:with-param name="configurations" select="substring-after($configurations,',')"/>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:if test="not(contains($configurations, ','))">
+      <xsl:call-template name="conf">
+        <xsl:with-param name="conf" select="normalize-space($configurations)"/>
+      </xsl:call-template>
+    </xsl:if>
+</xsl:template>
+
+<xsl:template name="conf">
+    <xsl:param name="conf"/>
+    
+     <li>
+       <xsl:element name="a">
+         <xsl:if test="$conf = $myconf">
+           <xsl:attribute name="class">active</xsl:attribute>
+         </xsl:if>
+         <xsl:attribute name="href"><xsl:value-of select="$myorg"/>-<xsl:value-of select="$mymod"/>-<xsl:value-of select="$conf"/>.<xsl:value-of select="$extension"/></xsl:attribute>
+         <xsl:value-of select="$conf"/>
+       </xsl:element>
+     </li>
+</xsl:template>
+
+<xsl:template name="date">
+    <xsl:param name="date"/>
+    
+    <xsl:value-of select="substring($date,1,4)"/>-<xsl:value-of select="substring($date,5,2)"/>-<xsl:value-of select="substring($date,7,2)"/>
+    <xsl:value-of select="' '"/>
+    <xsl:value-of select="substring($date,9,2)"/>:<xsl:value-of select="substring($date,11,2)"/>:<xsl:value-of select="substring($date,13)"/>
+</xsl:template>
+
+
+<xsl:template match="/ivy-report">
+
+  <html>
+  <head>
+    <title>Ivy report :: <xsl:value-of select="info/@module"/> by <xsl:value-of select="info/@organisation"/> :: <xsl:value-of select="info/@conf"/></title>
+    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+    <meta http-equiv="content-language" content="en" />
+    <meta name="robots" content="index,follow" />
+    <link rel="stylesheet" type="text/css" href="ivy-report.css" /> 
+  </head>
+  <body>
+    <div id="logo"><a href="http://ant.apache.org/ivy/"><img src="http://ant.apache.org/ivy/images/logo.png"/></a></div>
+    <h1>
+      <xsl:element name="a">
+        <xsl:attribute name="name"><xsl:value-of select="info/@organisation"/>-<xsl:value-of select="info/@module"/></xsl:attribute>
+      </xsl:element>
+        <span id="module">
+    	        <xsl:value-of select="concat(info/@module, ' ', info/@revision)"/>
+        </span> 
+        by 
+        <span id="organisation">
+    	        <xsl:value-of select="info/@organisation"/>
+        </span>
+    </h1>
+    <div id="date">
+    resolved on 
+      <xsl:call-template name="date">
+        <xsl:with-param name="date" select="info/@date"/>
+      </xsl:call-template>
+    </div>
+    <ul id="confmenu">
+      <xsl:call-template name="confs">
+        <xsl:with-param name="configurations" select="$confs"/>
+      </xsl:call-template>
+    </ul>
+
+    <div id="content">
+    <h2>Dependencies Stats</h2>
+        <table class="header">
+          <tr><td class="title">Modules</td><td class="value"><xsl:value-of select="count($modules)"/></td></tr>
+          <tr><td class="title">Revisions</td><td class="value"><xsl:value-of select="count($revisions)"/>  
+            (<xsl:value-of select="count($searcheds)"/> searched <img src="http://ant.apache.org/ivy/images/searched.gif" alt="searched" title="module revisions which required a search with a dependency resolver to be resolved"/>,
+            <xsl:value-of select="count($downloadeds)"/> downloaded <img src="http://ant.apache.org/ivy/images/downloaded.gif" alt="downloaded" title="module revisions for which ivy file was downloaded by dependency resolver"/>,
+            <xsl:value-of select="count($evicteds)"/> evicted <img src="http://ant.apache.org/ivy/images/evicted.gif" alt="evicted" title="module revisions which were evicted by others"/>,
+            <xsl:value-of select="count($errors)"/> errors <img src="http://ant.apache.org/ivy/images/error.gif" alt="error" title="module revisions on which error occurred"/>)</td></tr>
+          <tr><td class="title">Artifacts</td><td class="value"><xsl:value-of select="count($artifacts)"/> 
+            (<xsl:value-of select="count($dlartifacts)"/> downloaded,
+            <xsl:value-of select="count($faileds)"/> failed)</td></tr>
+          <tr><td class="title">Artifacts size</td><td class="value"><xsl:value-of select="round(sum($artifacts/@size) div 1024)"/> kB
+            (<xsl:value-of select="round(sum($dlartifacts/@size) div 1024)"/> kB downloaded,
+            <xsl:value-of select="round(sum($cacheartifacts/@size) div 1024)"/> kB in cache)</td></tr>
+        </table>
+    
+    <xsl:if test="count($errors) > 0">
+    <h2>Errors</h2>
+    <table class="errors">
+      <thead>
+      <tr>
+        <th>Module</th>
+        <th>Revision</th>
+        <th>Error</th>
+      </tr>
+      </thead>
+      <tbody>
+      <xsl:for-each select="$errors">
+          <xsl:call-template name="error">
+            <xsl:with-param name="organisation"  select="../@organisation"/>
+            <xsl:with-param name="module"        select="../@name"/>
+            <xsl:with-param name="revision"      select="@name"/>
+            <xsl:with-param name="error"        select="@error"/>
+          </xsl:call-template>
+      </xsl:for-each>
+      </tbody>
+      </table>
+    </xsl:if>
+
+    <xsl:if test="count($conflicts) > 0">
+    <h2>Conflicts</h2>
+    <table class="conflicts">
+      <thead>
+      <tr>
+        <th>Module</th>
+        <th>Selected</th>
+        <th>Evicted</th>
+      </tr>
+      </thead>
+      <tbody>
+      <xsl:for-each select="$conflicts">
+        <tr>
+        <td>
+           <xsl:element name="a">
+             <xsl:attribute name="href">#<xsl:value-of select="@organisation"/>-<xsl:value-of select="@name"/></xsl:attribute>
+             <xsl:value-of select="@name"/>
+             by
+             <xsl:value-of select="@organisation"/>
+           </xsl:element>
+        </td>
+        <td>
+          <xsl:for-each select="revision[not(@evicted)]">
+             <xsl:element name="a">
+               <xsl:attribute name="href">#<xsl:value-of select="../@organisation"/>-<xsl:value-of select="../@name"/>-<xsl:value-of select="@name"/></xsl:attribute>
+               <xsl:value-of select="@name"/>
+             </xsl:element>
+             <xsl:text> </xsl:text>
+          </xsl:for-each>
+        </td>
+        <td>
+          <xsl:for-each select="revision[@evicted]">
+             <xsl:element name="a">
+               <xsl:attribute name="href">#<xsl:value-of select="../@organisation"/>-<xsl:value-of select="../@name"/>-<xsl:value-of select="@name"/></xsl:attribute>
+               <xsl:value-of select="@name"/>
+			   <xsl:text> </xsl:text>
+               <xsl:value-of select="@evicted-reason"/>
+             </xsl:element>
+             <xsl:text> </xsl:text>
+          </xsl:for-each>
+        </td>
+        </tr>
+      </xsl:for-each>
+      </tbody>
+      </table>
+    </xsl:if>
+
+    <h2>Dependencies Overview</h2>
+        <xsl:call-template name="calling">
+          <xsl:with-param name="org" select="info/@organisation"/>
+          <xsl:with-param name="mod" select="info/@module"/>
+          <xsl:with-param name="rev" select="info/@revision"/>
+        </xsl:call-template>
+
+    <h2>Details</h2>    
+    <xsl:for-each select="$modules">
+    <h3>
+      <xsl:element name="a">
+         <xsl:attribute name="name"><xsl:value-of select="@organisation"/>-<xsl:value-of select="@name"/></xsl:attribute>
+      </xsl:element>
+      <xsl:value-of select="@name"/> by <xsl:value-of select="@organisation"/>
+    </h3>    
+      <xsl:for-each select="revision">
+        <h4>
+          <xsl:element name="a">
+             <xsl:attribute name="name"><xsl:value-of select="../@organisation"/>-<xsl:value-of select="../@name"/>-<xsl:value-of select="@name"/></xsl:attribute>
+          </xsl:element>
+           Revision: <xsl:value-of select="@name"/>
+          <span style="padding-left:15px;">
+          <xsl:call-template name="icons">
+            <xsl:with-param name="revision"      select="."/>
+          </xsl:call-template>
+          </span>
+        </h4>
+        <table class="header">
+        	<xsl:if test="@homepage">
+            <tr><td class="title">Home Page</td><td class="value">
+              <xsl:element name="a">
+    	            <xsl:attribute name="href"><xsl:value-of select="@homepage"/></xsl:attribute>
+    		    	<xsl:value-of select="@homepage"/>
+    	        </xsl:element></td>
+            </tr>  	        
+        	</xsl:if>
+          <tr><td class="title">Status</td><td class="value"><xsl:value-of select="@status"/></td></tr>
+          <tr><td class="title">Publication</td><td class="value"><xsl:value-of select="@pubdate"/></td></tr>
+          <tr><td class="title">Resolver</td><td class="value"><xsl:value-of select="@resolver"/></td></tr>
+          <tr><td class="title">Configurations</td><td class="value"><xsl:value-of select="@conf"/></td></tr>
+          <tr><td class="title">Artifacts size</td><td class="value"><xsl:value-of select="round(sum(artifacts/artifact/@size) div 1024)"/> kB
+            (<xsl:value-of select="round(sum(artifacts/artifact[@status='successful']/@size) div 1024)"/> kB downloaded,
+            <xsl:value-of select="round(sum(artifacts/artifact[@status='no']/@size) div 1024)"/> kB in cache)</td></tr>
+        	<xsl:if test="count(license) > 0">
+            <tr><td class="title">Licenses</td><td class="value">
+			      <xsl:call-template name="licenses">
+			        <xsl:with-param name="revision"      select="."/>
+			      </xsl:call-template>
+            </td></tr>  	        
+        	</xsl:if>
+        <xsl:if test="@evicted">
+        <tr><td class="title">Evicted by</td><td class="value">  
+            <b>
+			<xsl:for-each select="evicted-by">
+              <xsl:value-of select="@rev"/>
+			  <xsl:text> </xsl:text>
+            </xsl:for-each>
+			</b>
+			<xsl:text> </xsl:text>
+             <b><xsl:value-of select="@evicted-reason"/></b>
+			 in <b><xsl:value-of select="@evicted"/></b> conflict manager
+        </td></tr>
+        </xsl:if>
+        </table>
+        <h5>Required by</h5>
+        <table>
+          <thead>
+          <tr>
+            <th>Organisation</th>
+            <th>Name</th>
+            <th>Revision</th>
+            <th>In Configurations</th>
+            <th>Asked Revision</th>
+          </tr>
+          </thead>
+          <tbody>
+            <xsl:for-each select="caller">
+              <tr>
+              <td><xsl:value-of select="@organisation"/></td>
+              <td>
+      	         <xsl:element name="a">
+	                 <xsl:attribute name="href">#<xsl:value-of select="@organisation"/>-<xsl:value-of select="@name"/></xsl:attribute>
+		    	         <xsl:value-of select="@name"/>
+	               </xsl:element>
+              </td>
+              <td><xsl:value-of select="@callerrev"/></td>
+              <td><xsl:value-of select="@conf"/></td>
+              <td><xsl:value-of select="@rev"/></td>
+              </tr>
+            </xsl:for-each>   
+          </tbody>
+        </table>
+        <xsl:if test="not(@evicted)">
+        
+        <h5>Dependencies</h5>
+        <xsl:call-template name="calling">
+          <xsl:with-param name="org" select="../@organisation"/>
+          <xsl:with-param name="mod" select="../@name"/>
+          <xsl:with-param name="rev" select="@name"/>
+        </xsl:call-template>
+        <h5>Artifacts</h5>
+        <xsl:if test="count(artifacts/artifact) = 0">
+        <table><tr><td>
+        No artifact
+        </td></tr></table>
+        </xsl:if>
+        <xsl:if test="count(artifacts/artifact) > 0">
+        <table>
+          <thead>
+          <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Ext</th>
+            <th>Download</th>
+            <th>Size</th>
+          </tr>
+          </thead>
+          <tbody>
+            <xsl:for-each select="artifacts/artifact">
+              <tr>
+              <td><xsl:value-of select="@name"/></td>
+              <td><xsl:value-of select="@type"/></td>
+              <td><xsl:value-of select="@ext"/></td>
+              <td align="center"><xsl:value-of select="@status"/></td>
+              <td align="center"><xsl:value-of select="round(number(@size) div 1024)"/> kB</td>
+              </tr>
+            </xsl:for-each>    
+          </tbody>
+        </table>
+        </xsl:if>
+        
+        </xsl:if>
+      </xsl:for-each>    
+    </xsl:for-each>
+    </div>
+  </body>
+  </html>
+</xsl:template>
+
+</xsl:stylesheet>

target/resolution-cache/reports/me.adinapoli-scala-macros-playground_2.10/optional-resolved.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="ivy-report.xsl"?>
+<ivy-report version="1.0">
+	<info
+		organisation="me.adinapoli"
+		module="scala-macros-playground_2.10"
+		revision="0.1"
+		conf="optional"
+		confs="compile, runtime, test, provided, optional, compile-internal, runtime-internal, test-internal, plugin, sources, docs, pom"
+		date="20130119121320"/>
+	<dependencies>
+	</dependencies>
+</ivy-report>

target/resolution-cache/reports/me.adinapoli-scala-macros-playground_2.10/plugin-resolved.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="ivy-report.xsl"?>
+<ivy-report version="1.0">
+	<info
+		organisation="me.adinapoli"
+		module="scala-macros-playground_2.10"
+		revision="0.1"
+		conf="plugin"
+		confs="compile, runtime, test, provided, optional, compile-internal, runtime-internal, test-internal, plugin, sources, docs, pom"
+		date="20130119121320"/>
+	<dependencies>
+	</dependencies>
+</ivy-report>

target/resolution-cache/reports/me.adinapoli-scala-macros-playground_2.10/pom-resolved.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="ivy-report.xsl"?>
+<ivy-report version="1.0">
+	<info
+		organisation="me.adinapoli"
+		module="scala-macros-playground_2.10"
+		revision="0.1"
+		conf="pom"
+		confs="compile, runtime, test, provided, optional, compile-internal, runtime-internal, test-internal, plugin, sources, docs, pom"
+		date="20130119121320"/>
+	<dependencies>
+	</dependencies>
+</ivy-report>

target/resolution-cache/reports/me.adinapoli-scala-macros-playground_2.10/provided-resolved.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="ivy-report.xsl"?>
+<ivy-report version="1.0">
+	<info
+		organisation="me.adinapoli"
+		module="scala-macros-playground_2.10"
+		revision="0.1"
+		conf="provided"
+		confs="compile, runtime, test, provided, optional, compile-internal, runtime-internal, test-internal, plugin, sources, docs, pom"
+		date="20130119121320"/>
+	<dependencies>
+	</dependencies>
+</ivy-report>

target/resolution-cache/reports/me.adinapoli-scala-macros-playground_2.10/runtime-internal-resolved.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="ivy-report.xsl"?>
+<ivy-report version="1.0">
+	<info
+		organisation="me.adinapoli"
+		module="scala-macros-playground_2.10"
+		revision="0.1"
+		conf="runtime-internal"
+		confs="compile, runtime, test, provided, optional, compile-internal, runtime-internal, test-internal, plugin, sources, docs, pom"
+		date="20130119121320"/>
+	<dependencies>
+		<module organisation="org.scalaz" name="scalaz-core_2.10">
+			<revision name="7.0.0-M7" status="release" pubdate="20121223151403" resolver="Typesafe Repository" artresolver="Typesafe Repository" homepage="http://scalaz.org" downloaded="false" searched="false" default="false" conf="default(compile), default, compile, runtime, master" position="5">
+				<license name="BSD-style" url="http://www.opensource.org/licenses/bsd-license.php"/>
+				<metadata-artifact status="no" details="" size="2517" time="0" location="/Users/adinapoli/.ivy2/cache/org.scalaz/scalaz-core_2.10/ivy-7.0.0-M7.xml" searched="false" origin-is-local="false" origin-location="http://repo.typesafe.com/typesafe/releases/org/scalaz/scalaz-core_2.10/7.0.0-M7/scalaz-core_2.10-7.0.0-M7.pom"/>
+				<caller organisation="me.adinapoli" name="scala-macros-playground_2.10" conf="optional, compile, runtime, runtime-internal" rev="7.0.0-M7" rev-constraint-default="7.0.0-M7" rev-constraint-dynamic="7.0.0-M7" callerrev="0.1"/>
+				<artifacts>
+					<artifact name="scalaz-core_2.10" type="bundle" ext="jar" status="no" details="" size="8724202" time="0" location="/Users/adinapoli/.ivy2/cache/org.scalaz/scalaz-core_2.10/bundles/scalaz-core_2.10-7.0.0-M7.jar">
+						<origin-location is-local="false" location="http://repo.typesafe.com/typesafe/releases/org/scalaz/scalaz-core_2.10/7.0.0-M7/scalaz-core_2.10-7.0.0-M7.jar"/>
+					</artifact>
+				</artifacts>
+			</revision>
+		</module>
+		<module organisation="com.typesafe" name="slick_2.10">
+			<revision name="1.0.0-RC1" status="release" pubdate="20121221170026" resolver="Typesafe Repository" artresolver="Typesafe Repository" homepage="http://slick.typesafe.com" downloaded="false" searched="false" default="false" conf="default(compile), default, compile, runtime, master" position="3">
+				<license name="Two-clause BSD-style license" url="http://github.com/slick/slick/blob/master/LICENSE.txt"/>
+				<metadata-artifact status="no" details="" size="2837" time="0" location="/Users/adinapoli/.ivy2/cache/com.typesafe/slick_2.10/ivy-1.0.0-RC1.xml" searched="false" origin-is-local="false" origin-location="http://repo.typesafe.com/typesafe/releases/com/typesafe/slick_2.10/1.0.0-RC1/slick_2.10-1.0.0-RC1.pom"/>
+				<caller organisation="me.adinapoli" name="scala-macros-playground_2.10" conf="optional, compile, runtime, runtime-internal" rev="1.0.0-RC1" rev-constraint-default="1.0.0-RC1" rev-constraint-dynamic="1.0.0-RC1" callerrev="0.1"/>
+				<artifacts>
+					<artifact name="slick_2.10" type="jar" ext="jar" status="no" details="" size="2761598" time="0" location="/Users/adinapoli/.ivy2/cache/com.typesafe/slick_2.10/jars/slick_2.10-1.0.0-RC1.jar">
+						<origin-location is-local="false" location="http://repo.typesafe.com/typesafe/releases/com/typesafe/slick_2.10/1.0.0-RC1/slick_2.10-1.0.0-RC1.jar"/>
+					</artifact>
+				</artifacts>
+			</revision>
+		</module>
+		<module organisation="org.slf4j" name="slf4j-api">
+			<revision name="1.6.4" status="release" pubdate="20121011083657" resolver="Typesafe Repository" artresolver="Typesafe Repository" homepage="http://www.slf4j.org" downloaded="false" searched="false" default="false" conf="compile, master(*), runtime, compile(*), runtime(*), master" position="4">
+				<metadata-artifact status="no" details="" size="4338" time="0" location="/Users/adinapoli/.ivy2/cache/org.slf4j/slf4j-api/ivy-1.6.4.xml" searched="false" origin-is-local="false" origin-location="http://repo.typesafe.com/typesafe/releases/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4.pom"/>
+				<caller organisation="com.typesafe" name="slick_2.10" conf="default, compile, runtime, master" rev="1.6.4" rev-constraint-default="1.6.4" rev-constraint-dynamic="1.6.4" callerrev="1.0.0-RC1"/>
+				<artifacts>
+					<artifact name="slf4j-api" type="jar" ext="jar" status="no" details="" size="25962" time="0" location="/Users/adinapoli/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.6.4.jar">
+						<origin-location is-local="false" location="http://repo.typesafe.com/typesafe/releases/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4.jar"