diff --git a/README.markdown b/README.markdown
index ce449e214..cefc5bb82 100644
--- a/README.markdown
+++ b/README.markdown
@@ -2,6 +2,28 @@
 
 It is automatically transformed by [Jekyll](http://github.com/mojombo/jekyll) into a static site.
 
+## Development
+
+Development is done in the `next` branch, while `master` contains the docs and guides for the latest stable release.
+
+## Contributing with the blog
+
+  Create a new file inside `_posts/YYYY-MM-DD-post-title.markdown` following the template:
+
+    ---
+    layout: post
+    title:
+    author:
+    category:
+    excerpt:
+    ---
+
+    Body text goes here...
+
+  Or use `_bin/newpost` to bootstrap a new post file:
+
+    export EDITOR=vim; _bin/newpost 'Post title'
+
 ## License
 
 * The Elixir logo and website contents are copyrighted to [Plataformatec](http://plataformatec.com.br/).
@@ -9,4 +31,4 @@ You may not reuse anything therein without permission.
 
 * The HTML and CSS are copyrighted to [AlienWp](http://alienwp.com/) under [GPL license, version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html).
 
-* The Social Icons are copyrighted to [Xeloader](http://xeloader.deviantart.com/art/Socialis-2-Freebie-213292616).
\ No newline at end of file
+* The Social Icons are copyrighted to [Xeloader](http://xeloader.deviantart.com/art/Socialis-2-Freebie-213292616).
diff --git a/_bin/newpost b/_bin/newpost
new file mode 100755
index 000000000..5ab318a70
--- /dev/null
+++ b/_bin/newpost
@@ -0,0 +1,32 @@
+#!/usr/bin/env ruby
+
+unless ARGV[0]
+  puts 'Usage: _bin/newpost "Post Title"'
+  exit(-1)
+end
+
+date_prefix = Time.now.strftime("%Y-%m-%d")
+post_name = ARGV.join ' '
+permalink = post_name.strip.downcase.gsub(/[^a-zA-Z0-9]/, '-')
+filename = "#{date_prefix}-#{permalink}.markdown"
+post = File.expand_path("../_posts/#{filename}", File.dirname(__FILE__))
+
+header = <<-END
+---
+layout: post
+title: #{post_name}
+author:
+category:
+excerpt:
+---
+
+Body text goes here...
+END
+
+File.open(post, 'w') do |f|
+  f << header
+end
+
+editor = ENV['EDITOR'] || "mate"
+system(editor, post)
+exit(0)
diff --git a/_config.yml b/_config.yml
index ae2414c98..8ee0a103b 100644
--- a/_config.yml
+++ b/_config.yml
@@ -1,3 +1,3 @@
 markdown: rdiscount
 pygments: true
-total_guides: 6
\ No newline at end of file
+permalink: /blog/:year/:month/:day/:title
diff --git a/_includes/bottom.html b/_includes/bottom.html
index 6072500e5..d8f7db9c2 100644
--- a/_includes/bottom.html
+++ b/_includes/bottom.html
@@ -1,36 +1,19 @@
-  		</div><!-- #main -->
-  		<div class="clear">
-		  </div>
-  	</div><!-- .wrap -->
-	</div><!-- #container -->
+      </div><!-- #main -->
+      <div class="clear">
+      </div>
+    </div><!-- .wrap -->
+  </div><!-- #container -->
 
   <div id="footer">
     <div class="wrap">
-      <div id="social">
-        <ul>
-          <li class="menu-item"><a href="/" target="_blank"><img src="/images/social/RSS.png" /></a></li>
-          <li class="menu-item"><a href="https://github.com/elixir-lang" target="_blank"><img src="/images/social/Github.png" /></a></li>
-        </ul>
-      </div>
-
-      <div id="twitter">
-        <h4 class="title">
-          <a href="http://twitter.com/elixirlang" target="_blank">Recent Tweets</a>
-        </h4>
-
-        <div id="twitter-feed">
-        </div>
-      </div>
-
       <p id="copyright">
         Elixir is proudly sponsored by <a href="http://plataformatec.com.br/" target="_blank">Plataformatec</a>.<br />
-        Copyright 2012 Plataformatec.
+        © 2012-2013 Plataformatec. All rights reserved.
       </p>
     </div>
-	</div>
+  </div>
 
   <script type="text/javascript">
-
     var _gaq = _gaq || [];
     _gaq.push(['_setAccount', 'UA-8268430-6']);
     _gaq.push(['_trackPageview']);
@@ -40,7 +23,6 @@ <h4 class="title">
       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
     })();
-
   </script>
 </body>
 </html>
\ No newline at end of file
diff --git a/_includes/categories-list.html b/_includes/categories-list.html
new file mode 100644
index 000000000..8056b1d0d
--- /dev/null
+++ b/_includes/categories-list.html
@@ -0,0 +1,8 @@
+<div class="widget categories-list">
+  <h3 class="widget-title">Blog Categories</h3>
+  <ul>
+  {% for category in site.categories %}
+    <li><a class="spec" href="/blog/categories.html#{{ category | first }}">{{ category | first }}</a></li>
+  {% endfor %}
+  </ul>
+</div>
diff --git a/_includes/important-links.html b/_includes/important-links.html
new file mode 100644
index 000000000..814bc2a58
--- /dev/null
+++ b/_includes/important-links.html
@@ -0,0 +1,29 @@
+<div class="widget">
+  <h3 class="widget-title">Join the Community</h3>
+  <ul>
+    <li>#elixir-lang on freenode IRC</li>
+    <li><a class="spec" href="http://groups.google.com/group/elixir-lang-talk" target="_blank">elixir-talk mailing list (questions)</a></li>
+    <li><a class="spec" href="http://groups.google.com/group/elixir-lang-core" target="_blank">elixir-core mailing list (development)</a></li>
+    <li><a class="spec" href="https://github.com/elixir-lang/elixir/issues" target="_blank">Issues tracker</a></li>
+    <li><a class="spec" href="http://twitter.com/elixirlang" target="_blank">@elixirlang on Twitter</a></li>
+  </ul>
+</div>
+
+{% include learning-resources.html %}
+
+<div class="widget">
+  <h3 class="widget-title">Important links</h3>
+  <ul>
+    <li><a class="spec" href="https://github.com/elixir-lang/elixir/wiki" target="_blank">Wiki with articles, projects and talks done by the community</a></li>
+    <li><a class="spec" href="http://elixir-lang.org/crash-course.html" target="_blank">Crash course for Erlang developers</a></li>
+  </ul>
+</div>
+
+<div class="widget">
+  <h3 class="widget-title">Code editor support</h3>
+  <ul>
+    <li><a class="spec" href="https://github.com/elixir-lang/emacs-elixir" target="_blank">Emacs Mode</a></li>
+    <li><a class="spec" href="https://github.com/elixir-lang/elixir-tmbundle" target="_blank">Textmate Bundle</a></li>
+    <li><a class="spec" href="https://github.com/elixir-lang/vim-elixir" target="_blank">Vim Elixir</a></li>
+  </ul>
+</div>
diff --git a/_includes/learning-resources.html b/_includes/learning-resources.html
new file mode 100644
index 000000000..3b23cc5e3
--- /dev/null
+++ b/_includes/learning-resources.html
@@ -0,0 +1,6 @@
+<div class="widget">
+  <h3 class="widget-title">Learning resources</h3>
+  <ul>
+    <li class="no-style"><a href="http://pragprog.com/titles/elixir" target="_blank" title="Programming Elixir cover"><img src="http://imagery.pragprog.com/products/361/elixir_xlargebeta.jpg?1368724397" /></a></li>
+  </ul>
+</div>
\ No newline at end of file
diff --git a/_includes/pagination.html b/_includes/pagination.html
new file mode 100644
index 000000000..111c62b82
--- /dev/null
+++ b/_includes/pagination.html
@@ -0,0 +1,32 @@
+<!--<div class="pagination loop-pagination"><span class="page-numbers current">1</span>
+<a class="page-numbers" href="http://demo.alienwp.com/origin/page/2/">2</a>
+<a class="next page-numbers" href="http://demo.alienwp.com/origin/page/2/">Next →</a></div>-->
+
+<div id="post-pagination" class="pagination loop-pagination">
+  {% if paginator.previous_page %}
+    {% if paginator.previous_page == 1 %}
+    <a class="prev page-numbers" href="/blog">Previous</a>
+    {% else %}
+    <a class="prev page-numbers" href="/blog/page{{paginator.previous_page}}">Previous</a>
+    {% endif %}
+  {% endif %}
+
+  
+  {% if paginator.page == 1 %}
+    <span class="page-numbers current">1</span>
+  {% else %}
+    <a class="page-numbers" href="/blog">1</a>
+  {% endif %}
+
+  {% for count in (2..paginator.total_pages) %}
+    {% if count == paginator.page %}
+      <span class="page-numbers current">{{count}}</span>
+    {% else %}
+      <a class="page-numbers" href="/blog/page{{count}}">{{count}}</a>
+    {% endif %}
+  {% endfor %}
+
+  {% if paginator.next_page %}
+    <a class="next page-numbers spec" href="/blog/page{{paginator.next_page}}">Next</a>
+  {% endif %}
+</div>
diff --git a/_includes/search.html b/_includes/search.html
index 1dad296c9..44e16b620 100644
--- a/_includes/search.html
+++ b/_includes/search.html
@@ -1,3 +1,9 @@
+<div class="widget news">
+  <h3>
+    News: <a href="/blog/2013/05/23/elixir-v0-9-0-released/">Elixir v0.9.0 released</a>
+  </h3>
+</div>
+
 <div class="widget search">
   <form method="get" class="search-form" action="http://www.google.com/search">
 		<div>
diff --git a/_includes/top.html b/_includes/top.html
index d58d5339d..8ecce51fa 100644
--- a/_includes/top.html
+++ b/_includes/top.html
@@ -3,50 +3,42 @@
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-	<title>{{ page.title }}</title>
+  <title>{% if page.title %}{{ page.title }} - {% endif %}Elixir</title>
+  <link href="http://feeds.feedburner.com/ElixirLang" rel="alternate" title="Elixir's Blog" type="application/atom+xml" />
   <link rel="stylesheet" type="text/css" href="/css/style.css">
-	<link rel="shortcut icon" href="/images/logo/drop.png">
+  <link rel="stylesheet" type="text/css" href="/css/syntax.css">
+  <link rel="shortcut icon" href="/images/logo/drop.png">
   <meta name="viewport" content="width=device-width,initial-scale=1">
   <link rel="stylesheet" id="font-bitter-css" href="http://fonts.googleapis.com/css?family=Bitter&amp;ver=1" type="text/css" media="screen">
-  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
-  <script type="text/javascript" src="/js/jquery.tweet.js"></script>
-	<script type="text/javascript">
-	  $(function(){
-    	$("#twitter-feed").tweet({
-        count: 3,
-        username: "elixirlang",
-        template: function(i){ return i["text"] }
-      });
-      $('#menu-primary li:nth-child(' + ({{page.active}} || 0) + ')').attr('class', 'current-menu-item');
-    });
-	</script>
 </head>
 
-<body class="home">
-	<div id="container">
-	  <div class="wrap">
-		<div id="header">
+<body class="{{ page.section }}">
+  <div id="container">
+    <div class="wrap">
+    <div id="header">
       <div id="branding">
-      		<h1 id="site-title">
-      			<a href="/" title="Elixir" rel="Home">
-      				<img class="logo" src="/images/logo/logo.png" alt="Elixir Logo" />
-      			</a>
-      		</h1>
+        <h1 id="site-title">
+          <a href="/" title="Elixir" rel="Home">
+            <img class="logo" src="/images/logo/logo.png" alt="Elixir Logo" />
+          </a>
+        </h1>
       </div>
 
       <div id="menu-primary" class="menu-container">
-    		<div class="menu">
-    		  <ul id="menu-primary-items">
-          <li class="menu-item"><a href="/">Home</a></li>
-          <li class="menu-item"><a href="/getting_started/1.html">Getting Started</a></li>
-          <li class="menu-item"><a href="https://github.com/elixir-lang/elixir" target="_blank">Source</a></li>
+        <div class="menu">
+          <ul id="menu-primary-items">
+            <li class="menu-item home"><a class="spec" href="/">Home</a></li>
+            <li class="menu-item getting_started"><a class="spec" href="/getting_started/1.html">Getting Started</a></li>
+            <li class="menu-item docs"><a class="spec" href="/docs">Docs</a></li>
+            <li class="menu-item blog"><a class="spec" href="/blog">Blog</a></li>
+            <li class="menu-item source"><a class="spec" href="https://github.com/elixir-lang/elixir" target="_blank">Source</a></li>
+            <li class="menu-item packages"><a class="spec" href="http://expm.co/" target="_blank">Packages</a></li>
+
           </ul>
         </div>
       </div>
 
-      <h2 id="site-description">
-        <span>A modern approach to programming for the Erlang VM.</span>
-      </h2>
-		</div>
+      <div class="clear"></div>
+    </div>
 
-		<div id="main">
\ No newline at end of file
+    <div id="main">
diff --git a/_layouts/blog.html b/_layouts/blog.html
new file mode 100644
index 000000000..72a180dbc
--- /dev/null
+++ b/_layouts/blog.html
@@ -0,0 +1,16 @@
+{% include top.html %}
+
+<div id="content">
+  {{ content }}
+</div><!-- #content -->
+
+<div id="sidebar-primary" class="sidebar">
+  {% include search.html %}
+  <div class="rss-button">
+    <a href="http://feeds.feedburner.com/ElixirLang" target="_blank"><img src="/images/social/RSSButton.png" /></a>
+  </div>
+  {% include categories-list.html %}
+  {% include important-links.html %}
+</div>
+
+{% include bottom.html %}
diff --git a/_layouts/default.html b/_layouts/default.html
new file mode 100644
index 000000000..3fdc4254c
--- /dev/null
+++ b/_layouts/default.html
@@ -0,0 +1,12 @@
+{% include top.html %}
+
+<div id="content">
+  {{ content }}
+</div><!-- #content -->
+
+<div id="sidebar-primary" class="sidebar">
+  {% include search.html %}
+  {% include important-links.html %}
+</div>
+
+{% include bottom.html %}
diff --git a/_layouts/getting_started.html b/_layouts/getting_started.html
index 13fce8172..cde9a69c5 100644
--- a/_layouts/getting_started.html
+++ b/_layouts/getting_started.html
@@ -1,35 +1,58 @@
-{% include top.html %}
+---
+section: getting_started
+---
 
-<div id="content">
-	<article>
-    {{ content }}
-	</article><!-- .hfeed -->
-
-  <div class="pagination loop-pagination">
-	  {% if page.guide > 1 %}
-		  <a href="/getting_started/{{page.guide | minus:1}}.html" class="previous page-numbers">&larr; Previous</a>
-	  {% endif %}
-		  <a class="page-numbers" href="#container">Top</a>
-	  {% if page.guide < site.total_guides %}
-			<a href="/getting_started/{{page.guide | plus:1}}.html" class="next page-numbers">Next &rarr;</a>
-		{% endif %}
-  </div>
-</div><!-- #content -->
+{% include top.html %}
 
 <div id="sidebar-primary" class="sidebar">
   {% include search.html %}
 
   <div class="widget">
     <h3 class="widget-title">Index</h3>
-		<ol style="margin-left: 15px">
-			<li><a href="/getting_started/1.html">Introduction</a></li>
-			<li><a href="/getting_started/2.html">Diving in</a></li>
-			<li><a href="/getting_started/3.html">Modules</a></li>
-			<li><a href="/getting_started/4.html">Protocols &amp; Records</a></li>
-			<li><a href="/getting_started/5.html">Macros</a></li>
-			<li><a href="/getting_started/6.html">Other topics</a></li>
-		</ol>
+    <ol>
+      <li><a class="spec" href="/getting_started/1.html">Introduction</a></li>
+      <li><a class="spec" href="/getting_started/2.html">Diving in</a></li>
+      <li><a class="spec" href="/getting_started/3.html">Modules</a></li>
+      <li><a class="spec" href="/getting_started/4.html">Records, Protocols &amp; Exceptions</a></li>
+      <li><a class="spec" href="/getting_started/5.html">Macros</a></li>
+      <li><a class="spec" href="/getting_started/6.html">Other topics</a></li>
+      <li><a class="spec" href="/getting_started/7.html">Where to go next</a></li>
+    </ol>
+  </div>
+  <div class="widget">
+    <h3 class="widget-title">Mix - a build tool for Elixir</h3>
+    <ol>
+      <li><a class="spec" href="/getting_started/mix/1.html">Introduction to Mix</a></li>
+      <li><a class="spec" href="/getting_started/mix/2.html">Building OTP apps with Mix</a></li>
+      <li><a class="spec" href="/getting_started/mix/3.html">Creating custom Mix tasks</a></li>
+    </ol>
   </div>
+  <div class="widget">
+    <h3 class="widget-title">ExUnit - a unit test framework</h3>
+    <ol>
+      <li><a class="spec" href="/getting_started/ex_unit/1.html">Introduction to ExUnit</a></li>
+    </ol>
+  </div>
+
+  {% include learning-resources.html %}
 </div>
 
-{% include bottom.html %}
\ No newline at end of file
+<div id="content">
+  <article>
+    {{ content }}
+  </article><!-- .hfeed -->
+
+  {% if page.guide %}
+  <div class="pagination loop-pagination">
+    {% if page.guide > 1 %}
+      <a href="{{page.guide | minus:1}}.html" class="previous page-numbers spec">&larr; Previous</a>
+    {% endif %}
+      <a class="page-numbers spec" href="#container">Top</a>
+    {% if page.guide < page.total_guides %}
+      <a href="{{page.guide | plus:1}}.html" class="next page-numbers spec">Next &rarr;</a>
+    {% endif %}
+  </div>
+  {% endif %}
+</div><!-- #content -->
+
+{% include bottom.html %}
diff --git a/_layouts/post.html b/_layouts/post.html
index 41379eff4..f94e000bf 100644
--- a/_layouts/post.html
+++ b/_layouts/post.html
@@ -1,56 +1,25 @@
 ---
-title: Elixir
-active: 1
+section: blog
+layout: blog
 ---
 
-{% include top.html %}
-
-<div id="content">
-	<div class="hfeed">
-    <div id="post-60" class="hentry post publish post-1 odd author-admin sticky category-articles post_tag-css post_tag-development post_tag-wordpress">
-			<a href="http://demo.alienwp.com/origin/sticky-post/" title="Sticky Post"><img src="http://demo.alienwp.com/origin/files/2012/01/Depositphotos_8562658_XXL-636x310.jpg" alt="Sticky Post" class="single-thumbnail featured"></a>
-
-			<div class="sticky-header">
-				<h2 class="entry-title"><a href="http://demo.alienwp.com/origin/sticky-post/" title="Sticky Post" rel="bookmark">Sticky Post</a></h2>
-				<div class="byline"><abbr class="published" title="Friday, January 6th, 2012, 2:48 pm">January 6, 2012</abbr> · by <span class="author vcard"><a class="url fn n" href="http://demo.alienwp.com/origin/author/admin/" title="Griden">Griden</a></span> · in <span class="category"><a href="http://demo.alienwp.com/origin/category/articles/" rel="tag">Articles</a></span> </div>
-			</div><!-- .sticky-header -->
-
-			<div class="entry-summary">
-				<p>Turpis et ridiculus nec, tempor elementum amet aliquet rhoncus, pulvinar mid. Tincidunt montes, arcu, adipiscing a vel, adipiscing adipiscing! Amet! Sociis, cursus lectus, amet turpis aliquam sagittis! Rhoncus nisi! Augue, elementum. Ac, lorem vel? Adipiscing non duis elementum, nunc. Integer?…</p>
-			</div><!-- .entry-summary -->
-		</div>
-
-    <div id="post-108" class="hentry post publish post-2 even alt author-admin category-blog post_tag-development post_tag-jquery post_tag-video post_tag-wordpress">
-			<a href="http://demo.alienwp.com/origin/responsive-video/" title="Responsive Video"><img src="http://demo.alienwp.com/origin/files/2012/01/video_responsive-150x150.jpg" alt="Responsive Video" class="archive-thumbnail featured"></a>
-			<div class="sticky-header">
-				<h2 class="entry-title"><a href="http://demo.alienwp.com/origin/responsive-video/" title="Responsive Video" rel="bookmark">Responsive Video</a></h2>
-				<div class="byline"><abbr class="published" title="Tuesday, January 17th, 2012, 1:54 pm">January 17, 2012</abbr> · by <span class="author vcard"><a class="url fn n" href="http://demo.alienwp.com/origin/author/admin/" title="Griden">Griden</a></span> · in <span class="category"><a href="http://demo.alienwp.com/origin/category/blog/" rel="tag">Blog</a></span> </div>
-			</div><!-- .sticky-header -->
-
-			<div class="entry-summary">
-				<p>Duis platea risus elementum in tortor parturient sed, pulvinar dignissim parturient a proin risus elementum sed velit natoque pid vel nunc in non, enim scelerisque turpis. Aenean mauris lundium, turpis massa diam eros nisi facilisis. Ultrices integer augue. Lacus turpis…</p>
-			</div><!-- .entry-summary -->
-		</div>
-	</div><!-- .hfeed -->
-
-  <div class="pagination loop-pagination"><span class="page-numbers current">1</span>
-  <a class="page-numbers" href="http://demo.alienwp.com/origin/page/2/">2</a>
-  <a class="next page-numbers" href="http://demo.alienwp.com/origin/page/2/">Next →</a></div>
-</div><!-- #content -->
-
-
-<div id="sidebar-primary" class="sidebar">
-  {% include search.html %}
-
-  <div class="widget">
-    <h3 class="widget-title">Meta</h3>
-    <ul>
-			<li><a href="http://demo.alienwp.com/origin/wp-login.php">Log in</a></li>
-			<li><a href="http://demo.alienwp.com/origin/feed/" title="Syndicate this site using RSS 2.0">Entries <abbr title="Really Simple Syndication">RSS</abbr></a></li>
-			<li><a href="http://demo.alienwp.com/origin/comments/feed/" title="The latest comments to all posts in RSS">Comments <abbr title="Really Simple Syndication">RSS</abbr></a></li>
-			<li><a href="http://wordpress.org/" title="Powered by WordPress, state-of-the-art semantic personal publishing platform.">WordPress.org</a></li>
-		</ul>
+<div class="hfeed">
+  <div class="hentry post">
+    <div class="post-content">
+      <div class="sticky-header">
+        <h1>{{ page.title }}</h1>
+        {% if page.subtitle %}
+        <h2>{{ page.subtitle }}</h2>
+        {% endif %}
+        <div class="byline">{{ page.date | date: "%B %d, %Y" }}{% if page.author %} · by {{ page.author}}{% endif %} . in {% for category in page.categories %}<span class="category"><a href="/blog/categories.html#{{category}}">{{ category }}</a>{% endfor %}</div>
+      </div>
+
+      <div class="entry-content">
+        {{ content }}
+      </div>
+
+      <!-- <div class="entry-meta">
+      </div> -->
+    </div>
   </div>
 </div>
-
-{% include bottom.html %}
\ No newline at end of file
diff --git a/_posts/2012-04-06-what-s-new-in-elixir-1.markdown b/_posts/2012-04-06-what-s-new-in-elixir-1.markdown
new file mode 100644
index 000000000..25ed45f3e
--- /dev/null
+++ b/_posts/2012-04-06-what-s-new-in-elixir-1.markdown
@@ -0,0 +1,75 @@
+---
+layout: post
+title: What's New in Elixir  &#35;1
+author: Alexei Sholik
+category: "What's New in Elixir"
+excerpt: Last week Elixir has seen a lot of new features, improvements, and bug fixes. In this little post I'm going to highlight some of the most prominent ones.
+---
+
+Last week Elixir has seen a lot of new features, improvements, and bug fixes. In this little post I'm going to highlight some of the most prominent ones.
+
+* Access protocol has been added for tuples, lists, strings, and whatnot. It allows us to easily access elements of a collection. We can also use a regex to find the first match in a string or a list. Examples follow: 
+
+        dict = [a: 1, b: 2, c: 3]
+        dict[:a]   #=> 1
+        dict[:d]   #=> nil
+
+        tuple = {5, 4, 3, 2, 1}
+        tuple[1]   #=> 5
+        tuple[0]   #=> nil
+        tuple[-1]  #=> 1
+
+        defrecord TestRec, red: 0, green: 0, blue: 0
+        r = TestRec[red: 255, blue: 80]  #=> new record
+        s = "The quick brown fox jumps over the lazy dog."
+        s[%r/[a-z]+o[a-z]+/]  #=> "brown"
+
+* Access protocol also makes it possible to pattern-match records:
+
+
+        defrecord TestRec, red: 0, green: 0, blue: 0
+        r = TestRec[red: 255, blue: 80]  #=> new record
+        case r do
+        match: TestRec[red: 0]
+          :no_match
+        match: TestRec[red: red, blue: 80]
+          :ok
+        end
+        #=> :ok
+        red === 255  #=> true
+
+* The `Orddict` module is no longer with us, it has been renamed to `Keyword`. The new module only allows atoms to be used as keys. A general purpose module for dicts will be added sooner or later. 
+
+* The [`Enum` module](https://github.com/elixir-lang/elixir/blob/6f5611317a3d3102f60dbb319f88f2ca1d561c11/lib/enum.ex) has been cleaned up a bit and got new functions, namely `drop_while`, `take_while`, and `split_with`.
+
+* The [`List` module](https://github.com/elixir-lang/elixir/blob/28eaff894e527643ba58b85fb975b5963679542b/lib/list.ex) has also seen some improvements. It now supports access protocol, the `append` function was renamed to `concat`, and a new `range` function has been implemented. 
+
+* Support for nested modules has been added.
+
+        defmodule Father do
+          defmodule Child do
+            def child_fun(str) do
+              IO.puts str
+            end
+          end
+          def fun do
+            Child.child_fun "some argument"
+          end
+        end
+        Father.Child.child_fun "hello!"
+
+* The `Regex` module has received new functions, namely, `source` and `opts`. It can also be `inspect`ed now.
+
+        reg = %r/[a-z]+o[a-z]+/im
+        Regex.source reg  #=> "[a-z]+o[a-z]+"
+        Regex.opts reg    #=> "im"
+        inspect reg       #=> "%r\"[a-z]+o[a-z]+\"im"
+
+* A new `read_info` function has been added to the [`File` module](https://github.com/elixir-lang/elixir/blob/35b22c598defd8be07d46d2e7e8fc0ddf9ec4e80/lib/file.ex) allowing 
+users to query for file attributes.
+
+---
+
+That's it for this week. I think it's been a great one! If anyone of you has something in the works in a separate fork or branch, please let me know so that I can highlight your contributions too.
+
+Thank you all and see you next week.
diff --git a/_posts/2012-04-13-what-s-new-in-elixir-2.markdown b/_posts/2012-04-13-what-s-new-in-elixir-2.markdown
new file mode 100644
index 000000000..74ad3e504
--- /dev/null
+++ b/_posts/2012-04-13-what-s-new-in-elixir-2.markdown
@@ -0,0 +1,57 @@
+---
+layout: post
+title: What's New in Elixir  &#35;2
+author: Alexei Sholik
+category: "What's New in Elixir"
+excerpt: This week has not seen as many prominent new features as the previous one. Still, more bugs have been fixed and a number of small improvements has been made here and there, so the overall progress is quite noticeable.
+---
+This week has not seen as many prominent new features as the previous one. Still, more bugs have been fixed and a number of small improvements has been made here and there, so the overall progress is quite noticeable.
+
+Let's get started with our usual overview. I'm using the latest master (`2851da4186a7e4c8e94c6ddd4e78dc7e883a31e9`) to compile and run the code snippets in this post.
+
+* Literal support for hexadecimal, octal and binary numbers has been added.
+
+        0xFF    #=> 255
+        0o10    #=> 8
+        0b1010  #=> 10
+
+* New functions in the [List module](https://github.com/elixir-lang/elixir/blob/master/lib/list.ex): `sort`, `zip`, `unzip`.
+
+        # Charlists are sorted in lexicographic order
+        List.sort ['10', '2', '4', '1', '21']
+        #=> ['1', '10', '2', '21', '4']
+
+        # Numerical sort for charlists using a custom function
+        List.sort ['10', '2', '4', '1', '21'], fn(a, b) ->
+          {na, _} = :string.to_integer a
+          {nb, _} = :string.to_integer b
+          na <= nb
+        end
+        #=> ['1', '2', '4', '10', '21']
+
+        List.zip [[1, 2], [:a, :b], ["one", "two"]]
+        #=> [{1,:a,"one"},{2,:b,"two"}]
+
+* The [System module](https://github.com/elixir-lang/elixir/blob/master/lib/system.ex) has been merged into master. It provides functions for communicating with OS environment, running external commands, getting the stacktrace, etc.
+
+        System.pwd
+        #=> "/Users/alco/Documents/git/elixir"
+
+        System.get_env "PAGER"
+        #=> "less"
+
+        System.cmd 'date'
+        #=> "Fri Apr 13 19:35:13 EEST 2012\n"
+
+        System.stacktrace
+        #=> (usually long output)
+
+* In other news, we're getting closer to having a dedicated site for documentation, JSON parsing/serialization is currently in the works, and there's also work being done on bringing dicts back into Elixir.
+
+* We're also seeing new faces on the list and on the IRC channel. If you haven't already, come join us at #elixir-lang on irc.freenode.net. More fun stuff is coming in the nearest future, including new language features, projects and demos.
+
+---
+
+That's it for this week. Don't forget that if you have something related to Elixir cooking, be it a language feature or a project, or a demo, or whatever, please let me know so that I can highlight your thing too. I will soon start featuring the most active projects in this digest. If you prefer to pitch the thing you're working on yourself, you are welcome to do so.
+
+Thank you all and see you next week!
diff --git a/_posts/2012-04-21-hello-macros.markdown b/_posts/2012-04-21-hello-macros.markdown
new file mode 100644
index 000000000..bc00ce5d5
--- /dev/null
+++ b/_posts/2012-04-21-hello-macros.markdown
@@ -0,0 +1,214 @@
+---
+layout: post
+title: Building a Web Framework. Part I
+author: Alexei Sholik
+category: "Web dev"
+excerpt: Since we haven't seen much new stuff in the Elixir land this week, I've decided to do something a little different. We'll build our own web framework to get a feel of the Elixir power. In this first part we'll take a closer look at macros and we'll see how they can be useful when it comes to building a friendly syntax for our users.
+---
+Since we haven't seen much new stuff in the Elixir land this week, I've decided to do something a little different. We'll build our own web framework to get a feel of the Elixir power. In this first part we'll take a closer look at macros and we'll see how they can be useful when it comes to building a friendly syntax for our users.
+
+Here's an example of what we are aiming at:
+
+    defmodule HelloServer do
+      use Feb, root: "assets"
+
+      get "/" do
+        { :ok, "Hello world!" }
+      end
+
+      get "/demo", file: "demo.html"
+
+      post "/" do
+        { :ok, "You're posted!\nYour data: #{inspect _data}" }
+      end
+    end
+
+## The Foundation ##
+
+To keep this post short and simple, we won't cover every single aspect of web framework development right away. Instead, we'll first focus on one specific task — defining a domain specific language (DSL) using Elixir macros. Let's start by stepping through the code above, one piece at a time.
+
+You might remember from the [Getting Started guide][1] that `use` is just a syntactic sugar that expands into a call to the `__using__` macro. In our case, the expansion will look like this
+
+    require Feb
+    Feb.__using__(__MODULE, [root: "assets"])
+
+Let's forget about the `root` option for now, we'll deal with it later. Here's how our `__using__` macro is going to be defined:
+
+    defmodule Feb do
+      defmacro __using__(module, _opts) do
+        quote do
+          import Feb, only: [get: 2, post: 2]
+
+          def start do
+            Feb.start unquote(module)
+          end
+        end
+      end
+    end
+
+One important thing to understand here is that this macro is called inside the module which invokes the `use` directive (**HelloServer** in our case). When the macro is called, its return value is then evaluated inside the calling module. Thus, our **HelloServer** ends up with a definition for the `start` function which will in turn call `Feb.start`. Too see this in action, let's first define the `start` function in **Feb**:
+
+    def start(_) do
+      IO.puts "Executing Feb.start"
+    end
+
+And here's the code for our **HelloServer** so far:
+
+    defmodule HelloServer do
+      use Feb
+    end
+
+Now let's try this out in the shell. I'm using a Makefile to simplify the compilation-related tasks. You can grab a copy from the project's [GitHub repo][2]. Notice also how the project directory is organized.
+
+    $ make
+    $ elixir -e 'HelloServer.start'
+    Executing Feb.start
+
+Everything is working as expected. Now let's move to the fun part.
+
+  [1]: http://elixir-lang.org/getting_started/6.html
+  [2]: https://github.com/alco/web-framework/blob/master/1-macros/Makefile
+
+## Writing Method Macros ##
+
+Let's look at the first `get` definition and think a bit about its meaning.
+
+    get "/" do
+      { :ok, "Hello world!" }
+    end
+
+The important thing to know about Elixir definitions is that they are executable. The Elixir compiler does not compile the code in the strict sense of the word, it is executing the code. So when you put `IO.puts "Hello"` inside a module definition, you'll see `Hello` printed in the shell when the code is compiled.
+
+So, in this case, it's just a call to the `get` macro defined in **Feb**. In fact, we could write it as
+
+    Feb.get("/", do: { :ok, "Hello world!" })
+
+and would be exactly the same thing. The reason we are allowed to omit the `Feb.` part is because we have imported the `get` macro earlier, see the definition of `__using__`.
+
+OK, so now that when we understand what's actually going on, let's look at the definition:
+
+    defmacro get(path, [do: code]) do
+      quote do
+        def handle(:get, unquote(path), _data) do
+          unquote(code)
+        end
+      end
+    end
+
+Our `get` macro accepts two arguments, the second one is pattern-matched to extract the block of code between `do` and `end`. The macro produces a definition of the `handle` function with three arguments. The `_data` argument is not used here, it will be used in the `post` macro later. So, basically, instead of calling `get` we could write the following definition in **HelloServer** to achieve the same effect:
+
+    def handle(:get, "/", _data) do
+      { :ok, "Hello world!" }
+    end
+
+That's all there is to it. We can check this in the shell.
+
+    $ make
+    $ iex
+    iex> HelloServer.handle :get, "/", nil
+    {:ok,"Hello world!"}
+
+The code for the `post` macro is pretty straightforward as well:
+
+    defmacro post(path, [do: code]) do
+      quote hygiene: false do
+        def handle(:post, unquote(path), _data) do
+          unquote(code)
+        end
+      end
+    end
+
+One new thing here is `hygiene: false`. What this does is it allows us to define variables that will be accessible by the caller. We do this here so that we can then reference the `_data` variable in our **HelloServer** implementation:
+
+    post "/" do
+      { :ok, "You're posted!\nYour data: #{inspect _data}" }
+    end
+
+Check that it works as expected:
+
+    $ make
+    $ iex
+    iex> HelloServer.handle :post, "/", "abc"
+    {:ok,"You're posted!\nYour data: \"abc\""}
+
+Good. We're almost done with the basics. I haven't covered the second `get` definition yet. Let's recall what it looked like:
+
+    get "/demo", file: "demo.html"
+
+By using this macro we're letting the framework know that we want to send the contents of the _demo.html_ file back to the client. In order to support this second form we need to define another clause for our `get` macro:
+
+    defmacro get(path, [file: bin]) when is_binary(bin) do
+      quote do
+        def handle(:get, unquote(path), _data) do
+          full_path = File.join([static_root(), unquote(bin)])
+          case File.read(full_path) do
+            { :ok, data } -> { :ok, data }
+            _ -> { :error, "404 Not Found" }
+          end
+        end
+      end
+    end
+
+Having written the code for reading from a file in the framework, we free our users from the need to do so themselves.
+
+## Wrapping Up ##
+
+I haven't yet provided the definition for `static_root`, let me fix this. It has to do with the `root` option mentioned at the beginning of the post. Remember what our first invocation of `use` looked liked
+
+    # In module HelloServer
+    use Feb, root: "assets"
+
+The `[root: "assets"]` Keyword is what ends up in the `_opts` argument of our `__using__` macro. So let's rewrite that macro to include the definition for the `static_root` function.
+
+    # In module Feb
+    defmacro __using__(module, opts) do
+      root_val = Keyword.get(opts, :root, ".")
+
+      quote do
+        import Feb, only: [get: 2, post: 2]
+
+        def start do
+          Feb.start unquote(module)
+        end
+
+        defp static_root, do: unquote(root_val)
+      end
+    end
+
+We read the value of the `root` key from the `opts` Keyword. If it's nil, the current directory becomes the root.
+
+The post is already getting quite long, so let's wrap up and do the final test drive to make sure everything works as expected.
+
+    $ make
+    $ iex
+    iex> import HelloServer
+    []
+    iex> handle :get, "/", nil
+    {:ok,"Hello world!"}
+    iex> handle :post, "/", :data
+    {:ok,"You're posted!\nYour data: :data"}
+    iex> handle :get, "/demo", nil
+    {:error,"404 Not Found"}
+
+Oops, looks like I've forgotten to create the _demo.html_ file. Let's do this real quick. Create the file in the _assets_ directory and paste the following contents into it:
+
+    <html>
+      <head>
+        <title>Demo</title>
+      </head>
+      <body>
+        <h1>Hello world!</h1>
+      </body>
+    </html>
+
+Now let's try that again:
+
+    iex> handle :get, "/demo", nil
+    {:ok,"<html>\n<head>\n  <title>Demo</title>\n</head>\n<body>\n  <h1>Hello world!</h1>\n</body>\n</html>\n\n\n"}
+
+Awesome! This concludes the first part in the series. Don't forget to grab the code [from GitHub][3]. If you have any questions or corrections, send a message to the [mailing list][4] or stop by the **#elixir-lang** channel on **irc.freenode.net**.
+
+See you there.
+
+  [3]: https://github.com/alco/web-framework/tree/master/1-macros
+  [4]: http://groups.google.com/group/elixir-lang-talk
diff --git a/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown b/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown
new file mode 100644
index 000000000..bc1c64b55
--- /dev/null
+++ b/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown
@@ -0,0 +1,181 @@
+---
+layout: post
+title: A peek inside Elixir's Parallel Compiler
+author: José Valim
+category: Internals
+excerpt: Today, a parallel compiler just landed in Elixir master. The goal of the parallel compiler is to compile files in parallel, automatically detecting dependencies between files. In this blog post, we are going to take a peek into the parallel compiler internals and learn more about Erlang and Elixir in the process.
+---
+
+Today, a parallel compiler just landed in Elixir master. The goal of the parallel compiler is to compile files in parallel, automatically detecting dependencies between files. In this blog post, we are going to take a peek into the parallel compiler internals and learn more about Erlang and Elixir in the process.
+
+## Process-based serial compilation
+
+The idea of the parallel compiler is very simple: for each file we want to compile, we will spawn a new process that will be responsible for its compilation. When compilation finishes, the process is going to send a message to the main process (the one responsible for coordinating compilation) that compilation finished so a new file can be compiled.
+
+In Elixir, we could write this code as follows:
+
+    def spawn_compilers([current|files], output) do
+      parent = Process.self()
+      child  = spawn_link(fn ->
+        :elixir_compiler.file_to_path(current, output)
+        parent <- { :compiled, Process.self() }
+      end)
+      receive do
+        { :compiled, ^child } ->
+          spawn_compilers(files, output)
+        { :EXIT, ^child, { reason, where } } ->
+          :erlang.raise(:error, reason, where)
+      end
+    end
+    
+    def spawn_compilers([], _output) do
+      :done
+    end
+
+In the first line, we define a function named `spawn_compilers` that receives two arguments, the first is a list of files to compile and the second is a string telling us where to write the compiled file. The first argument is represented as a list with head and tail (`[current|files]`) where the top of the list is assigned to `current` and the remaining items to `files`. If the list is empty, the first clause of `spawn_compilers` is not going to match, the clause `spawn_compilers([], _output)` defined at the end will instead.
+
+Inside `spawn_compilers`, we first retrieve the PID of the current process with `Process.self` (remember we are talking about Erlang processes/actors and not OS processes) and then proceed to spawn a new process to execute the given function in parallel. Spawning a new process is done with the `spawn_link` function.
+
+The `spawn_link` function starts a new process and automatically links the current (parent) process with the spawned (child) one, returning the child PID. By linking the process we ensure that, if the child process dies, a message will be sent to the parent process which then can act on it.
+
+The function given to `spawn_link` is quite straight-forward. It simply invokes an Erlang function as `:elixir_compiler.file_to_path` and then proceeds to send a message to the parent process notifying that compilation finished.
+
+After the child process is spawned, we invoke the `receive` macro and start waiting for messages. At this point, we are expecting two types of messages:
+
+* `{ :compiled, ^child }` - a message sent by the child informing us that compilation finished. Note that use of `^` before the variable `child` to tell Elixir to match the current value of `child` with the one received in the message. If compilation succeeds, we move forward and spawn the next child by calling `spawn_compilers` recursively;
+
+* `{ :EXIT, ^child, { reason, where } }` - this is the message sent by the child process in case it dies. This message is only received if the child is started via `spawn_link`. In the message, we can find the reason why it failed and the stacktrace. We then proceed to call an Erlang internal function to re-raise the error in the main process, effectively stopping compilation.
+
+With this code, we were able to compile each file inside a different process. However, notice that we are not yet compiling in parallel. Every time we spawn a child process, we wait until it succeeds (or fails) before moving to the next step. We are going to eventually compile files in parallel, but before we reach to this point, let's understand the problem of dependencies between files.
+
+## Dependency between files
+
+Imagine that we have two files, `a.ex` and `b.ex`, with the following contents:
+
+    # a.ex
+    defmodule A do
+      B.define
+    end
+
+    # b.ex
+    defmodule B do
+      defmacro define do
+        quote do
+          def one, do: 1
+        end
+      end
+    end
+
+In order to compile `A`, we need to ensure that `B` is already compiled and loaded so we can invoke the `define` macro. This means the file `a.ex` depends on the file `b.ex`. When compiling files in parallel, we want to be able to detect such cases and automatically handle them.
+
+The way we are going to handle this is by pausing compilation every time a module that was not yet defined is invoked. In this case, when compiling the file `a.ex` and `B.define` is invoked, the process responsible for compiling `a.ex` is going to pause and notify our main process. The main process will then start the compilation of other files. Whenever the module `B` is compiled, the main process is going to tell the process responsible for `a.ex` to resume compilation since its dependency `B` is now available.
+
+In order to customize this process, we are going to take a look at Erlang's error handler.
+
+## Custom error handler
+
+By default, Elixir (and Erlang) code is autoloaded. This means that, if we invoke `List.delete` and the module `List` was not loaded yet, the Erlang VM is going to look into the `ebin` directory (the directory where we put compiled files) and try to load it. This process is controlled by the [`error_handler` module in Erlang](http://erlang.org/doc/man/error_handler.html) via two callback functions: `undefined_function` and `undefined_lambda`.
+
+As discussed in the previous section, we want to extend the error handler to actually stop the currently running process whenever a module is not found and resume the process only after we ensure the module is compiled. To do that, we can simply define our own error handler and ask Erlang to use it. Our custom error handler is defined as follows:
+
+    defmodule Elixir.ErrorHandler do
+      def undefined_function(module, fun, args) do
+        ensure_loaded(module)
+        :error_handler.undefined_function(module, fun, args)
+      end
+
+      def undefined_lambda(module, fun, args) do
+        ensure_loaded(module)
+        :error_handler.undefined_lambda(module, fun, args)
+      end
+
+      defp ensure_loaded(module) do
+        case Code.ensure_loaded(module) do
+          { :module, _ } ->
+            []
+          { :error, _ } ->
+            parent = Process.get(:elixir_parent_compiler)
+            parent <- { :waiting, Process.self, module }
+            receive do
+              { :release, ^parent } -> ensure_loaded(module)
+            end
+        end
+      end
+    end
+
+Our error handler defines two public functions. Both those functions are callbacks required to be implemented by the error handler. They simply call `ensure_loaded(module)` and then delegate the remaining logic to Erlang's original `error_handler`.
+
+The private `ensure_loaded` function calls `Code.ensure_loaded(module)` which checks if the given module is loaded and, if not, tries to load it. In case it succeeds, it returns `{ :module, _ }`, which means the module is available and we don't need to stop the current process. However, if it returns `{ :error, _ }`, it means the module cannot be found and we need to wait until it is compiled. For that, we invoke `Process.get(:elixir_parent_compiler)` to get the PID of the main process so we can notify it that we are waiting on a given module. Then we invoke the macro `receive` as a way to stop the current process until we receive a message from the parent saying new modules are available, starting the flow again.
+
+With our error handler code in place, the first thing we need to do is to change the function given to `spawn_link` to use the new error handler:
+
+    spawn_link(fn ->
+      Process.put(:elixir_parent_compiler, parent)
+      Process.flag(:error_handler, Elixir.ErrorHandler)
+
+      :elixir_compiler.file_to_path(current, output)
+      parent <- { :compiled, Process.self() }
+    end)
+
+Notice that we have two small additions. First we store the `:elixir_parent_compiler` PID in the process dictionary so we are able to read it from the error handler and then we proceed to configure a flag in our process so our new error handler is invoked whenever a module or function cannot be found.
+
+Second, our main process can now receive a new `{ :waiting, child, module }` message, so we need to extend it to account for those messages. Not only that, we need to control which PIDs we have spawned so we can notify them whenever a new module is compiled, forcing us to add a new argument to the `spawn_compilers` function. `spawn_compilers` would then be rewritten as follows:
+
+    def spawn_compilers([current|files], output, stack) do
+      parent = Process.self()
+      child  = spawn_link(fn ->
+        :elixir_compiler.file_to_path(current, output)
+        parent <- { :compiled, Process.self() }
+      end)
+      wait_for_messages(files, output, [child|stack])
+    end
+
+    # No more files and stack is empty, we are done
+    def spawn_compilers([], _output, []) do
+      :done
+    end
+
+    # No more files and stack is not empty, wait for all messages
+    def spawn_compilers([], output, stack) do
+      wait_for_messages([], output, stack)
+    end
+
+Notice we added an extra clause to `spawn_compilers` so we can properly handle the case where we don't have more files to spawn but we are still waiting for processes in the stack. We have also moved our `receive` logic to a new private function called `wait_for_messages`, implemented as follows:
+
+    defp wait_for_messages(files, output, stack) do
+      receive do
+        { :compiled, child } ->
+          new_stack = List.delete(stack, child)
+          Enum.each new_stack, fn(pid) ->
+            pid <- { :release, Process.self }
+          end
+          spawn_compilers(files, output, new_stack)
+        { :waiting, _child, _module } ->
+          spawn_compilers(files, output, stack)
+        { :EXIT, _child, { reason, where } } ->
+          :erlang.raise(:error, reason, where)
+      after
+        10_000 ->
+          raise "dependency on unexesting module or possible deadlock"
+      end
+    end
+
+The implementation for `wait_for_messages` is now broken into 4 clauses:
+
+* `{ :compiled, child }` - Similar as before, it is the notification a child processed finished compilation. Every time we receive such notifications, we remove the child PID from the stack and notify the remaining PIDs in the stack that new modules are available. Notice that we no longer match on a specific `^child` PID, since now we can receive messages from different children at the same time;
+
+* `{ :waiting, _child, _module }` - A message received every time a child process is waiting on a module to be compiled. In this scenario, all we do is spawn a new process to compile another file, ensuring compilation is never blocked;
+
+* `{ :EXIT, _child, { reason, where } }` - The same behavior as before, it simply raises an error if any of the child processes fail;
+
+* `after: 10_000` - This clause is going to be invoked whenever the main process does not receive a message for 10 seconds. This means a file depends on a module that does not exist (and therefore waits forever) or there is a cyclic dependency;
+
+And that's all we need to have a basic version of our parallel compilation working. Notice we start compiling only one file at a time but, as soon as we depend on other files, the number of PIDs in the stack starts to grow. If we wanted, we could modify the code to make use of a head start and compile more than one file since the beginning.
+
+It is important to notice that this code has room for improvements. First, every time a new module is compiled, we notify all child process that new modules are available. This is a waste of resource if we consider that the child modules tells us explicitly on which modules they are waiting on. Therefore, the code could be modified to store a mapping from each child process to the module it is waiting for so that when a new module is compiled, only the children that depend on it are notified.
+
+Also, if we start storing which module each process is depending on, we are able to know whenever we have a deadlock or a dependency on an nonexistent file, allowing us to get rid of the timeout.
+
+All those improvements and other goodies like callbacks are implemented in Elixir source code and we recommend you take a look at both the [Elixir.ParallelCompiler](https://github.com/elixir-lang/elixir/blob/6182602f1205e2d9fc54666e0721270a27226fbc/lib/elixir/parallel_compiler.ex) and [Elixir.ErrorHandler](https://github.com/elixir-lang/elixir/blob/6182602f1205e2d9fc54666e0721270a27226fbc/lib/elixir/error_handler.ex) modules to see all the details firsthand.
+
+Happy coding!
diff --git a/_posts/2012-04-27-what-s-new-in-elixir-3.markdown b/_posts/2012-04-27-what-s-new-in-elixir-3.markdown
new file mode 100644
index 000000000..2f9185888
--- /dev/null
+++ b/_posts/2012-04-27-what-s-new-in-elixir-3.markdown
@@ -0,0 +1,216 @@
+---
+layout: post
+title: What's New in Elixir  &#35;3
+author: Alexei Sholik
+category: "What's New in Elixir"
+excerpt: It's been two weeks since the last edition of the series, so this one is going to be packed with information.
+---
+
+It's been two weeks since the last edition of the series, so this one is going to be packed with information.
+
+As usual, I'm using the latest available master (`b4cc71a8351222721b0e1dce130843d7e683863e`) to compile and run the code snippets in this post.
+
+You might have noticed that the version number has been downgraded to 0.5.0 recently. This doesn't mean that half of the features have been removed from Elixir. It simply indicates that there's still plenty of work to be done, but we're sure we're moving in the right direction.
+
+Without further ado, let's get to it.
+
+
+## Highlights ##
+
+José has written an awesome blog post describing how the new parallel compiler allows Elixir to seamlessly resolve dependencies and improve the speed of ~~light~~ compilation by doing only the work that needs to be done. Read all about it [here][1].
+
+  [1]: http://elixir-lang.org/blog/2012/04/24/a-peek-inside-elixir-s-parallel-compiler/
+
+
+## API Changes ##
+
+
+### Keyword ###
+
+Keywords can have duplicate entries. When you `get` a value for a key from a keyword, the first entry with that key is returned. When you `put` a new value, it replaces all values for the given key:
+
+    kv = [a: 1, a: 2, b: 3]
+    #=> [{:a,1},{:a,2},{:b,3}]
+
+    Keyword.get kv, :a
+    #=> 1
+
+    Keyword.put kv, :a, 10
+    #=> [{:a,10},{:b,3}]
+
+### New syntax for protocol declarations ###
+
+Protocol declarations now look more like module definitions. This allows us to document each function and increases their overall visual appeal (in my view).
+
+    defprotocol ProtoName do
+      @only [Record, List]
+
+      @doc """
+      This is a doc string.
+      """
+      def function(arg)
+
+      @doc """
+      Another function
+      """
+      def another_function(list)
+    end
+
+As before, functions are only declared inside the `defprotocol` body. Their implementation is defined separately (in a `defimpl` block) for each type that wishes to support the protocol. More info can be found in the [Getting Started guide][2] (_Section 4.2_).
+
+  [2]: http://elixir-lang.org/getting_started/4.html
+
+### Declarations for default arguments ###
+
+Default arguments in Elixir are shared between different clauses of the functions with the same name. This recent addition allows this fact to be expressed more clearly in the code.
+
+    defmodule DefaultTest do
+      def function(a, b // "world")
+
+      def function(a, b) when is_binary(a) do
+        a <> b
+      end
+
+      def function(a, b) when is_list(a) do
+        a ++ to_char_list(b)
+      end
+    end
+
+    ###
+
+    iex> DefaultTest.function "Hello "
+    "Hello world"
+
+    iex> DefaultTest.function 'Hello '
+    'Hello world'
+
+Notice how the first declaration does not have a body, its only purpose is to define the default argument that will be used in the remaining two clauses.
+
+### Revamped assert with smart guessing ###
+
+Our good old `assert` macro has become a tad smarter and can be now be used in places where we had to use `assert_equal`, `assert_operator`, and `assert_access` before.
+
+    # Replaces assert_equal
+    assert "abc" == to_binary('abc')
+
+    # Replaces assert_operator
+    assert 11 < 13
+
+    # Replaces assert_access. Checks that the regexp can access/match the string.
+    assert "foo"[%r(o)]
+
+### Enum ###
+
+The `Enum` module has been reworked slightly in order to add support for dicts (described below). It's still working with lists as before, but now you can also use most of its functions with dicts too.
+
+
+## New Modules & Protocols ##
+
+### Meet the new Dict protocol along with it's buddies HashDict and Orddict ###
+
+This change has been cooking for quite a while. Now it's finally merged into master. Let's have a look:
+
+    dict = HashDict.new [a: 1, b: 2, c: 3]
+    Dict.keys dict
+    #=> [:a,:b,:c]
+
+    Dict.values dict
+    #=> [1,2,3]
+
+    dict = Dict.put dict, "hello", "world"
+    Dict.get dict, "hello"
+    #=> "world"
+
+    ord = Orddict.new [{"a", []}, {"b", [1, 2, 3]}, {[nil], "cool"}]
+    Dict.get ord, [nil]
+    #=> "cool"
+
+    ord = Dict.merge ord, Orddict.new([key: 'value'])
+    Dict.get ord, :key
+    #=> 'value'
+
+Notice, that `Dict` is a protocol and it works with both hash dicts and orddicts. Take a look at the [source code][3] for the new modules. The protocol declaration in _common.ex_ has extensive documentation for the functions it defines.
+
+  [3]: https://github.com/elixir-lang/elixir/tree/master/lib/dict
+
+
+Let's look at how we can use `Enum` with the new dict modules.
+
+    # ord is our orddict from the previous snippet
+
+    # Swap keys and values
+    Enum.map ord, fn({k, v}) -> {v, k} end
+    #=> [{'value',:key},{"cool",[nil]},{[],"a"},{[1,2,3],"b"}]
+
+Notice that `Enum` always returns a list even when passed a dictionary.
+
+Some functions in `Enum` expect an ordered collection to be passed in. Since `HashDict` does not define a meaningful order for its contents, you'll get a runtime error if you try to use one of those functions with this dict. `Orddict`, on the other hand, keeps its entries sorted by keys:
+
+    ord = Orddict.new [{'value',:key},{"cool",[nil]},{[],"a"},{[1,2,3],"b"}]
+    #=> {Orddict.Record,[{[],"a"},{[1,2,3],"b"},{'value',:key},{"cool",[nil]}]}
+
+    Enum.drop_while ord, fn({k, v}) -> is_list(k) end
+    #=> [{"cool",[nil]}]
+
+Take a look at the [source code][4] for the detailed descriptions of all the functions defined in `Enum`. Those functions that expect an ordered collection are explicitly marked as such.
+
+  [4]: https://github.com/elixir-lang/elixir/blob/master/lib/enum.ex
+
+
+## Technical Stuff ##
+
+### Macros can now be invoked locally ###
+
+You can also define private macros with `defmacrop`. Example:
+
+    defmodule Obnoxious do
+      defmacro swap({:*, line, args}) do
+        {:+, line, args}
+      end
+
+      defmacrop priv_swap({:+, line, args}) do
+        {:*, line, args}
+      end
+
+      def mul(a, b) do
+        swap(a * b)
+      end
+
+      def add(a, b) do
+        priv_swap(a + b)
+      end
+    end
+
+    ###
+
+    iex> Obnoxious.mul 3, 4
+    7
+
+    iex> Obnoxious.add 6, 6
+    36
+
+
+### Extended module info available at runtime ###
+
+Given the definition of `Obnoxious` above, we can query some of its attributes at run time:
+
+    # Functions exported by the module
+    iex> Obnoxious.__info__(:functions)
+    [{:__info__,1},{:add,2},{:mul,2}]
+
+    # Macros exported by the module
+    iex> Obnoxious.__info__(:macros)
+    [{:swap,1}]
+
+As you can see, the private macro `priv_swap` is not available outside of the module it is defined in, the same goes for private functions. They could even have been inlined by the compiler, who knows.
+
+And don't forget that Erlang compiler provide the `module_info` function for each compiled module:
+
+    iex> Obnoxious.module_info
+    [{:exports,[{:__info__,1},{:MACRO_swap,1},{:mul,2},{:add,2},{:module_info,0},{:module_info,1}]}, ...]
+
+---
+
+That's it for this week. It's exciting to see Elixir evolving each day. Join the community if you don't want to end up lagging behind!
+
+Thank you all and see you next week!
diff --git a/_posts/2012-05-06-web-framework-2.markdown b/_posts/2012-05-06-web-framework-2.markdown
new file mode 100644
index 000000000..524de0991
--- /dev/null
+++ b/_posts/2012-05-06-web-framework-2.markdown
@@ -0,0 +1,300 @@
+---
+layout: post
+title: Building a Web Framework. Part II
+author: Alexei Sholik
+category: "Web dev"
+excerpt: Last time we learned how to write macros that provide a useful abstraction for building a web server on top of the language. The server we built was able to serve static files and handle user's GET and POST requests. This week we're going to further extend our web framework, fix a couple of rough edges, and experiment with networking.
+---
+
+[Last time][1] we learned how to write macros that provide a useful abstraction on top of the language which we used for building a web server. The server we built was able to serve static files and handle user's GET and POST requests. Here's what it looked like:
+
+    defmodule HelloServer do
+      use Feb, root: "assets"
+
+      get "/" do
+        { :ok, "Hello world!" }
+      end
+
+      get "/demo", file: "demo.html"
+
+      post "/" do
+        { :ok, "You're posted!\nYour data: #{inspect _data}" }
+      end
+    end
+
+If you missed the previous post, I encourage you to [go back][1] to it and make sure you understand the concepts explained there.
+
+In this post we're going to fix a couple of rough edges and further extend our web framework. Specifically, we're going to implement URL query parsing and add a generic `multi_handle` macro that will complete our syntactic abstraction. From that point on we'll start looking at how to add networking to the framework to eventually be able to build a real website. This is what the code for our `HelloServer` is going to turn into by the end of this post:
+
+    defmodule HelloServer do
+      use Feb, root: "assets"
+
+      get "/" do
+        { :ok, "Hello world!" }
+      end
+
+      get "/demo", file: "demo.html"
+
+      post "/" do
+        { :ok, "You're posted!\nYour data: #{inspect _data}" }
+      end
+
+      ## New stuff below this line ##
+
+      multi_handle "/kvstore" do
+        :post ->
+          IO.puts "Got a POST request with data: #{inspect _data}"
+          :ok
+
+        :get ->
+          IO.puts "Got a GET request with query: #{inspect _query}"
+          :ok
+      end
+
+      get "/search", query do
+        search = Dict.get query, "q"
+        if search do
+          { :ok, "No items found for the query '#{search}'" }
+        else
+          { :ok, "No query" }
+        end
+      end
+    end
+
+The entire source code for this and the past articles is available over at [GitHub][2]. To recap, we have two files in the _src_ directory: _feb.ex_ which contains the code for our `Feb` framework and _server.ex_ which is a simple server implementation (named `HelloServer`) based on the framework. To follow along with the post, I recommend keeping the code from the _1-macros_ directory open in a side window. I will be explaining the new stuff based on the code we have seen so far.
+
+  [1]: http://elixir-lang.org/blog/2012/04/21/hello-macros/
+  [2]: https://github.com/alco/web-framework
+
+
+## Unexpected Requests ##
+
+Our server can currently handle only those requests that are explicitly coded. If we try to send it a different kind of request, it'll crash:
+
+    iex> HelloServer.handle :oops, "/", nil
+    ** (FunctionClauseError) no function clause matching: HelloServer.handle(:oops, "/", nil)
+
+To avoid this, we'll add a catch-all default handler to _feb.ex_:
+
+    defmacro default_handle(_) do
+      quote do
+        def handle(method, path, data // "")
+        def handle(method, path, data) do
+          cond do
+            # Allow only the listed methods
+            not (method in [:get, :post]) -> format_error(400)
+            
+            # Path should always start with a slash (/)
+            not match?("/" <> _, path) -> format_error(400)
+            
+            # Otherwise, the request is assumed to be valid but the requested
+            # resource cannot be found
+            _ -> format_error(404)
+        end
+      end
+    end
+
+I'll explain the ignored argument to this macro shortly. I've also introduced a new function that automates error reporting a bit. Here's how it's implemented in _feb.ex_:
+
+    # Return a { :error, <binary> } tuple with error description
+    def format_error(code) do
+      { :error, case code do
+        400 -> "400 Bad Request"
+        404 -> "404 Not Found"
+        _   -> "503 Internal Server Error"
+      end }
+    end
+
+Lastly, I've changed the `import` statement in the `__using__` macro (again in _feb.ex_) to the following one:
+
+    import Feb
+    # was
+    # import Feb, only: [get: 2, post: 2]
+
+This will allow us to add new functions and macros and make them available to the client code automatically.
+
+To include the `default_handle` function in `HelloServer` we can add a call to it at the end of the module definition. But there is a better way, an automatic one. Elixir provides the function `Module.add_compile_callback/1` which is exactly what we need to set up our default handler and ensure that it is going to be invoked only after every other clause was tried and failed to match the arguments.
+
+We'll add the following line at the beginning the `__using__` macro definition in _feb.ex_:
+
+    defmacro __using__(module, opts) do
+      Module.add_compile_callback module, __MODULE__, :default_handle
+
+Elixir will call the `default_handle` macro as if it were placed right at the end of `HelloServer` definition and it will pass the module name as an argument (which we're not using here, so we're simply ignoring it).
+
+Now let's test the new handler.
+
+    $ make
+    $ iex
+    iex> HelloServer.handle :oops, "/"
+    {:error,"400 Bad Request"}
+
+    iex> HelloServer.handle :get, "wrong_path"
+    {:error,"400 Bad Request"}
+
+    iex> HelloServer.handle :get, "/404"
+    {:error,"404 Not Found"}
+
+That's better.
+
+
+## Generic Handle ##
+
+Let's add one more piece of sugar to our framework by allowing the users to write one function that will handle several HTTP methods, useful for defining various interactions with a single path spec. For instance:
+
+    multi_handle "/kvstore" do
+      :post ->
+        IO.puts "Got a POST request with data: #{_data}"
+        :ok
+      :get ->
+        IO.puts "Got a GET request with query: #{_query}"
+        :ok
+    end
+
+You can see how this approach allows us to express the fact that "/kvstore" provides some kind of service with support for multiple methods. This skeleton could be used to build a REST API, for example. This time around we'll be using implicit variables for POST data and GET query.
+
+Let's think for a moment what the `multi_handle` macro should expand to. So far we've been expanding our `post` and `get` macros into one `handle` function that uses pattern-matching to dispatch to the appropriate handler based on the incoming request. There's no reason not to use the same approach for `multi_handle`. So here's what its implementation looks like:
+
+    defmacro multi_handle(path, [do: { :"->", _line, blocks }]) do
+      # Iterate over each block in `blocks` and
+      # produce a separate `handle` clause for it
+      Enum.map blocks, fn ->
+        { [:get], code } ->
+          quote hygiene: false do
+            def handle(:get, unquote(path), _query) do
+              unquote(code)
+            end
+          end
+        { [:post], code } ->
+          quote hygiene: false do
+            def handle(:post, unquote(path), _data) do
+              unquote(code)
+            end
+          end
+      end
+    end
+
+When the macro is called, we receive all clauses under the `do` key with each HTTP verb and its implementation inside the syntax node `->`, in the order they are specified. Each clause is a tuple with two elements, the first one is a list of parameters given on the left side and the second one is the implementation, for example:
+
+    { :"->", line, [{[:get], <user code>}, {[:post], <user code>}] }
+
+In our `multi_handle` macro signature, we pattern match against the expression above and get a list with the blocks of code. Then we loop through this list emitting a function definition with the corresponding arguments. The code for each of the code blocks is similar to the GET and POST handlers we have defined earlier.
+
+Finally, let's test it in `iex`:
+
+    $ make
+    $ iex
+    iex> import HelloServer
+    []
+
+    iex> handle :get, "/kvstore"
+    Got a GET request with query: ""
+    :ok
+
+    iex> handle :post, "/kvstore"
+    Got a POST request with data: ""
+    :ok
+
+    iex> handle :post, "/kvstore", "secret"
+    Got a POST request with data: "secret"
+    :ok
+
+So far so good. Now let's add the ability to get the query from a URL.
+
+
+## URL Queries ##
+
+We'd like our server to be able to handle queries of the form `/search?q=donut`. The `URI` module which ships with Elixir has the right tools for the task: `parse` and `decode_query`. The first one parses a URI and stores it in a `URI.Info` record. The second one accepts a query string and returns a dict.
+
+We'll implement a `split_path` function in `Feb` that will return a tuple of the form `{ path, query }` where `query` is going to be an orddict. If the path does not contain a query, an empty orddict will be returned.
+
+    # Return { path, query } where `query` is an orddict.
+    def split_path(path_with_query) do
+      uri_info = URI.parse path_with_query
+      { uri_info.path, URI.decode_query(uri_info.query || "") }
+    end
+
+The code is pretty straightforward. Let's make sure that it works:
+
+    $ make
+    $ iex
+    iex> Feb.split_path "/search"
+    {"/search",{Orddict.Record,[]}}
+
+    iex> Feb.split_path "/search?q=hello&find=chuck%20norris"
+    {"/search",{Orddict.Record,[{"find","chuck norris"},{"q","hello"}]}}
+
+OK, so that's done. But we have no way of passing the query to the server. This is solved by adding another clause to the `get` macro as follows:
+
+    # feb.ex
+
+    # A 2-argument handler that also receives a query along with the path
+    defmacro get(path, query, [do: code]) do
+      quote do
+        def handle(:get, unquote(path), unquote(query)) do
+          unquote(code)
+        end
+      end
+    end
+
+The only difference between this handler and the basic query-less GET handler is that we include the `query` argument provided by the user in the generated function definition. Remember that in our [POST handler](https://github.com/alco/web-framework/blob/master/1-macros/src/feb.ex#L49) we used a `quote` form with hygiene turned off in order to define an implicit `_data` variable. Our GET handlers could also receive such implicit argument if we turned the hygiene off for them. The reason I've chosen to handle the query explicitly in this case is to show you that there are multiple options available. You may choose whichever you like most.
+
+With this new clause in place we can add another `get` request definition in the `HelloServer` module:
+
+    # server.ex
+
+    get "/search", query do
+      search = Dict.get query, "q"
+      if search do
+        { :ok, "No items found for the query '#{search}'" }
+      else
+        { :ok, "No query" }
+      end
+    end
+
+Let's take a step back and look again at the definition for this `get` macro in _feb.ex_. It takes its second argument (the `query`) and puts it in place of the third argument in the definition of `handle`. The reason we're unquoting it (instead of simply writing `query`) is to allow the user to choose an arbitrary name for this argument. So, for instance, the following definition in `HelloServer` will work the same way:
+
+    get "/search", my_query do
+      # the query dict is now stored in `my_query`
+      IO.inspect my_query
+    end
+
+All that's left is to test the code:
+
+    $ make
+    $ iex
+    iex> { path, query } = Feb.split_path "/search?q=donut"
+    {"/search",{Orddict.Record,[{"q","donut"}]}}
+
+    iex> import HelloServer
+    []
+
+    iex> handle :get, path, query
+    {:ok,"No items found for the query 'donut'"}
+
+    iex> handle :get, "/search", Orddict.new
+    {:ok,"No query"}
+
+    # Let's also test our generic handler with a query
+    iex> handle :get, "/kvstore", URI.decode_query("key=value")
+    Got a GET request with query: {Orddict.Record,[{"key","value"}]}
+    :ok
+
+Great! With this we have completed the implementation of our simplistic DSL. Let's wrap up for this week and do a quick review of what we have learned.
+
+
+## Conclusion ##
+
+By this time you know how to use macros to your advantage by defining appropriate abstractions that allow writing code that's easy to grasp. Another benefit of this approach is that it hides implementation details so that they can be changed without touching the application-level code. We'll see an example of this in a future post.
+
+Next time, we'll implement a basic networking layer for our framework. It will serve as a basis for testing and adding support for the real HTTP protocol later on.
+
+---
+
+This concludes the second part in the series. Don't forget to grab the code [from GitHub][2]. I'd like to thank [@rafaelfranca][4] and [@josevalim][5] for their valuable suggestions. If you have any questions or corrections, send a message to the [mailing list][3] or join the the **#elixir-lang** channel on **irc.freenode.net**.
+
+See you there.
+
+  [3]: http://groups.google.com/group/elixir-lang-talk
+  [4]: https://github.com/rafaelfranca
+  [5]: https://github.com/josevalim
diff --git a/_posts/2012-05-13-what-s-new-in-elixir-4.markdown b/_posts/2012-05-13-what-s-new-in-elixir-4.markdown
new file mode 100644
index 000000000..ba801c719
--- /dev/null
+++ b/_posts/2012-05-13-what-s-new-in-elixir-4.markdown
@@ -0,0 +1,149 @@
+---
+layout: post
+title: What's New in Elixir  &#35;4
+author: Alexei Sholik
+category: "What's New in Elixir"
+excerpt: Welcome to the new edition of our biweekly series. Elixir development has been progressing at a steady pace and there are quite a few new things we're going to have a look at today.
+---
+Welcome to the new edition of our biweekly series. Elixir development has been progressing at a steady pace and there are quite a few new things we're going to have a look at today.
+
+As always, I'm using the latest master (`d28d716de0f2892e31b4bcc9f87549b125075fa5`) to compile and run the code snippets in this post.
+
+## Highlights ##
+
+The [online docs][1] are finally up! This means easier navigation and integrated search. The docs are generated directly from the source, so it's very easy for you to contribute. Simply hit the _Source_ link, author your patch and send a pull request to the main Elixir repo. With GitHub you can do this all without leaving the browser. Any changes improving the documentation are welcome.
+
+The docs are generated with the help of the [ExDoc][0] utility which is itself written in Elixir.
+
+  [0]: https://github.com/elixir-lang/ex_doc
+  [1]: http://elixir-lang.org/docs/
+
+
+## API Changes ##
+
+### Overridable ###
+
+Overridable is no longer a data attribute, but a macro. This makes it more straightforward to define an overridable function that has multiple clauses of the same arity.
+
+    defmodule DefaultMod do
+      defmacro __using__(_module, _opts) do
+        quote do
+          def test(:x) do
+            IO.puts "This is X"
+          end
+
+          def test(:y) do
+            IO.puts "This is Y"
+          end
+
+          defoverridable [test: 1]
+        end
+      end
+    end
+
+    defmodule InheritMod do
+      use DefaultMod
+
+      def test(:z) do
+        IO.puts "This is Z"
+      end
+    end
+
+    ###
+
+    InheritMod.test :x
+    #=> ** (FunctionClauseError) no function clause matching: InheritMod.test(:x)
+
+    InheritMod.test :y
+    #=> ** (FunctionClauseError) no function clause matching: InheritMod.test(:y)
+
+    InheritMod.test :z
+    #=> This is Z
+
+As you can see, all clauses are being overriden with one new clause. If you want to keep the default clauses, you can use the `super` keyword that is available inside an overriden function definition. So, if we add the following definition
+
+    def test(_) do
+      super
+    end
+
+at the end of `InheritMod`, it would result in the following:
+
+    InheritMod.test :x
+    #=> This is X
+
+    InheritMod.test :y
+    #=> This is Y
+
+    InheritMod.test :z
+    #=> This is Z
+
+Alternatively, if you wanted to keep your function extensible but not overridable, you would do away with the `defoverridable` line altogether. In this case, any new clause defined in `InheritMod` would be just that -- a new clause for the function that already has some number of clauses defined.
+
+## Misc. Stuff ##
+
+* The new `in` keyword has been added to simplify some common patterns. For instance, if you wanted to check for a falsey value, you had to write
+
+      case val do
+        nil ->   # code
+        false -> # code
+        other -> # other_code
+      end
+
+      # or
+
+      case val do
+        x when x == nil or x == false -> # code
+        other -> # other_code
+      end
+
+  Now you can write
+
+      case val do
+        x in [nil, false] -> # code
+        other -> # other_code
+      end
+
+  This new syntax can be used in guards, ordinary conditions, and pattern matching.
+
+* The new [File.exists?][2] function allows you to check if a file object exists in the file system. It can be a regular file, a directory, a socket, etc. If want to check for existence of a regular file, use [File.regular?][3] instead.
+
+  [2]: http://elixir-lang.org/docs/stable/File.html#exists?/1
+  [3]: http://elixir-lang.org/docs/stable/File.html#regular?/1
+
+* The [URI][4] module has got a new function for URL query parsing: [decode_query][5].
+
+      URI.decode_query "key=value&login=password"
+      #=> {Orddict.Record,[{"key","value"},{"login","password"}]}
+
+    Orddict is used by default. You can also pass your own dict
+
+      d = URI.decode_query "key=value&login=password", HashDict.new
+      Dict.get d, "login"
+      #=> "password"
+
+    This function also does percent-decoding for you
+
+      d = URI.decode_query "find=a%20place%20to%20live"
+      Dict.get d, "find"
+      #=> "a place to live"
+
+  [4]: http://elixir-lang.org/docs/stable/URI.html
+  [5]: http://elixir-lang.org/docs/stable/URI.html#decode_query/2
+
+* [OptionParser][6] now supports argument aliases:
+
+      OptionParser.Simple.parse(["-d"], [d: :debug])
+      #=> { [debug: true], [] }
+
+  [6]: http://elixir-lang.org/docs/stable/OptionParser.Simple.html
+
+* Node names are now valid atoms:
+
+      iex> :foo@bar
+      :"foo@bar"
+
+---
+
+That's it for this edition. Don't forget to go [read the docs][1] and help us improve them :)
+
+Thank you all and see you next time!
diff --git a/_posts/2012-05-25-elixir-v0-5-0-released.markdown b/_posts/2012-05-25-elixir-v0-5-0-released.markdown
new file mode 100644
index 000000000..ac1f47ab7
--- /dev/null
+++ b/_posts/2012-05-25-elixir-v0-5-0-released.markdown
@@ -0,0 +1,48 @@
+---
+layout: post
+title: Elixir v0.5.0 released
+author: José Valim
+category: Releases
+excerpt: We have finally released Elixir v0.5.0! This marks the first release since the language was rewritten. In this blog post, we will discuss what we achieved during this time and what are the next steps!
+
+---
+
+We have finally released [Elixir](http://elixir-lang.org/) v0.5.0! This marks the first release since the language was rewritten. In this blog post, we will discuss what we achieved during this time and what are the next steps!
+
+If you don't care about any of these, you can go straight to our [Getting Started guide](http://elixir-lang.org/getting_started/1.html). If you do, keep on reading!
+
+## Looking back
+
+I have started working in Elixir at the beginning of 2011. Around April that year, I had released the version v0.3.0 that was stable enough for me to start using in my own projects. However, after using it in a couple projects quickly reviewed that I was not happy with some of the design decisions taken early on.
+
+At that time, Elixir attempted to be a considerable departure from Erlang and that revealed very fast to a bad design decision because, in order to use any Erlang module, we first would have to provide an Elixir wrapper for it. Any new function or module in new Erlang releases would have to be wrapped first in Elixir, which means we would always play catch up with Erlang.
+
+After not feeling productive enough with that Elixir version, I have decided to take a break from Elixir to study old, new and emerging languages. The challenge was to not re-invent Erlang as a language, but how to provide the productivity and flexibility I expect from Elixir while staying a 100% compatible with Erlang.
+
+It was around October 2011, during a short stay in San Francisco, that I came up with what would be [the foundation of Elixir's current version](http://github.com/josevalim/lego-lang) with the help of Yehuda Katz. Development of the new Elixir version started a few days before 2012 and continued steady when the new year came in.
+
+Around February of that year, feeling confident enough about the direction the language was moving (and initial benchmarks I had made at that point), I have pitched Elixir to [my company, Plataformatec](http://plataformatec.com.br/), and they have accepted to sponsor Elixir. With their help, Elixir developed even faster and that's what we are going to take a look next.
+
+## Where we are
+
+One of the goals we have set was to have a good website and documentation before the next official release. With the help of the Plataformatec team, we created a logo for Elixir and put this website live.
+
+At the same time, [we were working on pygments support](https://bitbucket.org/birkenfeld/pygments-main/pull-request/57/add-elixir-and-elixir-console-lexers), a [documentation generation tool](https://github.com/elixir-lang/ex_doc) and many others. Soon, Github was able to syntax highlight Elixir code and [our API documentation was online](http://elixir-lang.org).
+
+At the same time, people started to gather around #elixir-lang channel on irc.freenode.net and [play with Elixir](http://github.com/elixir-lang/mix), [start their](https://github.com/guedes/exdate) [own projects](https://github.com/yrashk/validatex) and [tutorials](https://github.com/alco/elixir/wiki/Erlang-Syntax:-A-Crash-Course).
+
+Although the initial release was scheduled to April 2012, the feedback from such early developers forced us to review some design and syntax decisions and were extremely important to shape the language as it is today.
+
+With v0.5.0 finally out, we are committing to a stable syntax and a basic standard library. In the last couple days before the release, we have been working on streamlining the documentation and ensure Elixir works on Mac, Linux and Windows machines!
+
+## Looking forward
+
+There are still many, many things to do! In the next months, we will continue working on growing our community, talks and other documentation material. A huge thanks to [Alexei Sholik](http://twitter.com/true_droid) who is moving this area forward.
+
+We will also work on better integration and documentation on building Erlang systems. Erlang ships with the [Open Telecom Platform](http://en.wikipedia.org/wiki/Open_Telecom_Platform) which provides many tools to build distributed applications. In v0.5.0, all these tools are already available but we want to make the build process even simpler.
+
+In parallel, we will improve our [documentation generation tool](https://github.com/elixir-lang/ex_doc) and [build tool](https://github.com/elixir-lang/mix) which will likely be merged into core when they are solid enough.
+
+Finally, we will continue improving the Standard Library. Although Elixir's goal is to rely on Erlang the most as possible, we also want to provide a small Standard Library which makes better use of Elixir semantics. For the next weeks, we will focus on improving the IO and File manipulation modules. New data types may also appear, for example, ranges come to my mind.
+
+Check out our [home page](http://elixir-lang.org/) and the [getting started guide](http://elixir-lang.org/getting_started/1.html) for more information. Welcome aboard and grab a cup of Elixir, because you are certainly going to enjoy the ride!
\ No newline at end of file
diff --git a/_posts/2012-07-05-what-s-new-in-elixir-5.markdown b/_posts/2012-07-05-what-s-new-in-elixir-5.markdown
new file mode 100644
index 000000000..e4ef398ae
--- /dev/null
+++ b/_posts/2012-07-05-what-s-new-in-elixir-5.markdown
@@ -0,0 +1,93 @@
+---
+layout: post
+title: What's New in Elixir  &#35;5
+author: José Valim
+category: "What's New in Elixir"
+excerpt: The series is back after the first, official 0.5.0 release and we are packed with information!
+---
+
+This is our first post from the What's New in Elixir series after [Elixir v0.5.0 was released](http://elixir-lang.org/blog/2012/05/25/elixir-v0-5-0-released/) and we have great improvements to share with you.
+
+Many of these improvements are related to how Elixir handles macros, but we also have the addition of ranges, some performance improvements and other minor changes.
+
+## API Changes ##
+
+### List and bit comprehensions ###
+
+The syntax for list and bit comprehensions was changed slightly to be more explicit and allow a developer to mix generators and filters:
+
+    lc x inlist [1,2,3], rem(x, 2) == 0, y inlist [4,5,6], do: x * y
+    #=> [8,10,12]
+
+### The `__ENV__` pseudo-variable ###
+
+Elixir provides many pseudo-variables that allow you to get information from the source code. For example, with `__MODULE__` you can get the current module name.
+
+In Elixir master, two pseudo-variables were deprecated (`__LINE__` and `__FUNCTION__`) in favor of the `__ENV__` variable. The `__ENV__` variable returns a [`Macro.Env` record](http://elixir-lang.org/docs/master/Macro.Env.html) that contains not only the current line and function but extra information such as the aliases set, macros imported and modules required:
+
+    iex> __ENV__.aliases
+    []
+    iex> alias List, as: L
+    []
+    iex> L.flatten([1,[2],3])
+    [1,2,3]
+    iex> __ENV__.aliases
+    [{L,List}]
+
+Besides the `__ENV__` variable, all macros can also access a `__CALLER__` pseudo-variable that contains the environment information about the caller. With such information, Elixir programmers can create more robust macros, as showed [in this commit which rewrites the `access` macro from Erlang to Elixir](https://github.com/elixir-lang/elixir/commit/088eff4c19614101cea55dfef9966d4de89181e3).
+
+## Performance improvements ##
+
+Regular expressions defined with the macros `%r` and `%R` are now compiled at compilation time instead of runtime, [as seen in this commit](https://github.com/elixir-lang/elixir/commit/646ee5f125601760bcd263105470545e0b7aa7f2). Our benchmarks showed that matching against [the regular expression defined in the URI module](https://github.com/elixir-lang/elixir/blob/ab61e6f95c37a8c0538f349a59be63ca00341b98/lib/uri.ex#L123) got twice faster:
+
+    Regex.match? %r/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/, "http://foo.com/"
+    #=> true
+
+The `Enum` module was also optimized when handling lists. Micro benchmarks show improvements from 1.5 to 4x. Such work was done over many commits throughout the month, but here is [an example of how `Enum.all?` and `Enum.any?` were optimized](https://github.com/elixir-lang/elixir/commit/058f0f66965323ca9e792b5143929ffd7819ed9d).
+
+## New features ##
+
+### Type specifications ###
+
+Elixir master also has shiny new features. Thanks to [Yurii Rashkovskii](https://github.com/yrashk), we now support [Erlang's type specification](http://www.erlang.org/doc/reference_manual/typespec.html):
+
+    @spec add(integer, integer), do: integer
+    def add(a, b), do: a + b
+
+Many tools in the Erlang community, as [dialyzer](http://www.erlang.org/doc/man/dialyzer.html) and [PropEr](https://github.com/manopapad/proper/), use type specifications to give feedback and point out inconsistencies, tests and improvements to your codebase. Supporting type specification is an important milestone which allows Elixir to integrate better with the existing Erlang community.
+
+### Ranges ###
+
+Elixir master has initial support for ranges. Ranges can be created with the operator `..` and integrate nicely with guard clauses. For example, a function that converts a student score to a message could be written as:
+
+    def score_to_message(x) when x in 0..40,   do: "Fail"
+    def score_to_message(x) when x in 41..60,  do: "Pass"
+    def score_to_message(x) when x in 61..70,  do: "Pass with Merit"
+    def score_to_message(x) when x in 71..100, do: "Pass with Distinction"
+
+Ranges can be extended via the range protocol, so developers can use their custom types in ranges and guard clauses too!
+
+### Other improvements ###
+
+There are many other improvements for the upcoming v0.6.0 release, including more robust and complete `IO` and `File` modules, more compilation callbacks with the `@before_compilation` and `@after_compilation` attributes and convenient helpers to work with macros, like `Macro.expand` that expands macros and `Macro.to_binary`, that receives a tree and converts it to its original source code:
+
+    iex> tree = Macro.expand(quote(do: !foo), __ENV__)
+    iex> IO.puts Macro.to_binary(tree)
+    case(foo) do
+      false ->
+        true
+      nil ->
+        true
+      _ ->
+        false
+    end
+
+In the example above, we use `Macro.expand` to expand the expression `!foo` and then print it using `Macro.to_binary`. We can see that the operator `!` is simply a macro that translates the expression to a `case` expression.
+
+## Community ##
+
+Besides improvements to Elixir itself, Elixir's community is also working on tools to make their day-to-day life easier. One of such examples is [genx](https://github.com/yrashk/genx), which provides helpers to work with Erlang OTP behaviors such as `application`, `gen_event` and others.
+
+More importantly, [rebar_elixir_plugin](https://github.com/yrashk/rebar_elixir_plugin) was also released to allow existing Erlang developers to compile Elixir source code using [Rebar](https://github.com/basho/rebar). For those not familar with Rebar, it is a build tool for Erlang projects created by [the good folks at Basho, from Riak fame](http://basho.com/).
+
+Finally, our documentation generation tool [ExDoc](https://github.com/elixir-lang/ex_doc) was improved to include the function signatures and arguments, making it more friendly to developers. [The documentation for Elixir master with those improvements is available here](http://elixir-lang.org/docs/master/). Enjoy!
diff --git a/_posts/2012-08-01-elixir-v0-6-0-released.markdown b/_posts/2012-08-01-elixir-v0-6-0-released.markdown
new file mode 100644
index 000000000..3e52772bb
--- /dev/null
+++ b/_posts/2012-08-01-elixir-v0-6-0-released.markdown
@@ -0,0 +1,28 @@
+---
+layout: post
+title: Elixir v0.6.0 released
+author: José Valim
+category: Releases
+excerpt: We have finally released Elixir v0.6.0! This release includes a build tool called Mix, support for Erlang typespecs, many improvements to IEx and improved IO, File and Macro support.
+
+---
+
+We have finally released [Elixir](http://elixir-lang.org/) v0.6.0! This release includes a build tool called Mix, support for Erlang typespecs, many improvements to IEx and improved IO, File and Macro support.
+
+## What's new
+
+When [we released version v0.5.0](http://elixir-lang.org/blog/2012/05/25/elixir-v0-5-0-released/), we have set three major goals for release v0.6.0:
+
+1. Provide a build tool that makes it easy to create, compile and test Elixir projects;
+2. Support [Erlang typespecs](http://www.erlang.org/doc/reference_manual/typespec.html);
+3. Improve IO and File modules to be more robust and complete.
+
+We have not only achieved those goals for this release, as we have added much more! A couple weeks ago, we have covered some of these unscheduled improvements, as improved Macro handling and Range support, which you can read more about in the ["What's new in Elixir #5" post](http://elixir-lang.org/blog/2012/07/05/what-s-new-in-elixir-5/).
+
+Our interactive shell (IEx) also had many improvements, thanks to the Elixir developer community. We now have easy access to documentation, remote shells, autocomplete and much more. In order to show you a bit of what you can do in this release, we have prepared a short (~6 min) screencast:
+
+<iframe src="http://player.vimeo.com/video/46709928" width="600" height="337" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe> <p><a href="http://vimeo.com/46709928">Elixir v0.6 quick tour - Mix and IEx</a> from <a href="http://vimeo.com/user3182384">Plataformatec</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
+
+That's it. Of course the documentation was also improved in the process, including two brand new getting started chapters on [Mix](/getting_started/mix/1.html) and [ExUnit](/getting_started/ex_unit/1.html). For the next months, we will continue improving Elixir (you can see some ideas floating around in the [issues tracker](github.com/elixir-lang/elixir/issues)) but we will start to focus on other tools and libraries for the community.
+
+Thank you and don't forget to [give Elixir a try](/getting_started/1.html)!
\ No newline at end of file
diff --git a/_posts/2012-10-20-elixir-v0-7-0-released.markdown b/_posts/2012-10-20-elixir-v0-7-0-released.markdown
new file mode 100644
index 000000000..40e6c29e3
--- /dev/null
+++ b/_posts/2012-10-20-elixir-v0-7-0-released.markdown
@@ -0,0 +1,18 @@
+---
+layout: post
+title: Elixir v0.7.0 released
+author: José Valim
+category: Releases
+excerpt: Elixir v0.7.0 is released with many improvements! Read on for more information.
+
+---
+
+Elixir v0.7.0 was released with bug fixes and many improvements, like a `String` module to handle utf-8 binaries and support to environments and nested dependencies in Mix.
+
+We have also taken important steps into normalizing our APIs. In Erlang, accesses to tuple and lists are one-based and binaries are zero-based, but in Elixir we have normalized all of them to rely on zero-based access.
+
+This release also includes some backwards incompatible changes, but the majority of changes were first deprecated, meaning your code will run just fine but with warnings. Those warnings will be removed in the next release v0.7.1, which should happen in a 2 to 4 weeks time span.
+
+For more information, read out the [CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.7.0/CHANGELOG.md).
+
+Thank you and don't forget to [give Elixir a try](/getting_started/1.html)!
\ No newline at end of file
diff --git a/_posts/2012-11-18-elixir-v0-7-1-released-and-the-end-of-a-journey.markdown b/_posts/2012-11-18-elixir-v0-7-1-released-and-the-end-of-a-journey.markdown
new file mode 100644
index 000000000..6a5b60ce7
--- /dev/null
+++ b/_posts/2012-11-18-elixir-v0-7-1-released-and-the-end-of-a-journey.markdown
@@ -0,0 +1,21 @@
+---
+layout: post
+title: Elixir v0.7.1 released and the end of a journey
+author: José Valim
+category: Releases
+excerpt: Elixir v0.7.1 was released to celebrate the end of a two months journey traveling around Europe, United States and Brazil talking about Elixir.
+
+---
+
+Elixir v0.7.1 was released this weekend to celebrate the end of a two months journey traveling around Europe, United States and Brazil talking about and exposing Elixir to new developers.
+
+This is a minor release that contains a couple enhancements regarding UTF-8, [dialyzer](http://www.erlang.org/doc/man/dialyzer.html) support and bug fixes.
+
+During this time traveling around, we have spoken at many conferences, as [Strange Loop](http://thestrangeloop.com/), [Øredev](http://oredev.org/), [QCon SP](http://qconsp.com/) and [Rupy](http://rupy.eu/) as well as at different companies. Developers from different backgrounds have shown interest in Elixir, [written about it](http://spin.atomicobject.com/2012/10/31/elixir-erlang-and-the-dining-philosophers/), joined us at #elixir-lang on freenode and contributed to the language. As of today, Elixir is powered by 51 different contributors!
+
+In case you missed any of those conferences, [the talk I presented at Øredev is available and you can watch it now](http://vimeo.com/53221562). The slides are also available below.
+
+If you want to hear more about Elixir at a conference or an event, please let us know. Thank you and don't forget to [give Elixir a try](/getting_started/1.html)!
+
+<script async class="speakerdeck-embed" data-id="cf4727401449013077d112313d1a82a3" data-ratio="1.2994923857868" src="//speakerdeck.com/assets/embed.js"></script>
+
diff --git a/_posts/2012-12-04-elixir-v0-7-2-released.markdown b/_posts/2012-12-04-elixir-v0-7-2-released.markdown
new file mode 100644
index 000000000..b43f78bbf
--- /dev/null
+++ b/_posts/2012-12-04-elixir-v0-7-2-released.markdown
@@ -0,0 +1,53 @@
+---
+layout: post
+title: Elixir v0.7.2 released
+author: Yurii Rashkovskii
+category: Releases
+excerpt: Elixir v0.7.2 is released, new, improved type specifications syntax and many other improvements.
+
+---
+
+Hot out of the oven! We just released Elixir v0.7.2 with a number of delicious improvements.
+
+One of the most important changes in this minor release is a partial rehaul of
+the type specification syntax.
+
+Here's the gist:
+
+{% highlight elixir %}
+@spec myfun(integer), do: integer
+# becomes
+@spec myfun(integer) :: integer
+
+@type a :: fun
+# becomes
+@type a :: (... -> any) or ((...) -> any) or (fun(...) -> any)
+
+@type a :: fun(do: integer)
+# becomes
+@type a :: (() -> integer) or (fun() -> integer)
+
+@type a :: fun(integer, do: integer)
+# becomes
+@type a :: (integer -> integer) or ((integer) -> integer) or (fun(integer) -> integer)
+
+@type a :: fun(integer, integer, do: integer)
+# becomes
+@type a :: (integer, integer -> integer) or ((integer, integer) -> integer) or (fun(integer, integer) -> integer)
+{% endhighlight %}
+
+Another change is that Mix now echoes the output of external tools
+such as git and rebar, and handles exit status correctly. This have previously
+led to some less-than-perfect workflows.
+
+We've also added a more compact and visual form of the `function` helper. Now,
+instead of `function(Enum, :all?, 2)` you can use `function(Enum.all?/2)`.
+
+We've also figured out how to achieve an up to 6x [performance increase](https://github.com/elixir-lang/elixir/blob/v0.7.2/lib/elixir/lib/kernel.ex#L1386-L1417)
+under some circunstances when using records.
+
+...and [many other fixes & improvements](https://github.com/elixir-lang/elixir/blob/v0.7.2/CHANGELOG.md).
+
+Lastly, but not least importantly, I'd like to mention that we're very excited about how the community around Elixir is building up. Thank you all for being around and supporting us!
+
+[Learn more about Elixir](/getting_started/1.html)!
\ No newline at end of file
diff --git a/_posts/2013-01-27-elixir-v0-8-0-released.markdown b/_posts/2013-01-27-elixir-v0-8-0-released.markdown
new file mode 100644
index 000000000..29027f864
--- /dev/null
+++ b/_posts/2013-01-27-elixir-v0-8-0-released.markdown
@@ -0,0 +1,103 @@
+---
+layout: post
+title: Elixir v0.8.0 released
+author: José Valim
+category: Releases
+excerpt: On the last 9th January, we celebrated two years since Elixir's first commit and to celebrate this occasion we have prepared a big release. Elixir v0.8 is out, with documentation, optimizations, bug fixes and shiny new features. Let's take a look at them!
+---
+
+On the last 9th January, we celebrated [two years since Elixir's first commit](https://github.com/elixir-lang/elixir/commit/337c3f2d569a42ebd5fcab6fef18c5e012f9be5b) and to celebrate this occasion we have prepared a big release. Elixir v0.8 is out, with documentation, optimizations, bug fixes and shiny new features. Let's take a look at them!
+
+## OTP applications
+
+One of the goals for the v0.8 release was better integration with OTP applications. By passing the `--sup` option to Mix, you can start a new OTP Application containing application callbacks and a supervisor:
+
+    mix new my_app --sup
+
+And applications can be started directly from the command line as well:
+
+    elixir --app my_app
+
+We have written a whole [guide chapter about creating OTP applications, supervisors and servers](/getting_started/mix/2.html). Give it a try!
+
+## Improved Unicode support
+
+Elixir favors the use of utf-8 binaries since its first release. In the latest releases, we took it up a notch by adding Unicode support, built upon the Unicode Standard 6.2.0. Elixir v0.8 takes this even further, adding more convenience functions and better support to named sequences:
+
+{% highlight elixir %}
+String.capitalize("ﬁN") #=> "Fin"
+{% endhighlight %}
+
+The example above contains a string with only two codepoints, [the codepoint ﬁ](http://www.fileformat.info/info/unicode/char/FB01/index.htm) and [the codepoint n](http://www.fileformat.info/info/unicode/char/006E/index.htm). Look how Elixir properly capitalizes the string, returning a new string made of three codepoints (all ascii letters).
+
+Learn more about [Unicode support with the String module](http://elixir-lang.org/docs/master/String.html).
+
+## AST metadata
+
+As per this release, Elixir AST nodes can contain metadata. This metadata is compilation time only but may allow macros to annotate important information in AST nodes, like line numbers, file and other library specific information. If you quote an Elixir expression, we can see the metadata slot:
+
+{% highlight elixir %}
+quote do: hello("world")
+{ :hello, [], ["world"] }
+{% endhighlight %}
+
+In the example above, we can see the AST representation of the expression `hello("world")`. It is made of a tuple of three elements, the first one is the function name represented by the atom `:hello`, the second one is a keyword list containing metadata (in this case, no metadata is available) and the third is a list of arguments, containing the string "world".
+
+By default, `quote` does not annotate line numbers, but we can pass it as an option:
+
+{% highlight elixir %}
+quote line: __ENV__.line, do: hello("world")
+{ :hello, [line: 9], ["world"] }
+{% endhighlight %}
+
+Now, we can see the metadata spot being used to annotate the line number. This change allowed us to take our macros one step further...
+
+## Macros expansion
+
+Prior to this release, Elixir had limited expansion of imports and aliases. We decided this would be an important issue to tackle in this release, as people are building more and more projects on top of Elixir. 
+
+Imagine you manually implemented `unless` as a macro, that does the opposite of `if`:
+
+{% highlight elixir %}
+defmacro unless(expr, opts) do
+  quote do
+    if(!unquote(expr), unquote(opts))
+  end
+end
+{% endhighlight %}
+
+When some code call the `unless` macro above, in previous Elixir versions, it would expect the `if` macro to be available at the caller. This may not be necessarily true and, even worse, another implementation of the `if` macro, not compatible to the one above, could be available.
+
+Elixir v0.8 ensures that the `unless` macro above will expand to the same `if` macro available when quoted, guaranteeing different libraries can integrate easily without imposing hidden requirements.
+
+You can read more about [macros in the getting started guide](http://elixir-lang.org/getting_started/5.html) or [go deep into the quote macro docs](http://elixir-lang.org/docs/master/Kernel.SpecialForms.html#quote/2).
+
+## A new way to manipulate pathnames
+
+Elixir v0.8 contains a bit of house cleaning too. We have created [the Path module](http://elixir-lang.org/docs/master/Path.html) to accommodate functions used to manipulate filesystem paths and have also added functions like [`System.tmp_dir` and `System.user_home`](http://elixir-lang.org/docs/master/System.html) which are meant to work accross different operating systems and are very handy when scripting.
+
+## The new HashDict
+
+For last but not least, Elixir ships with a [new HashDict implementation](https://github.com/elixir-lang/elixir/blob/master/lib/elixir/lib/hash_dict.ex). In Erlang, there are different key-value store implementations and often you need to pick which one is the best for you based on the average size of the dictionary. Generally speaking, [orddicts](http://www.erlang.org/doc/man/orddict.html) are efficient and fast when you want to hold a handful of items, otherwise you should consider [gb_trees](http://www.erlang.org/doc/man/gb_trees.html) unless you want to hold thousands of items, when then [dict](http://www.erlang.org/doc/man/dict.html) becomes your best option. The fact those implementations do not provide the same API, makes it harder to change your code when you realize another implementation would be better fit.
+
+For Elixir, we decided to have a single dictionary implementation that would scale as needed. It would start as a compact representation for a handful of items and expand and rehash accordingly as new items are added or removed, providing fast access and modification times on all ranges. We are glad to say our goals were reached and a new `HashDict` implementation ships with Elixir v0.8.
+
+Let's take a look at some benchmarks:
+
+![Comparison of fetch times with string keys](/images/contents/hash-dict-fetch.png)
+
+![Comparison of update times with string keys](/images/contents/hash-dict-update.png)
+
+For each number of keys, we have measured and normalized those values against `HashDict` results. This way it is easy to see which implementation takes more or less time compared to Elixir's implementation.
+
+`orddict` is still the faster representation for small ranges since it is a simple list. However, `HashDict` is able to be relatively fast compared to `orddict` for those small ranges and the fastest solution once you have dozens of keys. [Those results can be verified when using other types as keys as well](https://gist.github.com/436a9d2bca5051a6dfab).
+
+Finally, given `HashDict` starts with a compact representation, it also takes less memory. Compared to the `dict` implementation, an empty `HashDict` takes only 5 words, while `dict` takes 47.
+ 
+## Wrapping up
+
+We continue actively working on Elixir and this release is the [result of our efforts on different areas](https://github.com/elixir-lang/elixir/blob/v0.8.0/CHANGELOG.md)! We have exciting plans and newer possibilities to explore, as a new release of Erlang OTP also comes out in a couple weeks.
+
+Also, we previously announced Elixir is going to be released frequently, every 2 to 4 weeks. We have made a small detour to get v0.8.0 out of the door, but we are back to our regular schedule as of today!
+
+[Celebrate with us and give Elixir a try](/getting_started/1.html)!
\ No newline at end of file
diff --git a/_posts/2013-04-19-google-summer-of-code-2013.markdown b/_posts/2013-04-19-google-summer-of-code-2013.markdown
new file mode 100644
index 000000000..b025579f6
--- /dev/null
+++ b/_posts/2013-04-19-google-summer-of-code-2013.markdown
@@ -0,0 +1,28 @@
+---
+layout: post
+title: Google Summer of Code 2013
+author: José Valim
+category: Announcements
+excerpt: Elixir is taking part in Google Summer of Code 2013! Are you a student? Join us!
+---
+
+We are pleased to announce that Elixir is taking part in Google Summer of Code 2013
+as member of the [BEAM Community](http://beamcommunity.github.io). This means that
+students all around the world can get paid to work on Elixir during the summer!
+
+The rules require students to be enrolled in college full or part-time, and to be
+at least 18 years by May 27, 2013. You can find more information on
+[Google Summer of Code 2013 website](http://www.google-melange.com/gsoc/homepage/google/gsoc2013).
+
+We have published [a list of ideas we would like to see and explore in Elixir](https://github.com/beamcommunity/beamcommunity.github.com/wiki/Project:-Elixir)
+that students can use as a basis, but students are also free to send their own
+proposals. If your proposal gets accepted, Google will pay you $5000 over the
+course of three months to work on Elixir. Students can start submitting their
+proposals on April 22 and the deadline is May 23.
+
+Note the BEAM Community serves as a mentoring organization for many other projects
+that run on the Erlang VM, including Elixir. To see the full list, [visit the website](http://beamcommunity.github.io).
+
+We hope to work with you during this summer! If you have more questions, feel free
+to join the [BEAM Community mailing list](https://groups.google.com/d/forum/beam-community)
+or talk to us on `#beam-community` on irc.freenode.net.
diff --git a/_posts/2013-04-29-elixir-v0-8-2-released.markdown b/_posts/2013-04-29-elixir-v0-8-2-released.markdown
new file mode 100644
index 000000000..3e77066e1
--- /dev/null
+++ b/_posts/2013-04-29-elixir-v0-8-2-released.markdown
@@ -0,0 +1,49 @@
+---
+layout: post
+title: Elixir v0.8.2 released
+author: José Valim
+category: Releases
+excerpt: Elixir v0.8.2 is released with bug fixes, better Erlang R16 support and doctests.
+---
+
+The past week we have released Elixir v0.8.2. It contains many bug fixes and better support for Erlang R16, including [the new built-in functions `insert_elem/3` and `delete_elem/2`](https://github.com/elixir-lang/elixir/commit/0fad1883df9da541628e8485d28372fd4b977b89).
+
+We have also added extensive support to ANSI escape codes. For example, by simply upgrading to the latest Elixir you will get colored output from your test suites:
+
+![ANSI escape with ExUnit](/images/contents/exunit-ansi.png)
+
+We have also added colored output to Interactive Elixir (IEx) but it requires Erlang R16.
+
+Finally, Elixir has always given special attention to documentation. You can easily document functions with the `@doc` attribute:
+
+{% highlight elixir %}
+defmodule Math do
+  @doc """
+  Add two numbers together.
+
+  ## Examples
+
+      iex> Math.add(1, 2)
+      3
+
+  """
+  def add(a, b) do
+    a + b
+  end
+end
+{% endhighlight %}
+
+The documentation above is embedded into the module and can be easily retrieved at runtime. For example, by typing `h Math.add/2` into Interactive Elixir, we can access the documentation for that module.
+
+Elixir v0.8.2 takes this to the next level by adding support to doctests. Given the example above, you can configure Elixir to automatically run the code samples in your documentation by including a call to the `doctest` macro in your test suite:
+
+{% highlight elixir %}
+defmodule MathTest do
+  use ExUnit.Case, async: true
+  doctest Math
+end
+{% endhighlight %}
+
+You can learn more about [doctests on our documentation page](http://elixir-lang.org/docs/stable/ExUnit.DocTest.html) and get more information about our latest release [on the CHANGELOG](https://github.com/elixir-lang/elixir/blob/ed27611f48ba150404c95fe15f1d6058a4287330/CHANGELOG.md).
+
+If you are new to Elixir, [it's easy to get started with](/getting_started/1.html)!
diff --git a/_posts/2013-05-02-elixir-on-xen.markdown b/_posts/2013-05-02-elixir-on-xen.markdown
new file mode 100644
index 000000000..0bbd9829a
--- /dev/null
+++ b/_posts/2013-05-02-elixir-on-xen.markdown
@@ -0,0 +1,70 @@
+---
+layout: post
+title: Elixir on Xen
+author: José Valim
+category: Announcements
+excerpt: The Erlang on Xen team has added support for Elixir and we will tell you how you can use it!
+---
+
+Elixir uses Erlang underneath, all the way down. Thanks to this, an Elixir project can run on the recently revealed “OS-less” Erlang VM called LING VM. LING VM is the core technology of [Erlang on Xen](http://erlangonxen.org).
+
+## Why Xen?
+
+[Xen](https://en.wikipedia.org/wiki/Xen) is an open-source baremetal hypervisor that allows many operating systems to run on the same hardware. Xen is frequently used for server virtualization, Infrastructure as a Service (IaaS) and security applications.
+
+Elixir on Xen runs on top of the Xen Hypervisor (via the LING VM) but with no traditional OS underneath it, taking away numerous administrative, scalability, and performance issues. This  limits options of a malicious attacker, making it an excellent choice for high-security applications, and reduces startup latency, allowing developers to spawn new VMs in less than 100 miliseconds.
+
+You can learn more about Xen and the LING VM on the [Erlang on Xen website](http://erlangonxen.org).
+
+## Getting started
+
+In order to run Elixir on the LING VM, you need to produce a Xen image of your Elixir project. This can be done with the help of the [lingex project](http://github.com/maximk/lingex), created by the LING VM team.
+
+Producing an Elixir image using the free Erlang on Xen Build Service requires just a few steps:
+
+1. Add a dependency on `lingex` to your `mix.exs` file:
+
+          def deps do
+            [ { :lingex, github: "maximk/lingex" } ]
+          end
+
+2. Run `mix deps.get` to update your dependencies. This adds a few custom tasks
+to the mix tool (`lingex.build`, `lingex.image`, and `lingex.build_image`)
+
+3. Set `lingex` options. Add the following lines to your `mix.exs` file:
+
+          def project do
+            [ lingex_opts: [
+                build_host: "build.erlangonxen.org:8080",
+          			username: "test",
+          			password: "test" ] ]
+          end
+
+4. Optionally, you may register with the build service [here](http://build.erlangonxen.org/register) and update the credentials accordingly. For the complete list of recognized options see the build service documentation.
+
+5. Run `mix lingex.build_image`. This will archive all `*.beam` files of your project and submit them to the build service.
+
+6. The build process will complete in about 30s. An image file called 'vmling' will appear in the current directory, ready to boot as a Xen guest. The image file will contain LING VM and your project code.
+
+And this is all. Erlang on Xen is going to boot the Erlang VM and the standard Erlang shell. You can access Elixir shell in a couple steps:
+
+1. In the Erlang shell, first start IEx:
+
+          1> application:start(iex).
+          ok
+
+2. Then hit `Ctrl+G`. This will open up the user switch command interface from the Erlang shell.
+
+3. In the user switch interface, type:
+
+          User switch command
+           --> s 'Elixir.IEx'
+           --> c
+
+This will bring you to Interactive Elixir and you can execute Elixir expressions as usual!
+
+## Summing up
+
+Running Elixir on Xen opens up many possibilities to Elixir developers. We are very thankful for the work done by [Erlang on Xen team](http://erlangonxen.org), who added support for Elixir and the `lingex` build tool.
+
+Erlang on Xen (and consequently Elixir on Xen) is still in active development, so don't forget to read more about its concepts, use cases and limitations on [Erlang on Xen website](http://erlangonxen.org/).
diff --git a/_posts/2013-05-23-elixir-v0-9-0-released.markdown b/_posts/2013-05-23-elixir-v0-9-0-released.markdown
new file mode 100644
index 000000000..f3c3dd00d
--- /dev/null
+++ b/_posts/2013-05-23-elixir-v0-9-0-released.markdown
@@ -0,0 +1,131 @@
+---
+layout: post
+title: Elixir v0.9.0 released
+author: José Valim
+category: Releases
+excerpt: Elixir v0.9.0 is released with support for reducers, umbrella projects, faster compilation times and dropped support for R15 and earlier OTP versions.
+---
+
+While [Programming Elixir](http://pragprog.com/book/elixir/programming-elixir) was being announced, we have been working on Elixir v0.9.0 which is finally out. This release contains new features, important performance optimizations and bug fixes.
+
+Elixir v0.9.0 also removes support for Erlang R15 and earlier versions. In case you still need to run Elixir software on R15, we have also released Elixir v0.8.3, which contains many of the enhancements in v0.9.0. Check the [CHANGELOG for more details for both releases](https://github.com/elixir-lang/elixir/blob/v0.9.0/CHANGELOG.md).
+
+All this work was achieved by our very vibrant community! Over the last month, 17 authors have pushed more than 500 commits, where more than 60 pull requests were merged and more than 80 issues were closed.
+
+Let's talk about the goodies!
+
+## Compilation time improvements
+
+We have spent some time improving compilation time. The particular scenario we have worked on was the definition of records:
+
+{% highlight elixir %}
+defrecord User, name: nil, age: nil
+{% endhighlight %}
+
+Records are a good scenario because they are implemented in Elixir, using Elixir macros, and they also define a module underneath, which exercises the Erlang VM compilation stack.
+
+We have used [fprof](http://www.erlang.org/doc/man/fprof.html) to identify the bottlenecks and made the compilation stack 35% faster. We have also identified bottlenecks coming from Erlang and [pushed some patches](https://github.com/erlang/otp/commit/32b194495f353dde014b00008a630eeff2a71056) that should benefit both Elixir and Erlang code.
+
+A special thanks to [Yurii Rashkovskii](https://github.com/yrashk) for the data and profiling.
+
+## Umbrella projects
+
+In Elixir, an application denotes a component implementing some specific functionality, that can be started and stopped as a unit, and which can be re-used in other systems as well.
+
+As a project grows, it is recommended to break it apart into smaller, isolated applications and bundle them together. The issue so far was that Elixir did not provide good support for working with many applications at once, and compiling and managing those applications became rather a tedious work.
+
+Elixir v0.9.0 now supports umbrella projects which can work with many applications at the same time. You can create a new umbrella project with:
+
+    $ mix new my_project --umbrella
+
+The generated project will have the following structure:
+
+    apps/
+    mix.exs
+    README.md
+
+Now, inside the `apps` directory, you can create as many applications as you want and running `mix compile` inside the umbrella project will automatically compile all applications. The [original discussion for this feature](https://github.com/elixir-lang/elixir/issues/667) contains more details about how it all works.
+
+A special thanks to [Eric Meadows-Jonsson](https://github.com/ericmj) for implementing this feature and to [Yurii](https://github.com/yrashk) for testing it against different edge cases.
+
+## Reducers
+
+Elixir v0.9.0 changes its main abstraction for enumeration from iterators to reducers. Before Elixir v0.9.0, when you invoked:
+
+{% highlight elixir %}
+Enum.map([1,2,3], fn(x) -> x * x end)
+#=> [1, 4, 9]
+{% endhighlight %}
+
+It asked the `Enum.Iterator` protocol for instructions on how to iterate the list `[1,2,3]`. This iteration happened by retrieving each item in the list, one by one, until there were no items left.
+
+This approach posed many problems:
+
+* Iterators are very hard to compose;
+* Iterators contain state. You need to know, at each moment, what is the next element you have to iterate next. We use functions and their bindings to pass the iteration state around;
+* Iterators have the "dangling open resource" problem. Consider that you want to iterate a file with `Enum.map/2` as above. If any step during the iteration fails, there is no easy way to notify the resource being iterated  (in this case, the opened file) that iteration failed, so we can't close the file automatically, leaving it to the user.
+
+Reducers solve all of those problems by using a more functional approach. Instead of asking a list to spill its elements out one by one and then working on each element, we now generate a recipe of computations and pass it down to the list which applies those computations on itself.
+
+Here is how we implement the `Enumerable` protocol for lists:
+
+{% highlight elixir %}
+defimpl Enumerable, for: List do
+  def reduce(list, acc, fun) do
+    do_reduce(list, acc, fun)
+  end
+
+  defp do_reduce([h|t], acc, fun) do
+    do_reduce(t, fun.(h, acc), fun)
+  end
+
+  defp do_reduce([], acc, fun) do
+    acc
+  end
+end
+{% endhighlight %}
+
+The implementation above works as a simple `reduce` function (also called `fold`, `inject` or `foldl` in other languages). Here is how it works:
+
+{% highlight elixir %}
+# Sum all elements in a list
+Enumerable.reduce([1,2,3], 0, fn(x, acc) -> x + acc end)
+#=> 6
+{% endhighlight %}
+
+The `Enum.map/2` we have used above is now implemented in terms of this reducing function:
+
+{% highlight elixir %}
+defmodule Enum do
+  def map(collection, fun) do
+    Enumerable.reduce(collection, [], fn(x, acc) ->
+      [fun.(x, acc)|acc]
+    end) |> reverse
+  end
+end
+{% endhighlight %}
+
+This approach solves all the problems above:
+
+* Reducers are composable (notice how we have implemented map on top of reduce by composing functions);
+* Reducers are self-contained: there is no need keep state around, which also solves the "dangling open resource" problem. The data type now knows exactly when the iteration starts and when it finishes;
+* Reducers do not dictate how a type should be enumerated. This means types like `Range` and `HashDict` can provide a much faster implementation for Reducers;
+* Furthermore, the end result is a cleaner implementation of most of `Enum` functions (the [reducers pull request](https://github.com/elixir-lang/elixir/pull/1102) removes over 500LOC) and better performance!
+
+Reducers also opens up room for lazy and parallel enumeration, as [the Clojure community has already proven](http://clojure.com/blog/2012/05/08/reducers-a-library-and-model-for-collection-processing.html) and something we are looking forward to explore on upcoming releases.
+
+A special thanks to [Eric Meadows-Jonsson](https://github.com/ericmj) for implementing this feature!
+
+## Other bits
+
+We have also many other smaller improvements:
+
+* Our CLI now supports `--hidden` and `--cookie` flags which are useful for distributed modes;
+* Our test framework, ExUnit, is now able to capture all the communication that happens with a registed IO device, like `:stdio` and `:stderr`, via [`ExUnit.CaptureIO`](http://elixir-lang.org/docs/master/ExUnit.CaptureIO.html). This is very useful for testing how your software reacts to some inputs and what it prints to the terminal;
+* `IEx` now allows files to be imported into the shell with `import_file` and also loads `~/.iex` on startup for custom configuration;
+* The `String`, `Enum` and `Dict` modules got more convenience functions that goes from checking unicode character validity to taking values out of a dictionary;
+* And many, many more!
+
+A huge thank you to our community for sending bug reports, providing bug fixes and contributing all those amazing features. And when are **you** joining us? :)
+
+Give Elixir a try! You can start with our [getting started guide](http://elixir-lang.org/getting_started/1.html), or [check this 30 minute video from PragProg](http://www.youtube.com/watch?v=a-off4Vznjs&feature=youtu.be) or buy the beta version of [Programming Elixir](http://pragprog.com/book/elixir/programming-elixir).
diff --git a/atom.xml b/atom.xml
new file mode 100644
index 000000000..59ed4bffc
--- /dev/null
+++ b/atom.xml
@@ -0,0 +1,29 @@
+---
+layout: nil
+elixir_url: http://elixir-lang.org
+---
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+ 
+<title>Elixir Lang</title>
+<link href="{{ page.elixir_url }}/atom.xml" rel="self"/>
+<link href="{{ page.elixir_url }}"/>
+<updated>{{ site.time | date_to_xmlschema }}</updated>
+<id>{{ page.elixir_url }}</id>
+
+{% for post in site.posts %}
+<entry>
+  <title>{{ post.title }}</title>
+  <link href="{{ page.elixir_url }}{{ post.url }}"/>
+  {% if post.author %}
+  <author>
+    <name>{{ post.author }}</name>
+  </author>
+  {% endif %}
+  <updated>{{ post.date | date_to_xmlschema }}</updated>
+  <id>{{ post.id }}</id>
+  <content type="html">{{ post.content | xml_escape }}</content>
+</entry>
+{% endfor %}
+ 
+</feed>
diff --git a/blog/categories.html b/blog/categories.html
new file mode 100644
index 000000000..abf6aafbd
--- /dev/null
+++ b/blog/categories.html
@@ -0,0 +1,24 @@
+---
+title: Posts by category
+section: blog
+layout: blog
+---
+
+<div class="hfeed">
+  <h2>Posts by category:</h2>
+  <ul>
+  {% for category in site.categories %}
+    <h5 id="#{{ category | first }}">&raquo; {{ category | first | capitalize }}</h5>
+      <ul>
+      {% for posts in category %}
+        {% for post in posts %}
+          {% if post.title %}
+            <li><a href="{{ post.url }}">{{ post.title }}</a> <span class="byline">&dash; {{ post.date | date: "%B %d, %Y" }}</span></li>
+          {% endif %}
+        {% endfor %}
+      {% endfor %}
+      </ul>
+    </li>
+  {% endfor %}
+  </ul>
+</div><!-- .hfeed -->
diff --git a/blog/index.html b/blog/index.html
new file mode 100644
index 000000000..208c10bca
--- /dev/null
+++ b/blog/index.html
@@ -0,0 +1,22 @@
+---
+title: Blog
+section: blog
+layout: blog
+---
+
+<div class="hfeed">
+  {% for post in site.posts %}
+    <div class="hentry post">
+      <div class="sticky-header">
+        <h2 class="entry-title"><a class="spec" href="{{ post.url }}" title="{{ post.title }}" rel="bookmark">{{ post.title }}</a></h2>
+        <div class="byline">{{ post.date | date: "%B %d, %Y" }}{% if post.author %} · by {{ post.author}}{% endif %} . in {% for category in post.categories %}<span class="category"><a href="/blog/categories.html#{{category}}">{{ category }}</a>{% endfor %}</div>
+      </div><!-- .sticky-header -->
+
+      <div class="entry-summary">
+        {{ post.excerpt }}
+      </div><!-- .entry-summary -->
+
+      <p><a href="{{ post.url }}" title="{{ post.title }}" rel="bookmark">Continue reading →</a></p>
+  </div>
+  {% endfor %}
+</div><!-- .hfeed -->
diff --git a/crash-course.markdown b/crash-course.markdown
new file mode 100644
index 000000000..991bf0b11
--- /dev/null
+++ b/crash-course.markdown
@@ -0,0 +1,872 @@
+---
+section: home
+layout: default
+---
+
+# Erlang/Elixir Syntax: A Crash Course 
+
+This is a quick introduction to the Elixir syntax for Erlang developers and vice-versa. It is the absolute minimum amount of knowledge you need in order to understand Elixir/Erlang code, support interoperability, read the docs, sample code, etc.
+
+This page is divided into sections:
+
+1. [Running Code](#running_code)
+2. [Notable Differences](#notable_differences)
+3. [Data Types](#data_types)
+4. [Modules](#modules)
+5. [Function Syntax](#function_syntax)
+6. [Control Flow](#control_flow)
+7. [Adding Elixir to existing Erlang programs](#interop)
+8. [Further reading](#further_reading)
+
+<div id="running_code"></div>
+
+## 1 Running Code
+
+### Erlang
+
+The fastest way to run some code is to launch the Erlang shell -- `erl`. Many code snippets on this page can be pasted directly into the shell. However, when you want to define a named function, Erlang expects it to be inside of a module, and modules have to be compiled. Here's a skeleton for a module:
+
+{% highlight erlang %}
+-module(module_name).  % you may use some other name
+-compile(export_all).
+
+hello() ->
+  io:format("~s~n", ["Hello world!"]).
+{% endhighlight %}
+
+Add your functions to it, save it to disk, run `erl` from the same directory and execute the `compile` command:
+
+{% highlight erlang %}
+Eshell V5.9  (abort with ^G)
+1> c(module_name).
+ok
+1> module_name:hello().
+Hello world!
+ok
+{% endhighlight %}
+
+You may keep the shell running while you're editing the file. Just don't forget to execute `c(module_name)` to load the latest changes. Note that the filename has to be the same as the one declared in the `-module()` directive, plus an extension `.erl`.
+
+### Elixir
+
+Elixir too has an interactive shell called `iex`. Compiling Elixir code can be done with `elixirc` (which is similar to Erlang's `erlc`). Elixir also provides an executable named `elixir` to run Elixir code. The module defined above can be written in Elixir as:
+
+{% highlight elixir %}
+# module_name.ex
+defmodule ModuleName do
+  def hello do
+    IO.puts "Hello World"
+  end
+end
+{% endhighlight %}
+
+And compiled from `iex`:
+
+{% highlight elixir %}
+Interactive Elixir
+iex> c("module_name.ex")
+[ModuleName]
+iex> ModuleName.hello
+Hello world!
+:ok
+{% endhighlight %}
+
+However notice that in Elixir you don't need to create a file only to create a new module, Elixir modules can be defined directly in the shell:
+
+{% highlight elixir %}
+defmodule MyModule do
+  def hello do
+    IO.puts "Another Hello"
+  end
+end
+{% endhighlight %}
+
+<div id="notable_differences"></div>
+
+## 2 Notable Differences
+
+This section goes over some of the syntactic differences between the two languages.
+
+### Operator Names
+
+Some operators are spelled differently.
+
+    | Erlang         | Elixir         | Meaning                                 |
+    -----------------------------------------------------------------------------
+    | and            | NOT AVAILABLE  | Logical 'and', evaluates both arguments |
+    | andalso        | and            | Logical 'and', short-circuits           |
+    | or             | NOT AVAILABLE  | Logical 'or', evaluates both arguments  |
+    | orelse         | or             | Logical 'or', short-circuits            |
+    | =:=            | ===            | A match operator                        |
+    | =/=            | !==            | A negative match                        |
+    | /=             | !=             | Not equals                              |
+    | =<             | <=             | Less than or equals                     |
+    | !              | <-             | Send messages                           |
+
+
+### Delimiters
+
+Erlang expressions are terminated with a dot `.` and comma `,` is used to evaluates multiple expressions within one context (in a function definition, for instance). In Elixir, expressions are delimited by a line break or a colon-comma `;`.
+
+**Erlang**
+
+{% highlight erlang %}
+X = 2, Y = 3.
+X + Y.
+{% endhighlight %}
+
+**Elixir**
+
+{% highlight elixir %}
+x = 2; y = 3
+x + y
+{% endhighlight %}
+
+### Variable Names
+
+Variables in Erlang can only be assigned once. The Erlang shell provides a special command `f` that allows you to erase the binding of a variable or all variables at once.
+
+Elixir allows you to assign to a variable more than once. If you want to match against the value of a previously assigned variable, you should use `^`:
+
+**Erlang**
+
+{% highlight erlang %}
+Eshell V5.9  (abort with ^G)
+1> X = 10.
+10
+2> X = X + 1.
+** exception error: no match of right hand side value 11
+3> X1 = X + 1.
+11
+4> f(X).
+ok
+5> X = X1 * X1.
+121
+6> f().
+ok
+7> X.
+* 1: variable 'X' is unbound
+8> X1.
+* 1: variable 'X1' is unbound
+{% endhighlight %}
+
+**Elixir**
+
+{% highlight elixir %}
+iex> a = 1
+1
+iex> a = 2
+2
+iex> ^a = 3
+** (MatchError) no match of right hand side value: 3
+{% endhighlight %}
+
+### Calling Functions
+
+Elixir allows you to omit parentheses in function calls, Erlang does not.
+
+    | Erlang            | Elixir         |
+    --------------------------------------
+    | some_function().  | some_function  |
+    | sum(A, B)         | sum a, b       |
+
+Invoking a function from a module uses different syntax. In Erlang, you would write
+
+{% highlight erlang %}
+orddict:new().
+{% endhighlight %}
+
+to invoke the `new` function from the `orddict` module. In Elixir, use the dot `.` in place of the colon `:`
+
+{% highlight elixir %}
+Kernel.self
+{% endhighlight %}
+
+**Note**. Since Erlang modules are represented by atoms, you may invoke Erlang functions in Elixir as follows:
+
+{% highlight elixir %}
+:lists.sort [3, 2, 1]
+{% endhighlight %}
+
+All of the Erlang built-ins reside in the `:erlang` module.
+
+<div id="data_types"></div>
+
+## 3 Data Types
+
+Erlang and Elixir have the same data types for the most part, but there are a number of differences.
+
+### Atoms
+
+In Erlang, an `atom` is any identifier that starts with a small letter, e.g. `ok`, `tuple`, `donut`. Identifiers that start with a capital letters are always treated as variable names. Elixir, on the other hand, uses the former for naming variables, and the latter are treated as atom aliases. Atoms in Elixir always start with a colon `:`.
+
+**Erlang**
+
+{% highlight erlang %}
+im_an_atom.
+me_too.
+
+Im_a_var.
+X = 10.
+{% endhighlight %}
+
+**Elixir**
+
+{% highlight elixir %}
+:im_an_atom
+:me_too
+
+im_a_var
+x = 10
+
+Module  # this is called an atom alias; it expands to :'Elixir.Module'
+{% endhighlight %}
+
+It is also possible to create atoms that start with a character other than a lowercase letter. The syntax is different between the two languages:
+
+**Erlang**
+
+{% highlight erlang %}
+is_atom(ok).                %=> true
+is_atom('0_ok').            %=> true
+is_atom('Multiple words').  %=> true
+is_atom('').                %=> true
+{% endhighlight %}
+
+**Elixir**
+
+{% highlight elixir %}
+is_atom :ok                 #=> true
+is_atom :'ok'               #=> true
+is_atom :"Multiple words"   #=> true
+{% endhighlight %}
+
+### Tuples
+
+The syntax for tuples is the same in both languages but the APIs are different. Elixir attempts to normalize Erlang libraries in a way that:
+
+1. The `subject` of the function is always the first argument and
+2. All data structures functions employ zero-based access.
+
+That said, Elixir does not import the default `element` and `setelement` functions, but instead provides `elem` and `setelem`:
+
+**Erlang**
+
+{% highlight erlang %}
+element(1, { a, b, c })       % => a
+setelement(1, { a, b, c }, d) % => { d, b, c }
+{% endhighlight %}
+
+**Elixir**
+
+{% highlight elixir %}
+elem({ :a, :b, :c }, 0)        % => :a
+setelem({ :a, :b, :c }, 0, :d) % => { :d, :b, :c }
+{% endhighlight %}
+
+### Lists and Binaries
+
+Elixir has a shortcut syntax for binaries:
+
+**Erlang**
+
+{% highlight erlang %}
+is_list('Hello').        %=> false
+is_list("Hello").        %=> true
+is_binary(<<"Hello">>).  %=> true
+{% endhighlight %}
+
+**Elixir**
+
+{% highlight text %}
+is_list 'Hello'          #=> true
+is_binary "Hello"        #=> true
+is_binary <<"Hello">>    #=> true
+<<"Hello">> === "Hello"  #=> true
+{% endhighlight %}
+
+In Elixir, the word **string** means a utf-8 binary and there is a `String` module that works on such data. Elixir also expects your source files to be utf-8 encoded. On the other hand, **string** in Erlang refers to char lists and there is a `:string` module, that's not utf-8 aware and works mostly with char lists.
+
+Elixir also supports multiline strings (also called heredocs):
+
+{% highlight elixir %}
+is_binary """
+This is a binary
+spawning several
+lines.
+"""
+{% endhighlight %}
+
+### Regular expressions
+
+Elixir supports a literal syntax for regular expressions. Such syntax allows regexes to be compiled at compilation time instead of runtime and does not require you to double escape special regex characters:
+
+**Erlang**
+
+{% highlight erlang %}
+{ ok, Pattern } = re:compile("abc\\s").
+re:run("abc ", Pattern).
+%=> { match, ["abc "] }
+{% endhighlight %}
+
+**Elixir**
+
+{% highlight elixir %}
+Regex.run %r/abc\s/, "abc "
+#=> ["abc "]
+{% endhighlight %}
+
+Regexes are also supported in heredocs, which is convenient to define multiline regexes:
+
+{% highlight elixir %}
+is_regex %r"""
+This is a regex
+spawning several
+lines.
+"""
+{% endhighlight %}
+
+### Keyword list (Orddict)
+
+Orddicts in Erlang are created using either `orddict:new/0` or `orddict:from_list/1` while Elixir offers a literal syntax and calls them keyword lists:
+
+**Erlang**
+
+{% highlight erlang %}
+Dict = orddict:new(),
+Dict1 = orddict:store(key, 10, Dict),
+Dict2 = orddict:store(another_key, 20, Dict1).
+%=> [{another_key,20},{key,10}]
+
+Dict = orddict:from_list([{key, 10}, {another_key, 20}]).
+%=> [{another_key,20},{key,10}]
+{% endhighlight %}
+
+**Elixir**
+
+{% highlight elixir %}
+dict = [key: 10, another_key: 20]
+#=> [another_key: 20, key: 10]
+{% endhighlight %}
+
+Their internal representation is the same though. Both are made of a list of tuples.
+
+### Records
+
+The syntax for records differs significantly between Erlang and Elixir. Please refer to [this section][1] in the Erlang book to read a detailed introduction to records in Erlang. And [this chapter][2] from Elixir's Getting Started guide provides a description of records in Elixir.
+
+[1]: http://learnyousomeerlang.com/a-short-visit-to-common-data-structures#records
+[2]: http://elixir-lang.org/getting_started/4.html
+
+In order to translate Erlang records into Elixir records, use Record.extract(). For example, to use the `ec2_instance_spec` record from [erlcloud][8]:
+
+{% highlight elixir %}
+defrecord :ec2_instance_spec, Record.extract(:ec2_instance_spec,
+                                from: "deps/erlcloud/include/erlcloud_ec2.hrl")
+
+new_host = :ec2_instance_spec.new(
+    image_id:          "ami-6d3f9704",
+    instance_type:     "t1.micro",
+    availability_zone: "us-east-1b"
+)
+
+IO.puts inspect(new_host)
+{% endhighlight %}
+
+[8]: https://github.com/gleber/erlcloud/blob/master/include/erlcloud_ec2.hrl#L11
+
+<div id="modules"></div>
+
+## 4 Modules
+
+Each Erlang module lives in its own file which has the following structure:
+
+{% highlight erlang %}
+-module(hello_module).
+-export([some_fun/0, fun/1]).
+
+% A "Hello world" function
+some_fun() ->
+  io:format('~s~n', ['Hello world!']).
+
+% This one works only with lists
+fun(List) when is_list(List) ->
+  io:format('~s~n', List).
+
+% Non-exported functions are private
+priv() ->
+  secret_info.
+{% endhighlight %}
+
+Here we create a module named ``hello_module``. In it we define three functions, the first two of which are made available for other modules to call via the ``export`` directive at the top. It contains a list of functions, each of which is written in the format ``<function name>/<arity>``. Arity stands for the number of arguments.
+
+An Elixir equivalent to the Erlang above:
+
+{% highlight elixir %}
+defmodule HelloModule do
+  # A "Hello world" function
+  def some_fun do
+    IO.puts "Hello world!"
+  end
+
+  # This one works only with lists
+  def some_fun(list) when is_list(list) do
+    IO.inspect list
+  end
+
+  # A private function
+  defp priv do
+    :secret_info
+  end
+end
+{% endhighlight %}
+
+In Elixir, it is also possible to have multiple modules in one file, as well as nested modules:
+
+{% highlight elixir %}
+defmodule HelloModule do
+  defmodule Utils do
+    def util do
+      IO.puts "Utilize"
+    end
+
+    defp priv do
+      :cant_touch_this
+    end
+  end
+
+  # More on this in the Records section
+  defrecord State, ponies: [:sally]
+
+  def dummy do
+    :ok
+  end
+end
+
+defmodule ByeModule do
+end
+
+HelloModule.dummy
+#=> :ok
+
+HelloModule.Utils.util
+#=> "Utilize"
+
+HelloModule.Utils.priv
+#=> ** (UndefinedFunctionError) undefined function: HelloModule.Utils.priv/0
+
+HelloModule.State.new
+#=> HelloModule.State[ponies: [:sally]] 
+{% endhighlight %}
+
+<div id="function_syntax"></div>
+
+## 5 Function Syntax
+
+[This chapter][3] from the Erlang book provides a detailed description of pattern matching and function syntax in Erlang. Here, I'm briefly covering the main points and provide sample code both in Erlang and Elixir.
+
+[3]: http://learnyousomeerlang.com/syntax-in-functions
+
+### Pattern Matching
+
+Pattern matching in Elixir is based on Erlang's implementation and in general very similar:
+
+**Erlang**
+
+{% highlight erlang %}
+loop_through([H|T]) ->
+  io:format '~p~n', [H],
+  loop_through(T);
+
+loop_through([]) ->
+  ok.
+{% endhighlight %}
+
+**Elixir**
+
+{% highlight elixir %}
+def loop_through([h|t]) do
+  IO.inspect h
+  loop_through t
+end
+
+def loop_through([]) do
+  :ok
+end
+{% endhighlight %}
+
+When defining a function with the same name multiple times, each such definition is called a **clause**. In Erlang, clauses always go side by side and are separated by a semi-colon ``;``. The last clause is terminated by a dot ``.``.
+
+Elixir doesn't require punctuation to separate clauses, but they must be grouped together.
+
+### Function Overloading
+
+In both Erlang and Elixir, a function is not identified only by its name, but by its name and arity. In both examples above, we are defining four different functions (all named `sum`, but with different arity):
+
+**Erlang**
+
+{% highlight erlang %}
+sum() -> 0;
+sum(A) -> A;
+sum(A, B) -> A + B;
+sum(A, B, C) -> A + B + C.
+{% endhighlight %}
+
+**Elixir**
+
+{% highlight elixir %}
+def sum, do: 0
+def sum(a), do: a
+def sum(a, b), do: a + b
+def sum(a, b, c), do: a + b + c
+{% endhighlight %}
+
+Guard expressions provide a concise way to define functions that accept a limited set of values based on some condition.
+
+**Erlang**
+
+{% highlight erlang %}
+sum(A, B) when is_integer(A), is_integer(B) ->
+  A + B;
+
+sum(A, B) when is_list(A), is_list(B) ->
+  A ++ B;
+
+sum(A, B) when is_binary(A), is_binary(B) ->
+  <<A/binary,  B/binary>>.
+
+sum(1, 2).
+%=> 3
+
+sum([1], [2]).
+%=> [1,2]
+
+sum("a", "b").
+%=> "ab"
+{% endhighlight %}
+
+**Elixir**
+
+{% highlight elixir %}
+def sum(a, b) when is_integer(a) and is_integer(b) do
+  a + b
+end
+
+def sum(a, b) when is_list(a) and is_list(b) do
+  a ++ b
+end
+
+def sum(a, b) when is_binary(a) and is_binary(b) do
+  a <> b
+end
+
+sum 1, 2
+#=> 3
+
+sum [1], [2]
+#=> [1,2]
+
+sum "a", "b"
+#=> "ab"
+{% endhighlight %}
+
+In addition, Elixir provides default values for arguments whereas Erlang does not.
+
+{% highlight text %}
+def mul_by(x, n // 2) do
+  x * n
+end
+
+mul_by 4, 3 #=> 12
+mul_by 4    #=> 8
+{% endhighlight %}
+
+### Anonymous Functions
+
+Anonymous functions are defined in the following way:
+
+**Erlang**
+
+{% highlight erlang %}
+Sum = fun(A, B) -> A + B end.
+Sum(4, 3).
+%=> 7
+
+Square = fun(X) -> X * X end.
+lists:map(Square, [1, 2, 3, 4]).
+%=> [1, 4, 9, 16]
+{% endhighlight %}
+
+**Elixir**
+
+{% highlight elixir %}
+sum = fn(a, b) -> a + b end
+sum.(4, 3)
+#=> 7
+
+square = fn(x) -> x * x end
+Enum.map [1, 2, 3, 4], square
+#=> [1, 4, 9, 16]
+{% endhighlight %}
+
+It is possible to use pattern matching when defining anonymous functions too. In Elixir, `fn` is a shortcut, so we need to use `function` when we want many clauses:
+
+**Erlang**
+
+{% highlight erlang %}
+F = fun(Tuple = {a, b}) ->
+        io:format("All your ~p are belong to us~n", [Tuple]);
+        ([]) ->
+        "Empty"
+    end.
+
+F([]).
+%=> "Empty"
+
+F({a, b}).
+%=> "All your {a,b} are belong to us"
+{% endhighlight %}
+
+**Elixir**
+
+{% highlight elixir %}
+f = function do
+      {:a, :b} = tuple ->
+        IO.puts "All your #{inspect tuple} are belong to us"
+      [] ->
+        "Empty"
+    end
+
+f.([])
+#=> "Empty"
+
+f.({:a, :b})
+#=> "All your {:a,:b} are belong to us"
+{% endhighlight %}
+
+### First-Class Functions
+
+Anonymous functions are first-class values, so they can be passed as arguments to other functions and also can serve as a return value. There is a special syntax to allow named functions be treated in the same manner.
+
+**Erlang**
+
+{% highlight erlang %}
+square(X) -> X * X.
+
+lists:map(fun square/1, [1, 2, 3]).
+%=> [1, 4, 9]
+{% endhighlight %}
+
+**Elixir**
+
+{% highlight elixir %}
+def square(x) do
+  x * x
+end
+
+Enum.map [1,2,3], function(:square, 1)
+#=> [1, 4, 9]
+{% endhighlight %}
+
+### Partials in Elixir
+
+Elixir supports partial application of functions which can be used to define anonymous functions in a concise way:
+
+{% highlight elixir %}
+Enum.map [1, 2, 3, 4], &1 * 2
+#=> [2, 4, 6, 8]
+
+List.foldl [1, 2, 3, 4], 0, &1 + &2
+#=> 10
+{% endhighlight %}
+
+Partials also allow us to pass named functions as arguments.
+
+{% highlight elixir %}
+def square(x) do
+  x * x
+end
+
+Enum.map [1, 2, 3], square &1
+#=> [1, 4, 9]
+{% endhighlight %}
+
+<div id="control_flow"></div>
+
+## 6 Control Flow
+
+The constructs `if` and `case` are actually expressions in both Erlang and Elixir, but may be used for control flow like in imperative languages.
+
+### Case
+
+The ``case`` construct provides control flow based purely on pattern matching.
+
+**Erlang**
+
+{% highlight erlang %}
+case { X, Y } of
+{ a, b } -> ok;
+{ b, c } -> good;
+Else -> Else
+end
+{% endhighlight %}
+
+**Elixir**
+
+{% highlight elixir %}
+case { x, y } do
+  { :a, :b } -> :ok
+  { :b, :c } -> :good
+  other -> other
+end
+{% endhighlight %}
+
+### If
+
+**Erlang**
+
+{% highlight erlang %}
+Test_fun = fun (X) ->
+  if X > 10 ->
+       greater_than_ten;
+     X < 10, X > 0 ->
+       less_than_ten_positive;
+     X < 0; X =:= 0 ->
+       zero_or_negative;
+     true ->
+       exactly_ten
+  end
+end.
+
+Test_fun(11).
+%=> greater_than_ten
+
+Test_fun(-2).
+%=> zero_or_negative
+
+Test_fun(10).
+%=> exactly_ten
+{% endhighlight %}
+
+**Elixir**
+
+{% highlight elixir %}
+test_fun = fn(x) ->
+  cond do
+    x > 10 ->
+      :greater_than_ten
+    x < 10 and x > 0 ->
+      :less_than_ten_positive
+    x < 0 or x === 0 ->
+      :zero_or_negative
+    true ->
+      :exactly_ten
+  end
+end
+
+test_fun.(44)
+#=> :greater_than_ten
+
+test_fun.(0)
+#=> :zero_or_negative
+
+test_fun.(10)
+#=> :exactly_ten
+{% endhighlight %}
+
+There are two important differences between Elixir's `cond` and Erlang's `if`:
+
+1) `cond` allows any expression on the left side while Erlang allows only guard clauses;
+
+2) `cond` uses Elixir's concepts of truthy and falsy values (everything is truthy except `nil` and `false`), Erlang's `if` expects strictly a boolean;
+
+Elixir also provides a `if` function that resembles more imperative languages and is useful when you need to check if one clause is true or false:
+
+{% highlight elixir %}
+if x > 10 do
+  :greater_than_ten
+else
+  :not_greater_than_ten
+end
+{% endhighlight %}
+
+### Sending and Receiving Messages
+
+The syntax for sending and receiving differs only slightly between Erlang and Elixir.
+
+**Erlang**
+
+{% highlight erlang %}
+Pid = self().
+
+Pid ! { hello }.
+
+receive
+  { hello } -> ok;
+  Other -> Other
+after
+  10 -> timeout
+end.
+{% endhighlight %}
+
+**Elixir**
+
+{% highlight elixir %}
+pid = Kernel.self
+
+pid <- { :hello }
+
+receive do
+  { :hello } -> :ok
+  other -> other
+after
+  10 -> :timeout
+end
+{% endhighlight %}
+
+<div id="interop"></div>
+
+## 7 Adding Elixir to existing Erlang programs
+
+Elixir compiles directly into BEAM byte code. This means that Elixir code can be called from Erlang and vice versa, without the need to write any bindings. All Elixir modules start with the "Elixir." prefix followed by the regular Elixir name. For example, here is how to use the UTF-8 aware String downcase from Elixir in Erlang:
+
+{% highlight erlang %}
+-module(bstring).
+-export([downcase/1]).
+
+downcase(Bin) ->
+  'Elixir.String':downcase(Bin).
+{% endhighlight %}
+
+### Rebar integration
+
+If you are using rebar, you should be able to include Elixir git repository as a dependency:
+
+    https://github.com/elixir-lang/elixir.git
+
+Elixir is structured similarly to Erlang's OTP. It is divided into applications that are placed inside the `lib` directory, as seen in its [source code repository](https://github.com/elixir-lang/elixir). Since rebar does not recognize such structure, we need to explicitly add to our `rebar.config` which Elixir apps we want to use, for example:
+
+{% highlight erlang %}
+{lib_dirs, [
+  "deps/elixir/lib"
+]}.
+{% endhighlight %}
+
+This should be enough to invoke Elixir functions straight from your Erlang code. If you are also going to write Elixir code, you can [install Elixir's rebar plugin for automatic compilation](https://github.com/yrashk/rebar_elixir_plugin).
+
+### Manual integration
+
+If you are not using rebar, the easiest approach to use Elixir in your existing Erlang software is to install Elixir using one of the different ways specified in the [Getting Started guide](http://elixir-lang.org/getting_started/1.html) and add the `lib` directory in your checkout to `ERL_LIBS`.
+
+<div id="further_reading"></div>
+
+## 8 Further Reading
+
+Erlang's official documentation site has a nice [collection][4] of programming examples. It can be a good exercise to translate them into Elixir. [Erlang cookbook][5] offers even more useful code examples.
+
+Elixir also provides a [Getting Started Guide][6] and has [documentation available online][7].
+
+[4]: http://www.erlang.org/doc/programming_examples/users_guide.html
+[5]: http://schemecookbook.org/Erlang/TOC
+[6]: http://elixir-lang.org/getting_started/1.html
+[7]: http://elixir-lang.org/docs
diff --git a/css/style.css b/css/style.css
index c4eff49ef..dca1cf214 100644
Binary files a/css/style.css and b/css/style.css differ
diff --git a/css/syntax.css b/css/syntax.css
new file mode 100644
index 000000000..1e651cf79
--- /dev/null
+++ b/css/syntax.css
@@ -0,0 +1,60 @@
+.highlight  { background: #ffffff; }
+.highlight .c { color: #999988; font-style: italic } /* Comment */
+.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
+.highlight .k { font-weight: bold } /* Keyword */
+.highlight .o { font-weight: bold } /* Operator */
+.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
+.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
+.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
+.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #aa0000 } /* Generic.Error */
+.highlight .gh { color: #999999 } /* Generic.Heading */
+.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
+.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
+.highlight .go { color: #888888 } /* Generic.Output */
+.highlight .gp { color: #555555 } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #aaaaaa } /* Generic.Subheading */
+.highlight .gt { color: #aa0000 } /* Generic.Traceback */
+.highlight .kc { font-weight: bold } /* Keyword.Constant */
+.highlight .kd { font-weight: bold } /* Keyword.Declaration */
+.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
+.highlight .kr { font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
+.highlight .m { color: #009999 } /* Literal.Number */
+.highlight .s { color: #d14 } /* Literal.String */
+.highlight .na { color: #008080 } /* Name.Attribute */
+.highlight .nb { color: #0086B3 } /* Name.Builtin */
+.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
+.highlight .no { color: #008080 } /* Name.Constant */
+.highlight .ni { color: #800080 } /* Name.Entity */
+.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
+.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
+.highlight .nn { color: #555555 } /* Name.Namespace */
+.highlight .nt { color: #000080 } /* Name.Tag */
+.highlight .nv { color: #008080 } /* Name.Variable */
+.highlight .ow { font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mf { color: #009999 } /* Literal.Number.Float */
+.highlight .mh { color: #009999 } /* Literal.Number.Hex */
+.highlight .mi { color: #009999 } /* Literal.Number.Integer */
+.highlight .mo { color: #009999 } /* Literal.Number.Oct */
+.highlight .sb { color: #d14 } /* Literal.String.Backtick */
+.highlight .sc { color: #d14 } /* Literal.String.Char */
+.highlight .sd { color: #d14 } /* Literal.String.Doc */
+.highlight .s2 { color: #d14 } /* Literal.String.Double */
+.highlight .se { color: #d14 } /* Literal.String.Escape */
+.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
+.highlight .si { color: #d14 } /* Literal.String.Interpol */
+.highlight .sx { color: #d14 } /* Literal.String.Other */
+.highlight .sr { color: #009926 } /* Literal.String.Regex */
+.highlight .s1 { color: #d14 } /* Literal.String.Single */
+.highlight .ss { color: #990073 } /* Literal.String.Symbol */
+.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #008080 } /* Name.Variable.Class */
+.highlight .vg { color: #008080 } /* Name.Variable.Global */
+.highlight .vi { color: #008080 } /* Name.Variable.Instance */
+.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/docs/dynamo/Access.Binary.Dict.html b/docs/dynamo/Access.Binary.Dict.html
new file mode 100644
index 000000000..787231b18
--- /dev/null
+++ b/docs/dynamo/Access.Binary.Dict.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Access.Binary.Dict</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Access.Binary.Dict
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/binary/dict.ex#L151" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#access/2">access/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="access/2">
+    <strong>access(arg1, key)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/binary/dict.ex#L152" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Binary.Dict.html b/docs/dynamo/Binary.Dict.html
new file mode 100644
index 000000000..38b4bda26
--- /dev/null
+++ b/docs/dynamo/Binary.Dict.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Dict</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Dict
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module implements a dictionary that forces the keys to
+be converted to binaries on insertion. Currently it is
+implemented using a <code>List.Dict</code> underneath, but this may
+change in the future.</p>
+
+<p>Check the <code>Dict</code> module for examples and documentation.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/binary/dict.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#new/0">new/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/1">new/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/2">new/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="new/0">
+    <strong>new()</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/binary/dict.ex#L24" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/1">
+    <strong>new(pairs)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/binary/dict.ex#L26" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/2">
+    <strong>new(pairs, transform)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/binary/dict.ex#L30" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Binary.Inspect.Binary.Dict.html b/docs/dynamo/Binary.Inspect.Binary.Dict.html
new file mode 100644
index 000000000..ca05ec78d
--- /dev/null
+++ b/docs/dynamo/Binary.Inspect.Binary.Dict.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Binary.Dict</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Binary.Dict
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/binary/dict.ex#L160" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(arg1, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/binary/dict.ex#L163" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Binary.Inspect.Dynamo.Connection.Test.html b/docs/dynamo/Binary.Inspect.Dynamo.Connection.Test.html
new file mode 100644
index 000000000..77fbc1dfe
--- /dev/null
+++ b/docs/dynamo/Binary.Inspect.Dynamo.Connection.Test.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Dynamo.Connection.Test</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Dynamo.Connection.Test
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection/test.ex#L306" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(conn, _)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection/test.ex#L307" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Binary.Inspect.Dynamo.Cowboy.Connection.html b/docs/dynamo/Binary.Inspect.Dynamo.Cowboy.Connection.html
new file mode 100644
index 000000000..733d97192
--- /dev/null
+++ b/docs/dynamo/Binary.Inspect.Dynamo.Cowboy.Connection.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Dynamo.Cowboy.Connection</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Dynamo.Cowboy.Connection
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/cowboy/connection.ex#L211" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(conn, _)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/cowboy/connection.ex#L212" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Base.html b/docs/dynamo/Dynamo.Base.html
new file mode 100644
index 000000000..15824ceed
--- /dev/null
+++ b/docs/dynamo/Dynamo.Base.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Base</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Base
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Holds the base configuration available in a Dynamo.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/base.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+        <h2>Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#config/2">config/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#initializer/2">initializer/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#templates/1">templates/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="config/2">
+    <strong>config(key, opts)</strong>
+  </p>
+  <div class="docstring"><p>Defines a configuration for the given key.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/base.ex#L9" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="initializer/2">
+    <strong>initializer(name, list2)</strong>
+  </p>
+  <div class="docstring"><p>Defines an initializer that will be invoked when
+the application starts.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/base.ex#L33" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="templates/1">
+    <strong>templates(list1)</strong>
+  </p>
+  <div class="docstring"><p>Defines default functionality available in templates.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/base.ex#L21" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Connection.Behaviour.html b/docs/dynamo/Dynamo.Connection.Behaviour.html
new file mode 100644
index 000000000..2533fb922
--- /dev/null
+++ b/docs/dynamo/Dynamo.Connection.Behaviour.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Connection.Behaviour</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Connection.Behaviour
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Common behaviour used between <code>Dynamo.Connection</code> connection
+implementations. When used, it defines a private record
+via <code>defrecordp</code> named <code>connection</code> with the following fields
+and their default values:</p>
+
+<ul>
+<li>assigns - an empty list</li>
+<li>params - <code>nil</code></li>
+<li>req_headers - <code>nil</code></li>
+<li>req_body - <code>nil</code></li>
+<li>resp_body - an empty binary</li>
+<li>resp_charset - <code>&quot;utf-8&quot;</code></li>
+<li>resp<em>content</em>type - <code>nil</code></li>
+<li>resp_cookies - <code>[]</code></li>
+<li>resp_headers - an empty binary dict</li>
+<li>state - <code>:unset</code></li>
+<li>status - <code>nil</code></li>
+<li>script<em>name</em>segments - an empty list</li>
+</ul>
+
+<p>Besides the fields above, it also defines the following
+fields, but it expects those fields to be set when the
+connection is initialized with the following contents:</p>
+
+<ul>
+<li>app - with the app invoked</li>
+<li>before_send - a call to <code>Dynamo.Connection.default_before_send</code></li>
+<li>method - the current request method</li>
+<li>original_method - the current request method</li>
+<li>path<em>info</em>segments - the current path segments</li>
+</ul>
+
+<p>A developer can pass extra fields via <code>use</code>:</p>
+
+<pre><code>use Dynamo.Connection.Behaviour, [:my_field, :other_field]
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection/behaviour.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Connection.File.html b/docs/dynamo/Dynamo.Connection.File.html
new file mode 100644
index 000000000..960c5ce14
--- /dev/null
+++ b/docs/dynamo/Dynamo.Connection.File.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Connection.File</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Connection.File
+        
+          <small>record</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Contains a file representation whenever there is a multipart
+request and it contains a File.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L2" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>path:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>name:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>content_type:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>filename:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Connection.NotSentError.html b/docs/dynamo/Dynamo.Connection.NotSentError.html
new file mode 100644
index 000000000..fe38cc124
--- /dev/null
+++ b/docs/dynamo/Dynamo.Connection.NotSentError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Connection.NotSentError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Connection.NotSentError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L22" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "no response was set in the connection"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Connection.QueryParser.ParseError.html b/docs/dynamo/Dynamo.Connection.QueryParser.ParseError.html
new file mode 100644
index 000000000..abbd86804
--- /dev/null
+++ b/docs/dynamo/Dynamo.Connection.QueryParser.ParseError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Connection.QueryParser.ParseError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Connection.QueryParser.ParseError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection/query_parser.ex#L2" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Connection.QueryParser.html b/docs/dynamo/Dynamo.Connection.QueryParser.html
new file mode 100644
index 000000000..a315ffd68
--- /dev/null
+++ b/docs/dynamo/Dynamo.Connection.QueryParser.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Connection.QueryParser</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Connection.QueryParser
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Conveniences for parsing query strings in Dynamo.</p>
+
+<p>Dynamo allows a developer to build query strings
+that maps to Elixir structures in order to make
+manipulation of such structures easier on the server
+side. Here are some examples:</p>
+
+<pre><code>parse(&quot;foo=bar&quot;)[&quot;foo&quot;] #=&gt; &quot;bar&quot;
+</code></pre>
+
+<p>If a value is given more than once, it is overridden:</p>
+
+<pre><code>parse(&quot;foo=bar&amp;foo=baz&quot;)[&quot;foo&quot;] #=&gt; &quot;baz&quot;
+</code></pre>
+
+<p>Nested structures can be created via <code>[key]</code>:</p>
+
+<pre><code>parse(&quot;foo[bar]=baz&quot;)[&quot;foo&quot;][&quot;bar&quot;] #=&gt; &quot;baz&quot;
+</code></pre>
+
+<p>Lists are created with <code>[]</code>:</p>
+
+<pre><code>parse(&quot;foo[]=bar&amp;foo[]=baz&quot;)[&quot;foo&quot;] #=&gt; [&quot;baz&quot;, &quot;baz&quot;]
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection/query_parser.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#parse/2">parse/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/2">reduce/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="parse/2">
+    <strong>parse(query, dict // Binary.Dict.new())</strong>
+  </p>
+  <div class="docstring"><p>Parses a raw query string, decodes it and returns
+a <code>Binary.Dict</code> containing nested hashes.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection/query_parser.ex#L32" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/2">
+    <strong>reduce(arg1, acc)</strong>
+  </p>
+  <div class="docstring"><p>Receives a raw key, its value and the current accumulator
+and parses the key merging it into the current accumulator.</p>
+
+<p>Parameters lists are added to the accumulator in reverse order,
+so be sure to pass the parameters in reverse order.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection/query_parser.ex#L50" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Connection.Test.html b/docs/dynamo/Dynamo.Connection.Test.html
new file mode 100644
index 000000000..98e305d68
--- /dev/null
+++ b/docs/dynamo/Dynamo.Connection.Test.html
@@ -0,0 +1,219 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Connection.Test</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Connection.Test
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Implementation of the <code>Dynamo.Connection</code> behaviour used for testing.
+Check <code>Dynamo.Connection</code> for documentation of all available callbacks.</p>
+
+<p>Note that, besides the functions required by <code>Dynamo.Connection</code>,
+this connection also implements a couple extra functions, like
+<code>sent_body/1</code>, to retrieve the sent body, and <code>fetched/1</code>, to
+retrieve fetched aspects, which are useful for testing.</p>
+
+<p>Although a new connection can be created via:</p>
+
+<pre><code>Dynamo.Connection.Test.new(verb, path, body)
+</code></pre>
+
+<p>In practice, a developer should simply use <code>Dynamo.HTTP.Case</code>,
+which provides some wrappers around testing:</p>
+
+<pre><code>conn(verb, path, body)
+</code></pre>
+
+<p>Check <code>Dynamo.HTTP.Case</code> for more information on testing.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection/test.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#already_sent?/1">already_sent?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#app/2">app/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete_req_header/2">delete_req_header/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetched/1">fetched/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/3">new/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_req_cookie/3">put_req_cookie/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_req_header/3">put_req_header/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#recycle/1">recycle/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#req/4">req/4</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="already_sent?/1">
+    <strong>already_sent?(_conn)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection/test.ex#L91" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="app/2">
+    <strong>app(app, conn)</strong>
+  </p>
+  <div class="docstring"><p>Sets the application under test.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection/test.ex#L189" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete_req_header/2">
+    <strong>delete_req_header(key, conn)</strong>
+  </p>
+  <div class="docstring"><p>Deletes a request header.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection/test.ex#L301" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetched/1">
+    <strong>fetched(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Returns all fetched aspects during a request.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection/test.ex#L279" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/3">
+    <strong>new(method, path, body // &quot;&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Initializes a connection to be used in tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection/test.ex#L30" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_req_cookie/3">
+    <strong>put_req_cookie(key, value, conn)</strong>
+  </p>
+  <div class="docstring"><p>Sets the cookies to be read by the request.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection/test.ex#L286" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_req_header/3">
+    <strong>put_req_header(key, value, conn)</strong>
+  </p>
+  <div class="docstring"><p>Sets a request header, overriding any previous value.
+Both <code>key</code> and <code>value</code> are converted to binary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection/test.ex#L294" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="recycle/1">
+    <strong>recycle(conn)</strong>
+  </p>
+  <div class="docstring"><p>Recycles the connection to it can be used in a subsequent requests.</p>
+
+<p>Reclycing the connection resets all assigns, privates and other
+response information but keeps mostly of request information intact.</p>
+
+<p>Particularly, cookies sent in the response are moved to the request,
+so they can be used in upcoming requests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection/test.ex#L252" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="req/4">
+    <strong>req(method, path, body // &quot;&quot;, conn)</strong>
+  </p>
+  <div class="docstring"><p>Prepares the connection to do a new request on the
+given <code>path</code> with the given <code>method</code> and <code>body</code>.</p>
+
+<p>This can be considered the counter-part of recycle
+(which is used to clean up the response).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection/test.ex#L200" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Connection.UnfetchedError.html b/docs/dynamo/Dynamo.Connection.UnfetchedError.html
new file mode 100644
index 000000000..0b7cc3ae1
--- /dev/null
+++ b/docs/dynamo/Dynamo.Connection.UnfetchedError.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Connection.UnfetchedError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Connection.UnfetchedError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L9" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>aspect:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L10" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Connection.UnknownFetchError.html b/docs/dynamo/Dynamo.Connection.UnknownFetchError.html
new file mode 100644
index 000000000..3be46e976
--- /dev/null
+++ b/docs/dynamo/Dynamo.Connection.UnknownFetchError.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Connection.UnknownFetchError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Connection.UnknownFetchError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L16" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>aspect:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Connection.html b/docs/dynamo/Dynamo.Connection.html
new file mode 100644
index 000000000..3d1e4b465
--- /dev/null
+++ b/docs/dynamo/Dynamo.Connection.html
@@ -0,0 +1,912 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Connection</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Connection
+        
+          <small>behaviour</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This modules defines the connection API.</p>
+
+<p>By default, Elixir ships with two implementations
+of this API: <code>Dynamo.Cowboy.Connection</code> (used by
+Cowboy web server) and <code>Dynamo.Connection.Test</code>.</p>
+
+<p>Notice that this module documentation uses the record
+notation. So although the documentation says <code>params(conn)</code>,
+the function should be invoked as <code>conn.params()</code> and
+Elixir automatically moves the <code>conn</code> to the last argument.</p>
+
+<p>It is also important to remind that, as in all Elixir
+structures, a connection is immutable. So if you are using
+<code>conn.put_resp_header(&quot;X-API&quot;, &quot;123456&quot;)</code> to set a response
+header, a new connection will be returned with the new header
+set. The original <code>conn</code> is not going to be modified.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#default_before_send/0">default_before_send/0</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <h2>Callbacks summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#app/1">app/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_private/3">put_private/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#private/1">private/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_assign/3">put_assign/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#assign/3">assign/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#assigns/1">assigns/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetchable/3">fetchable/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch/2">fetch/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_resp_cookie/4">put_resp_cookie/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#resp_cookies/1">resp_cookies/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#req_cookies/1">req_cookies/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete_resp_header/2">delete_resp_header/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_resp_header/3">put_resp_header/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#resp_headers/1">resp_headers/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#upgrade/3">upgrade/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#state/1">state/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#sendfile/2">sendfile/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#send/1">send/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#resp/3">resp/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#resp_content_type/2">resp_content_type/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#resp_content_type/1">resp_content_type/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#resp_charset/2">resp_charset/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#resp_charset/1">resp_charset/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#resp_body/2">resp_body/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#resp_body/1">resp_body/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#status/2">status/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#status/1">status/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#chunk/2">chunk/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#send_chunked/2">send_chunked/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#send/3">send/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#already_sent?/1">already_sent?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#forward_to/3">forward_to/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#script_name/1">script_name/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#script_name_segments/1">script_name_segments/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#path_info/1">path_info/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#path_info_segments/1">path_info_segments/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#path/1">path/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#path_segments/1">path_segments/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#query_string/1">query_string/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#host_url/1">host_url/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#port/1">port/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#host/1">host/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#scheme/1">scheme/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#version/1">version/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#method/2">method/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#original_method/1">original_method/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#method/1">method/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#req_body/1">req_body/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#req_headers/1">req_headers/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#route_params/2">route_params/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#route_params/1">route_params/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#params/1">params/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="default_before_send/0">
+    <strong>default_before_send()</strong>
+  </p>
+  <div class="docstring"><p>Default values for before send callbacks.
+It contains callbacks to set content type,
+configure cookies and session.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+        <div id="callbacks_details" class="details_list">
+          <h2>Callbacks</h2>
+          <div class="detail">
+  <p class="signature" id="app/1">
+    <strong>app(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the application that received the request.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L430" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_private/3">
+    <strong>put_private(key :: atom(), value :: term(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Sets a new private assign with the given key and value.
+We recommended private keys to follow the format:</p>
+
+<p>:&quot;#{plugin}_#{key}&quot;</p>
+
+<p>For example, a Dynamo key to store timeout values would
+be set as: <code>:dynamo_timeout</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L425" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="private/1">
+    <strong>private(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns a keywords list with private assigns set so far.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L414" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_assign/3">
+    <strong>put_assign(key :: atom(), value :: term(), conn())</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>assign/3</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L409" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="assign/3">
+    <strong>assign(key :: atom(), value :: term(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Puts a new assign with the given key and value.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L404" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="assigns/1">
+    <strong>assigns(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns a keywords list with assigns set so far.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L399" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetchable/3">
+    <strong>fetchable(atom(), (conn() -&gt; conn()), conn())</strong>
+  </p>
+  <div class="docstring"><p>Register an aspect as fetchable in the connection.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L394" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch/2">
+    <strong>fetch(fetch_aspect() | list(fetch_aspect()), conn())</strong>
+  </p>
+  <div class="docstring"><p>Responsible for fetching and caching aspects of the response.
+The default &quot;fetchable&quot; aspects are: headers, params, cookies and body.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L389" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_resp_cookie/4">
+    <strong>put_resp_cookie(key :: binary(), value :: (binary() | nil), opts :: list(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Puts the response cookie with the given key, value and list
+of options.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L381" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="resp_cookies/1">
+    <strong>resp_cookies(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the response cookies as a list of three element tuples
+containing the key, value and given options.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L375" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="req_cookies/1">
+    <strong>req_cookies(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the cookies sent in the request as a <code>Binary.Dict</code>.
+Cookies need to be explicitly fetched with <code>conn.fetch(:cookies)</code>
+before using this function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L369" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete_resp_header/2">
+    <strong>delete_resp_header(key :: Binary.Chars.t(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Deletes a response header.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L360" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_resp_header/3">
+    <strong>put_resp_header(key :: Binary.Chars.t(), value :: Binary.Chars.t(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Puts a response header, overriding any previous value.
+Both <code>key</code> and <code>value</code> are converted to binary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L355" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="resp_headers/1">
+    <strong>resp_headers(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the response headers as <code>Binary.Dict</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L349" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="upgrade/3">
+    <strong>upgrade(upgrades(), module(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Upgrades the connection. The connection is sent
+back to the server which encapsulates all the
+communication with the desired handler.</p>
+
+<p>Dynamo does not intermediate any connection upgrade.
+This means you need to consult the underlying web
+server in order to interact with the upgraded connection.</p>
+
+<p>The only supported upgrade so far is <code>:websocket</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>conn.upgrade(:websocket, GameRoom)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L344" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="state/1">
+    <strong>state(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the response state. It can be:</p>
+
+<ul>
+<li><code>:unset</code> - the response was not configured yet</li>
+<li><code>:set</code> - the response was set via <code>conn.resp_body</code> or <code>conn.status</code></li>
+<li><code>:chunked</code> - the response is being sent in chunks</li>
+<li><code>:sent</code> - the response was sent</li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L326" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="sendfile/2">
+    <strong>sendfile(path :: binary(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Sends the file at the given path. It is expected that the
+given path exists and it points to a regular file. The
+file is sent straight away.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L315" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="send/1">
+    <strong>send(conn())</strong>
+  </p>
+  <div class="docstring"><p>A shortcut to <code>conn.send(conn.status, conn.resp_body)</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L308" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="resp/3">
+    <strong>resp(status(), body(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Sets a response to the given status and body. The
+response will only be sent when <code>send</code> is called.</p>
+
+<p>After calling this function, the state changes to <code>:set</code>,
+both <code>status</code> and <code>resp_body</code> are set.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L303" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="resp_content_type/2">
+    <strong>resp_content_type(content_type(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Sets the response content-type.
+This is sent as a header when the response is sent.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L294" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="resp_content_type/1">
+    <strong>resp_content_type(conn())</strong>
+  </p>
+  <div class="docstring"><p>Gets the response content-type.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L288" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="resp_charset/2">
+    <strong>resp_charset(charset(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Sets the response charset. The charset is just added
+to the response if <code>resp_content_type</code> is also set.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L283" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="resp_charset/1">
+    <strong>resp_charset(conn())</strong>
+  </p>
+  <div class="docstring"><p>Gets the response charset.
+Defaults to &quot;utf-8&quot;.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L277" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="resp_body/2">
+    <strong>resp_body(body(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Sets the response body and changes the state to <code>:set</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L271" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="resp_body/1">
+    <strong>resp_body(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the response body if one was set.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L266" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="status/2">
+    <strong>status(status(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Sets the response status and changes the state to <code>:set</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L261" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="status/1">
+    <strong>status(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the response status if one was set.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L256" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="chunk/2">
+    <strong>chunk(body(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Send the given data through the socket.
+<code>send_chunked/2</code> needs to be called before <code>chunk/2</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L251" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="send_chunked/2">
+    <strong>send_chunked(status(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Starts to send a chunked response to the client.
+An updated connection is returned with <code>:chunked</code> state,
+the given status and response body set to nil.
+Use <code>chunk/2</code> to chunk each part of the response.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L245" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="send/3">
+    <strong>send(status(), body :: term(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Sends to the client the given status and body.
+An updated connection is returned with <code>:sent</code> state,
+the given status and response body set to nil.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L237" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="already_sent?/1">
+    <strong>already_sent?(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns a boolean if the connection was already sent or not.
+This must return the correct result regardless if we have an
+updated copy of the connection or not.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L230" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="forward_to/3">
+    <strong>forward_to(segments(), module(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Mounts the request by setting the new path information to the given
+<em>segments</em>. Both script<em>name/1 and path</em>segments/1 are updated.
+The segments given must be a suffix of the current path segments.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L221" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="script_name/1">
+    <strong>script_name(conn())</strong>
+  </p>
+  <div class="docstring"><p>As in CGI environment, returns the current forwarded endpoint as binary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L214" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="script_name_segments/1">
+    <strong>script_name_segments(conn())</strong>
+  </p>
+  <div class="docstring"><p>As in CGI environment, returns the current forwarded endpoint as segments.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L209" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="path_info/1">
+    <strong>path_info(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the request path relative to the forwarding endpoint
+as a binary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L204" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="path_info_segments/1">
+    <strong>path_info_segments(conn())</strong>
+  </p>
+  <div class="docstring"><p>Return the path as a list of binaries split on &quot;/&quot;.
+If the request was forwarded request, <code>path_info_segments</code> returns
+only the segments related to the current forwarded endpoint.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L198" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="path/1">
+    <strong>path(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the full path as a binary, as received by the web server.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L191" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="path_segments/1">
+    <strong>path_segments(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the full path segments, as received by the web server.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L186" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="query_string/1">
+    <strong>query_string(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the query string as a binary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L181" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="host_url/1">
+    <strong>host_url(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the host_url (i.e. containing the scheme,
+hort and port).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L174" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="port/1">
+    <strong>port(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the request port.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L168" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="host/1">
+    <strong>host(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the request host.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L163" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="scheme/1">
+    <strong>scheme(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the request scheme.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L158" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="version/1">
+    <strong>version(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the HTTP version.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L153" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="method/2">
+    <strong>method(method(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Changes the request method to the given <code>method</code>,
+storing the previous value in original_method.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L148" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="original_method/1">
+    <strong>original_method(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the original HTTP method as a binary.
+Sometimes a filter may change the method from
+HEAD to GET or from POST to PUT, this function
+returns the original method.</p>
+
+<h2>Examples</h2>
+
+<pre><code>conn.original_method #=&gt; &quot;GET&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L142" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="method/1">
+    <strong>method(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the HTTP method as a binary.</p>
+
+<h2>Examples</h2>
+
+<pre><code>conn.method #=&gt; &quot;GET&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L129" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="req_body/1">
+    <strong>req_body(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the request body as a binary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L119" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="req_headers/1">
+    <strong>req_headers(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the request headers as <code>Binary.Dict</code>. Note that duplicated
+entries are removed. The headers need to be explicitly fetched with
+<code>conn.fetch(:headers)</code> before using this function. Headers keys are
+all downcased.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L114" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="route_params/2">
+    <strong>route_params(Keyword.t(), conn())</strong>
+  </p>
+  <div class="docstring"><p>Updates the route parameters. This is used internally by Dynamo
+and a developer does not need to invoke it manually.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L106" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="route_params/1">
+    <strong>route_params(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the parameters that were set as part of the route
+matching. This is used internally by Dynamo and a developer
+likely does not need to invoke it manually.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L100" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="params/1">
+    <strong>params(conn())</strong>
+  </p>
+  <div class="docstring"><p>Returns the params retrieved from the query string and the request
+body as a <code>Binary.Dict</code>. The parameters need to be explicitly
+fetched with <code>conn.fetch(:params)</code> before using this function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/connection.ex#L93" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Cowboy.html b/docs/dynamo/Dynamo.Cowboy.html
new file mode 100644
index 000000000..dbf6c3268
--- /dev/null
+++ b/docs/dynamo/Dynamo.Cowboy.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Cowboy</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Cowboy
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Provides the interface to Cowboy webserver.
+Check <code>run/2</code> for more information.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/cowboy.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/2">run/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#shutdown/1">shutdown/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/2">
+    <strong>run(app, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Runs the given app with the given options:</p>
+
+<ul>
+<li><p><code>port</code> - the port to run the server (defaults to 4000)</p></li>
+<li><p><code>acceptors</code> - the number of acceptors for the listener</p></li>
+<li><p><code>max_connections</code> - max number of connections supported</p></li>
+<li><p><code>ssl</code> - SSL options for the server. It accepts all options
+mentioned above plus the configuration options accepted
+by the <a href="http://www.erlang.org/doc/man/ssl.html"><code>ssl</code> erlang module</a>
+(like keyfile, certfile and others).</p></li>
+</ul>
+
+<h2>Example</h2>
+
+<pre><code>Dynamo.Cowboy.run MyApp, port: 80
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/cowboy.ex#L26" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="shutdown/1">
+    <strong>shutdown(app)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/cowboy.ex#L47" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Exception.Any.html b/docs/dynamo/Dynamo.Exception.Any.html
new file mode 100644
index 000000000..0a903b127
--- /dev/null
+++ b/docs/dynamo/Dynamo.Exception.Any.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Exception.Any</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Exception.Any
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/exceptions.ex#L23" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#status/1">status/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="status/1">
+    <strong>status(_)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/exceptions.ex#L24" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Exception.Dynamo.NotFoundError.html b/docs/dynamo/Dynamo.Exception.Dynamo.NotFoundError.html
new file mode 100644
index 000000000..a1ec1529f
--- /dev/null
+++ b/docs/dynamo/Dynamo.Exception.Dynamo.NotFoundError.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Exception.Dynamo.NotFoundError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Exception.Dynamo.NotFoundError
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/exceptions.ex#L28" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#status/1">status/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="status/1">
+    <strong>status(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/exceptions.ex#L29" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Exception.html b/docs/dynamo/Dynamo.Exception.html
new file mode 100644
index 000000000..452b406ef
--- /dev/null
+++ b/docs/dynamo/Dynamo.Exception.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Exception</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Exception
+        
+          <small>protocol</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This protocol specifies how Dynamo should react to specific
+exceptions. particularly, the status code to be used when an
+exception happens.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/exceptions.ex#L4" target="_blank" class="view_source">Source</a>
+
+      
+        <h2>Implementations</h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Dynamo.Exception.Any.html">Any</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Dynamo.Exception.Dynamo.NotFoundError.html">Dynamo.NotFoundError</a>
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#status/1">status/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="status/1">
+    <strong>status(exception)</strong>
+  </p>
+  <div class="docstring"><p>Receives the exception and the connection. It must
+return an integer representing the exception status
+code or a tuple containing the forementioned integer
+and a connection in case the exception holds a
+connection.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/exceptions.ex#L20" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Filters.Exceptions.Debug.html b/docs/dynamo/Dynamo.Filters.Exceptions.Debug.html
new file mode 100644
index 000000000..f024da84e
--- /dev/null
+++ b/docs/dynamo/Dynamo.Filters.Exceptions.Debug.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Filters.Exceptions.Debug</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Filters.Exceptions.Debug
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/exceptions/debug.ex#L24" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#extract_snippet/2">extract_snippet/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#mod_fun/3">mod_fun/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#service/1">service/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="extract_snippet/2">
+    <strong>extract_snippet(original, line)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/exceptions/debug.ex#L125" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="mod_fun/3">
+    <strong>mod_fun(module, fun, args_or_arity)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/exceptions/debug.ex#L77" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="service/1">
+    <strong>service(conn)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/exceptions/debug.ex#L29" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Filters.Exceptions.Public.html b/docs/dynamo/Dynamo.Filters.Exceptions.Public.html
new file mode 100644
index 000000000..b96b6c1c6
--- /dev/null
+++ b/docs/dynamo/Dynamo.Filters.Exceptions.Public.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Filters.Exceptions.Public</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Filters.Exceptions.Public
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Display exceptions publicly.
+It simply sets th status code in the conneciton.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/exceptions/public.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#service/1">service/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="service/1">
+    <strong>service(conn)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/exceptions/public.ex#L6" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Filters.Exceptions.html b/docs/dynamo/Dynamo.Filters.Exceptions.html
new file mode 100644
index 000000000..de23d71bc
--- /dev/null
+++ b/docs/dynamo/Dynamo.Filters.Exceptions.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Filters.Exceptions</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Filters.Exceptions
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A filter that is responsible to catch, log and handle exceptions.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/exceptions.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#new/1">new/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#service/3">service/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="new/1">
+    <strong>new(handler)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/exceptions.ex#L9" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="service/3">
+    <strong>service(conn, fun, arg3)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/exceptions.ex#L13" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Filters.Head.html b/docs/dynamo/Dynamo.Filters.Head.html
new file mode 100644
index 000000000..f992f63e5
--- /dev/null
+++ b/docs/dynamo/Dynamo.Filters.Head.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Filters.Head</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Filters.Head
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A simple filter that converts HEAD requests to GET.
+<code>conn.method</code> will report to be &quot;GET&quot; and
+<code>conn.original_method</code> will return &quot;HEAD&quot;.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/head.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#service/2">service/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="service/2">
+    <strong>service(conn, fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/head.ex#L7" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Filters.Loader.html b/docs/dynamo/Dynamo.Filters.Loader.html
new file mode 100644
index 000000000..df3e02a32
--- /dev/null
+++ b/docs/dynamo/Dynamo.Filters.Loader.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Filters.Loader</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Filters.Loader
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A simple module that handles compilation on demand
+and automatic code loading. This filter is automatically
+by Dynamos based on your configuration options.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/loader.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Filters.Session.CookieOverflowError.html b/docs/dynamo/Dynamo.Filters.Session.CookieOverflowError.html
new file mode 100644
index 000000000..5a5324cc2
--- /dev/null
+++ b/docs/dynamo/Dynamo.Filters.Session.CookieOverflowError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Filters.Session.CookieOverflowError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Filters.Session.CookieOverflowError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/session.ex#L29" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "the session cookie exceeds the 4kb limit"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Filters.Session.CookieStore.html b/docs/dynamo/Dynamo.Filters.Session.CookieStore.html
new file mode 100644
index 000000000..7bd691a33
--- /dev/null
+++ b/docs/dynamo/Dynamo.Filters.Session.CookieStore.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Filters.Session.CookieStore</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Filters.Session.CookieStore
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Implements a cookie store. This cookie store is based on
+<code>Dynamo.Utils.MessageVerifier</code> which signs each cookie to
+ensure they won&#39;t be tampered with.</p>
+
+<p>Notice the cookie contents are still visible and therefore
+private data should never be put into such store.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/session/stores.ex#L47" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#delete_session/2">delete_session/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_session/2">get_session/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_session/3">put_session/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#setup/1">setup/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="delete_session/2">
+    <strong>delete_session(_id, _opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/session/stores.ex#L82" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_session/2">
+    <strong>get_session(content, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/session/stores.ex#L71" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_session/3">
+    <strong>put_session(_id, term, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/session/stores.ex#L78" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="setup/1">
+    <strong>setup(opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/session/stores.ex#L61" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Filters.Session.ETSStore.html b/docs/dynamo/Dynamo.Filters.Session.ETSStore.html
new file mode 100644
index 000000000..f69a7b61e
--- /dev/null
+++ b/docs/dynamo/Dynamo.Filters.Session.ETSStore.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Filters.Session.ETSStore</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Filters.Session.ETSStore
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Stores the session in an ETS table (i.e. in memory).</p>
+
+<p>Useful for single server applications which do not want
+to write their session down to a cookie.</p>
+
+<p>This store does not create the ETS table, it is expected
+that an existing named table is given as argument with
+public properties.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/session/stores.ex#L87" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#delete_session/2">delete_session/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_session/2">get_session/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_session/3">put_session/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#setup/1">setup/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="delete_session/2">
+    <strong>delete_session(key, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/session/stores.ex#L136" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_session/2">
+    <strong>get_session(content, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/session/stores.ex#L114" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_session/3">
+    <strong>put_session(key, term, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/session/stores.ex#L121" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="setup/1">
+    <strong>setup(opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/session/stores.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Filters.Session.Store.html b/docs/dynamo/Dynamo.Filters.Session.Store.html
new file mode 100644
index 000000000..020ba3f87
--- /dev/null
+++ b/docs/dynamo/Dynamo.Filters.Session.Store.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Filters.Session.Store</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Filters.Session.Store
+        
+          <small>behaviour</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module defines some conveniences and the API
+required by session stores.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/session/stores.ex#L3" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+        <h2>Callbacks summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#delete_session/2">delete_session/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_session/3">put_session/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_session/2">get_session/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#setup/1">setup/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="callbacks_details" class="details_list">
+          <h2>Callbacks</h2>
+          <div class="detail">
+  <p class="signature" id="delete_session/2">
+    <strong>delete_session(sid(), opts())</strong>
+  </p>
+  <div class="docstring"><p><code>delete_session/2</code> is responsible for deleting a previously
+stored sid from the store.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/session/stores.ex#L44" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_session/3">
+    <strong>put_session(maybe(sid()), session(), opts())</strong>
+  </p>
+  <div class="docstring"><p><code>put_session/3</code> receives the session id and the session
+and must persist it. It must return the cookie value (which
+will be passed to <code>get_session/2</code> in the next request).</p>
+
+<p>The session id <strong>may</strong> be nil. In such cases, the store
+is responsible for generating a session id if required.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/session/stores.ex#L38" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_session/2">
+    <strong>get_session(cookie(), opts())</strong>
+  </p>
+  <div class="docstring"><p><code>get_session/2</code> receives a binary representing the
+current cookie value and must return a tuple with
+the session id (if one exists) and the session value
+(an empty list if there is no session).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/session/stores.ex#L28" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="setup/1">
+    <strong>setup(opts())</strong>
+  </p>
+  <div class="docstring"><p>A callback invoked when the filter is first created.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/session/stores.ex#L20" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Filters.Session.html b/docs/dynamo/Dynamo.Filters.Session.html
new file mode 100644
index 000000000..bff735f0e
--- /dev/null
+++ b/docs/dynamo/Dynamo.Filters.Session.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Filters.Session</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Filters.Session
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>The session filter. When added to your application,
+this filter allows you to fetch the session and to
+serialize it back.</p>
+
+<p>When initialized, this filter supports a set of options:</p>
+
+<ul>
+<li><code>key</code> - The name of the session cookie. This option is required;</li>
+</ul>
+
+<p>Besides is supports the following cookie related options:</p>
+
+<ul>
+<li><p><code>secure</code> - Marks the cookie as secure;</p></li>
+<li><p><code>domain</code> - The domain to which the cookie applies;</p></li>
+<li><p><code>path</code> - The path to which the cookie applies;</p></li>
+<li><p><code>http_only</code> - If the cookie is sent only via http. Default to true;</p></li>
+</ul>
+
+<p>The options above may also be set during the request, by using
+<code>Dynamo.HTTP.Session.configure_session/3</code>. For instance, to
+mark a session as secure, one can do:</p>
+
+<pre><code>configure_session(conn, :secure, true)
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/session.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Filters.Static.html b/docs/dynamo/Dynamo.Filters.Static.html
new file mode 100644
index 000000000..f7ea4b51c
--- /dev/null
+++ b/docs/dynamo/Dynamo.Filters.Static.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Filters.Static</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Filters.Static
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A Dynamo filter capable of serving static assets.</p>
+
+<p>It must be initialized passing the root option,
+which may be a directory of an atom representing
+an application to use the root directory.</p>
+
+<p>If an assets cannot be found, it simply forwards
+the request to the underlying application.</p>
+
+<h2>Examples</h2>
+
+<p>This filter can be used in custom routers as follow:</p>
+
+<pre><code>defmodule MyDynamo do
+  use Dynamo.Router
+  filter Dynamo.Filters.Static.new(&quot;/public&quot;, &quot;priv/app&quot;)
+end
+</code></pre>
+
+<p>By default, a Dynamo already inserts this filter which
+can be customized via the dynamo configuration. Check
+the <code>Dynamo</code> module for more information.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/filters/static.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.HTTP.Case.html b/docs/dynamo/Dynamo.HTTP.Case.html
new file mode 100644
index 000000000..49b3b03f7
--- /dev/null
+++ b/docs/dynamo/Dynamo.HTTP.Case.html
@@ -0,0 +1,278 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.HTTP.Case</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.HTTP.Case
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A bunch of helpers to make it easy to test Dynamos and routers.</p>
+
+<p>By default, these helpers are macros that dispatch directly
+to the registered endpoint. Here is an example:</p>
+
+<pre><code>defmodule MyAppTest do
+  use ExUnit.Case
+  use Dynamo.HTTP.Case
+
+  test :root_route do
+    conn = get(&quot;/&quot;)
+    assert conn.resp_body =~ %r/somevalue/
+  end
+end
+</code></pre>
+
+<p>The default dynamo used in tests is <code>Dynamo.under_Test</code>.
+This can be changed in a specific test case using <code>@endpoint</code>:</p>
+
+<pre><code>defmodule CustomRouterTest do
+  use ExUnit.Case
+  use Dynamo.HTTP.Case
+
+  @endpoint CustomRouter
+
+  test :route do
+    conn = get(&quot;/route&quot;)
+    assert conn.resp_body =~ %r/somevalue/
+  end
+end
+</code></pre>
+
+<p>The connection used in such tests is the <code>Dynamo.Connection.Test</code>
+which provides some test specific function.</p>
+
+<h2>Testing with sequential requests</h2>
+
+<p>In some cases, the same test may request different endpoints:</p>
+
+<pre><code>test :session do
+  conn = get(&quot;/put_session&quot;)
+  assert conn.resp_body =~ %r/somevalue/
+
+  conn = get(conn, &quot;/set_session&quot;)
+  assert conn.resp_body =~ %r/othervalue/
+end
+</code></pre>
+
+<p>The example above will automatically work, since
+<code>get</code>/<code>post</code>/<code>put</code>/<code>delete</code> recycles the connection before
+each request.</p>
+
+<p>When recycled, all response information previously set in
+the connection is cleaned and all cookies are moved from
+the response to the request. This allows state to be passed
+in between the different requests.</p>
+
+<p>Notice though that recycling will clean up any information
+set in the connection:</p>
+
+<pre><code>test :session do
+  conn = get(&quot;/put_session&quot;)
+  assert conn.resp_body =~ %r/somevalue/
+
+  conn = conn.assign(:foo, :bar)
+  conn = get(conn, &quot;/set_session&quot;)
+  assert conn.resp_body =~ %r/othervalue/
+end
+</code></pre>
+
+<p>In the example above, the assign <code>:foo</code> set before the request
+won&#39;t be visible in the endpoint since it will be cleaned up.
+This can be fixed by explicitly cleaning up the request:</p>
+
+<pre><code>conn = conn.recycle.assign(:foo, :bar)
+</code></pre>
+
+<p>If the connection was already recycled, it won&#39;t be recycled once again.</p>
+
+<p>Finally, notice that all <code>get</code>/<code>post</code>/<code>put</code>/<code>delete</code> macros
+are simply a proxy to <code>process/4</code>. So in case you want to dispatch
+to different apps at the same time, <code>process/4</code> may be useful.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/case.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#conn/3">conn/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#process/4">process/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_session_cookie/2">put_session_cookie/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2>Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#delete/2">delete/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/2">get/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#post/2">post/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put/2">put/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="conn/3">
+    <strong>conn(method, path, body // &quot;&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Returns a connection built with the given method, path and body.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/case.ex#L95" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="process/4">
+    <strong>process(endpoint, conn, method, path // nil)</strong>
+  </p>
+  <div class="docstring"><p>Requests the given <code>endpoint</code> with the given <code>method</code> and <code>path</code>.
+And verifies if the endpoint returned a valid connection.</p>
+
+<h2>Examples</h2>
+
+<pre><code>process MyDynamo, :get, &quot;/foo&quot;
+process MyDynamo, conn, :get, &quot;/foo&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/case.ex#L178" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_session_cookie/2">
+    <strong>put_session_cookie(conn, session)</strong>
+  </p>
+  <div class="docstring"><p>Writes a session cookie according to the current store to
+be used in the next request. This is the preferred way to
+set the session before a request.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/case.ex#L160" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="delete/2">
+    <strong>delete(arg1, arg2 // nil)</strong>
+  </p>
+  <div class="docstring"><p>Does a DELETE request to the given path:</p>
+
+<pre><code>delete(&quot;/foo&quot;)
+delete(conn, &quot;/foo&quot;)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/case.ex#L139" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/2">
+    <strong>get(arg1, arg2 // nil)</strong>
+  </p>
+  <div class="docstring"><p>Does a GET request to the given path:</p>
+
+<pre><code>get(&quot;/foo&quot;)
+get(conn, &quot;/foo&quot;)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/case.ex#L106" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="post/2">
+    <strong>post(arg1, arg2 // nil)</strong>
+  </p>
+  <div class="docstring"><p>Does a POST request to the given path:</p>
+
+<pre><code>post(&quot;/foo&quot;)
+post(conn, &quot;/foo&quot;)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/case.ex#L117" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put/2">
+    <strong>put(arg1, arg2 // nil)</strong>
+  </p>
+  <div class="docstring"><p>Does a PUT request to the given path:</p>
+
+<pre><code>put(&quot;/foo&quot;)
+put(conn, &quot;/foo&quot;)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/case.ex#L128" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.HTTP.Cookies.html b/docs/dynamo/Dynamo.HTTP.Cookies.html
new file mode 100644
index 000000000..0bf78eab7
--- /dev/null
+++ b/docs/dynamo/Dynamo.HTTP.Cookies.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.HTTP.Cookies</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.HTTP.Cookies
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/cookies.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#delete_cookie/3">delete_cookie/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_cookie/2">get_cookie/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_cookies/1">get_cookies/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_cookie/4">put_cookie/4</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="delete_cookie/3">
+    <strong>delete_cookie(conn, key, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Deletes a cookie. The same options given when setting the cookie
+must be given on delete to ensure the browser will pick them up.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/cookies.ex#L55" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_cookie/2">
+    <strong>get_cookie(conn, key)</strong>
+  </p>
+  <div class="docstring"><p>Returns the cookie value regardless if it was given sent
+on the request or set as part of the response.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/cookies.ex#L21" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_cookies/1">
+    <strong>get_cookies(conn)</strong>
+  </p>
+  <div class="docstring"><p>Returns all cookies. In case you want to retrieve
+just a value, it is recommended to use <code>get_cookie/2</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/cookies.ex#L11" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_cookie/4">
+    <strong>put_cookie(conn, key, value, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Puts a cookie with given key and value and the given options
+to the connection.</p>
+
+<h2>Options</h2>
+
+<ul>
+<li><p><code>max_age</code> - The cookie max-age in seconds. In order to support
+older IE versions, setting <code>max_age</code> also sets the Expires header;</p></li>
+<li><p><code>secure</code> - Marks the cookie as secure;</p></li>
+<li><p><code>domain</code> - The domain to which the cookie applies;</p></li>
+<li><p><code>path</code> - The path to which the cookie applies;</p></li>
+<li><p><code>http_only</code> - If the cookie is sent only via http. Default to true;</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/cookies.ex#L47" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.HTTP.Halt.html b/docs/dynamo/Dynamo.HTTP.Halt.html
new file mode 100644
index 000000000..d4e2d065d
--- /dev/null
+++ b/docs/dynamo/Dynamo.HTTP.Halt.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.HTTP.Halt</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.HTTP.Halt
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Conveniences to halt a request.
+A filter needs to be in place to
+handle the halted request.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/halt.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#halt!/1">halt!/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="halt!/1">
+    <strong>halt!(conn)</strong>
+  </p>
+  <div class="docstring"><p>Halts the request.</p>
+
+<h2>Examples</h2>
+
+<pre><code>unless conn.session[:user_info], do: halt! conn.status(401)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/halt.ex#L16" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.HTTP.Hibernate.html b/docs/dynamo/Dynamo.HTTP.Hibernate.html
new file mode 100644
index 000000000..bf8ce7c2a
--- /dev/null
+++ b/docs/dynamo/Dynamo.HTTP.Hibernate.html
@@ -0,0 +1,168 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.HTTP.Hibernate</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.HTTP.Hibernate
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Conveniences that allows a connection to hibernate or wait
+a given amount or an unlimited amount of time.</p>
+
+<p>Such conveniences are useful when a connection needs to be
+kept open (because of long polling, websockets or streaming)
+but you don&#39;t want to keep the current erlang process active
+all times.</p>
+
+<p>As such, waiting through small intervals or hibernating through
+long intervals is convenient.</p>
+
+<h2>Examples</h2>
+
+<p>There are two main functions defined by this module: <code>hibernate</code>
+and <code>await</code>. They can receive either 2 arguments, with the
+connection and a callback to be invoked on wake up:</p>
+
+<p>hibernate(conn, on<em>wake</em>up(&amp;1, &amp;2))
+  await(conn, on<em>wake</em>up(&amp;1, &amp;2))</p>
+
+<p>Or 4 arguments, in which a timeout and a callback to be invoked
+on timeout must also be present:</p>
+
+<p>hibernate(conn, timeout, on<em>wake</em>up(&amp;1, &amp;2), on<em>timeout(&amp;1))
+  await(conn, timeout, on</em>wake<em>up(&amp;1, &amp;2), on</em>timeout(&amp;1))</p>
+
+<p>Besides an positive integer or <code>:infinity</code>, this module also
+allows <code>:keep</code> as timeout value. This is useful to preserve
+a previously set timeout value.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/hibernate.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#await/2">await/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#await/4">await/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#hibernate/2">hibernate/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#hibernate/4">hibernate/4</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="await/2">
+    <strong>await(conn, on_wake_up)</strong>
+  </p>
+  <div class="docstring"><p>Sleeps the current process until a message is received.
+The <code>on_wake_up</code> callback is invoked with the <code>conn</code> and the
+received message on wake up.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/hibernate.ex#L76" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="await/4">
+    <strong>await(conn, timeout, on_wake_up, on_timeout)</strong>
+  </p>
+  <div class="docstring"><p>Sleeps the current process until a message is received
+but also sets a timeout.</p>
+
+<p>The <code>on_wake_up</code> callback is invoked with the <code>conn</code> and the
+received message on wake up. A <code>on_timeout</code> callback is
+invoked when it times out.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/hibernate.ex#L91" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="hibernate/2">
+    <strong>hibernate(conn, on_wake_up)</strong>
+  </p>
+  <div class="docstring"><p>Hibernates the current process until a message is received.
+The <code>on_wake_up</code> callback is invoked with the <code>conn</code> and the
+received message on wake up.</p>
+
+<p>For more information on hibernation, check:
+<a href="http://www.erlang.org/doc/man/erlang.html#hibernate-3">http://www.erlang.org/doc/man/erlang.html#hibernate-3</a></p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/hibernate.ex#L44" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="hibernate/4">
+    <strong>hibernate(conn, timeout, on_wake_up, on_timeout)</strong>
+  </p>
+  <div class="docstring"><p>Hibernates the current process until a message is received
+but also sets a timeout for hibernation time.</p>
+
+<p>The <code>on_wake_up</code> callback is invoked with the <code>conn</code> and the
+received message on wake up. A <code>on_timeout</code> callback is
+invoked when it times out.</p>
+
+<p>For more information on hibernation, check:
+<a href="http://www.erlang.org/doc/man/erlang.html#hibernate-3">http://www.erlang.org/doc/man/erlang.html#hibernate-3</a></p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/hibernate.ex#L62" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.HTTP.Redirect.html b/docs/dynamo/Dynamo.HTTP.Redirect.html
new file mode 100644
index 000000000..cd9ecf11d
--- /dev/null
+++ b/docs/dynamo/Dynamo.HTTP.Redirect.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.HTTP.Redirect</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.HTTP.Redirect
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Conveniences to redirect a connection.
+To use them, just import this module.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/redirect.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#redirect/2">redirect/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#redirect!/2">redirect!/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="redirect/2">
+    <strong>redirect(conn, opts)</strong>
+  </p>
+  <div class="docstring"><p>Redirects the connection to the given endpoint.</p>
+
+<h2>Options</h2>
+
+<ul>
+<li><code>to</code> - the path or url to redirect to</li>
+<li><code>status</code> - the status to redirect to, defaults to 302</li>
+<li><code>format</code> - the response format</li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>redirect conn, to: &quot;/&quot;
+redirect conn, to: &quot;/&quot;, format: :html
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/redirect.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="redirect!/2">
+    <strong>redirect!(conn, opts)</strong>
+  </p>
+  <div class="docstring"><p>A convenience that redirects and halts straight away.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/redirect.ex#L50" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.HTTP.Render.html b/docs/dynamo/Dynamo.HTTP.Render.html
new file mode 100644
index 000000000..3f7669ac0
--- /dev/null
+++ b/docs/dynamo/Dynamo.HTTP.Render.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.HTTP.Render</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.HTTP.Render
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Conveniences for template rendering.
+To use them, just import this module.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/render.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#render/3">render/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="render/3">
+    <strong>render(conn, template, assigns // [])</strong>
+  </p>
+  <div class="docstring"><p>Renders a template and assigns its contents to
+the connection response body and content type.
+If the connection is in streaming mode, the template
+is streamed after it is rendered as a whole chunk.</p>
+
+<p>Besides the connection and the template name,
+this function also receives extra assigns as
+arguments. Assigns are used by the application
+developer to pass information from the router
+to the template.</p>
+
+<p>It raises <code>Dynamo.TemplateNotFound</code> if the given
+template can&#39;t be found.</p>
+
+<h2>Examples</h2>
+
+<pre><code># Renders the template usually at app/templates/hello.html
+render conn, &quot;hello.html&quot;
+
+# Assign to data (accessible as @data in the template)
+conn = conn.assign(:data, &quot;Sample&quot;)
+render conn, &quot;hello.html&quot;
+
+# Same as before, but does not assign to the connection
+render conn, &quot;hello.html&quot;, data: &quot;Sample&quot;
+</code></pre>
+
+<h2>Layouts</h2>
+
+<p>Rendering also supports layouts. The layout name should
+be given as an assign. After the template is found, a layout
+with the same format will be looked up and rendered if
+available.</p>
+
+<p>It is common to set a layout that is used throughout the
+dynamo in your <code>ApplicationRouter</code> and it will be carried
+out to all other routers:</p>
+
+<pre><code>prepare do
+  conn.assign :layout, &quot;application&quot;
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/render.ex#L50" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.HTTP.Session.html b/docs/dynamo/Dynamo.HTTP.Session.html
new file mode 100644
index 000000000..061edc99a
--- /dev/null
+++ b/docs/dynamo/Dynamo.HTTP.Session.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.HTTP.Session</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.HTTP.Session
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/session.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#configure_session/3">configure_session/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_session/1">get_session/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_session/2">get_session/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_session/3">put_session/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="configure_session/3">
+    <strong>configure_session(conn, key, value)</strong>
+  </p>
+  <div class="docstring"><p>Configure the session.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/session.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_session/1">
+    <strong>get_session(conn)</strong>
+  </p>
+  <div class="docstring"><p>Gets the whole session.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/session.ex#L13" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_session/2">
+    <strong>get_session(conn, key)</strong>
+  </p>
+  <div class="docstring"><p>Returns the session for the given key.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/session.ex#L20" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_session/3">
+    <strong>put_session(conn, key, value)</strong>
+  </p>
+  <div class="docstring"><p>Puts the session for the given key.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http/session.ex#L30" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.HTTP.html b/docs/dynamo/Dynamo.HTTP.html
new file mode 100644
index 000000000..b3b629993
--- /dev/null
+++ b/docs/dynamo/Dynamo.HTTP.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.HTTP</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.HTTP
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module is a namespace to many conveniences
+that allow developers to manipulate cookies and
+session, redirect, render templates and others.</p>
+
+<p>By using this module, all those dependencies are
+imported into the current module. It is guaranteed
+that using this module will not define any function
+in the target module, which makes it convenient to
+define helper functions and others.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/http.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Helpers.ContentFor.html b/docs/dynamo/Dynamo.Helpers.ContentFor.html
new file mode 100644
index 000000000..c5cfa027a
--- /dev/null
+++ b/docs/dynamo/Dynamo.Helpers.ContentFor.html
@@ -0,0 +1,197 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Helpers.ContentFor</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Helpers.ContentFor
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module exposes macros that allows a child
+template to assign data which will eventually
+be read and use by the parent.</p>
+
+<h2>Examples</h2>
+
+<p>Imagine the following layout:</p>
+
+<pre><code>&lt;html&gt;
+&lt;head&gt;
+  &lt;title&gt;
+    &lt;%= content_for(:title) %&gt;
+  &lt;/title&gt;
+&lt;/head&gt;
+&lt;body&gt;
+  &lt;%= content_for(:template) %&gt;
+  &lt;%= content_for(:footer) || &quot;Default footer&quot; %&gt;
+&lt;/body&gt;
+&lt;/html&gt;
+</code></pre>
+
+<p>And the following template:</p>
+
+<pre><code>&lt;% content_for :title do %&gt;
+  Title from template
+&lt;% end %&gt;
+
+Template body.
+This is returned by content_for :template.
+
+&lt;% content_for :footer, &quot;Template footer&quot; %&gt;
+</code></pre>
+
+<p>Whenever this template and layout pair are used,
+the template is first rendered, collecting the
+<code>content_for</code> chunks used and then finally assigning
+the whole template to a <code>:template</code> chunk. The layout
+can later retrieve any chunk by calling <code>content_for(key)</code>.</p>
+
+<h2>Implementation details</h2>
+
+<p>Whenever <code>content_for</code> is called, the contents are stored
+in <code>conn</code>, which is then reassigned. The connection is
+passed transparently to <code>content_for</code> via a macro. The
+decision to make this transparent is because different
+templates implementations may use other mechanisms to pass
+the data around, which does not require mangling with the
+connection.</p>
+
+<p>Manual interaction with the connection can be done via
+<code>append_content</code> and <code>get_content</code> functions.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/helpers/content_for.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#append_content/3">append_content/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_content/2">get_content/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_content/3">put_content/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2>Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#content_for/1">content_for/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#content_for/2">content_for/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="append_content/3">
+    <strong>append_content(conn, key, value)</strong>
+  </p>
+  <div class="docstring"><p>Appends a content chunk to the connection.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/helpers/content_for.ex#L86" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_content/2">
+    <strong>get_content(conn, key)</strong>
+  </p>
+  <div class="docstring"><p>Gets a content chunk from the connection.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/helpers/content_for.ex#L102" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_content/3">
+    <strong>put_content(conn, key, value)</strong>
+  </p>
+  <div class="docstring"><p>Puts a content chunk to the connection replacing previous entries.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/helpers/content_for.ex#L94" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="content_for/1">
+    <strong>content_for(key)</strong>
+  </p>
+  <div class="docstring"><p>Gets the content for the given key. If the stored value
+is a function, it is automatically invoked, otherwise
+returns the raw value.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/helpers/content_for.ex#L77" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="content_for/2">
+    <strong>content_for(key, value)</strong>
+  </p>
+  <div class="docstring"><p>Stores the given <code>value</code> under the given <code>key</code>. This value
+can later be retrieved by calling <code>content_for(key)</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/helpers/content_for.ex#L60" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Helpers.Escaping.html b/docs/dynamo/Dynamo.Helpers.Escaping.html
new file mode 100644
index 000000000..6850c1e13
--- /dev/null
+++ b/docs/dynamo/Dynamo.Helpers.Escaping.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Helpers.Escaping</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Helpers.Escaping
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Conveniences for escaping html and
+other common outputs in views.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/helpers/escaping.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#h/1">h/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="h/1">
+    <strong>h(binary)</strong>
+  </p>
+  <div class="docstring"><p>Escapes HTML.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/helpers/escaping.ex#L10" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Helpers.Rendering.html b/docs/dynamo/Dynamo.Helpers.Rendering.html
new file mode 100644
index 000000000..1f11cb24f
--- /dev/null
+++ b/docs/dynamo/Dynamo.Helpers.Rendering.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Helpers.Rendering</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Helpers.Rendering
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Conveniences for rendering a template from
+inside another template.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/helpers/render.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#render/3">render/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2>Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#render/2">render/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="render/3">
+    <strong>render(conn, template, assigns)</strong>
+  </p>
+  <div class="docstring"><p>Renders a template by passing a connection.
+It should be used whenever there is a need
+to render a template inside a helper.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/helpers/render.ex#L28" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="render/2">
+    <strong>render(template, assigns // [])</strong>
+  </p>
+  <div class="docstring"><p>Renders a template and returns the rendered
+template as a binary.</p>
+
+<h2>Examples</h2>
+
+<pre><code>&lt;%= render &quot;sidebar.html&quot;, header: &quot;Hello&quot; %&gt;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/helpers/render.ex#L16" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Helpers.html b/docs/dynamo/Dynamo.Helpers.html
new file mode 100644
index 000000000..364475030
--- /dev/null
+++ b/docs/dynamo/Dynamo.Helpers.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Helpers</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Helpers
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A simple module that aggregates all common templates
+functionality in Dynamo.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/helpers.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Loader.html b/docs/dynamo/Dynamo.Loader.html
new file mode 100644
index 000000000..882c4be74
--- /dev/null
+++ b/docs/dynamo/Dynamo.Loader.html
@@ -0,0 +1,229 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Loader</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Loader
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module is responsible for managing code reloading used
+in development environments in Dynamo.</p>
+
+<p>The reloader is enabled per Elixir process, so each process
+which requires reloading semantics must explicitly enabled
+it with <code>Dynamo.Loader.enable</code>.</p>
+
+<p>The <code>Dynamo.Loader</code> is part of the Dynamo application
+and one is started per node, regardless the number of
+dynamos in the node.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/loader.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#append_paths/1">append_paths/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#code_change/3">code_change/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#conditional_purge/0">conditional_purge/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#enable/0">enable/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#handle_call/3">handle_call/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#handle_cast/2">handle_cast/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#handle_info/2">handle_info/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#init/1">init/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#load_missing/1">load_missing/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#on_purge/1">on_purge/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#terminate/2">terminate/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="append_paths/1">
+    <strong>append_paths(paths)</strong>
+  </p>
+  <div class="docstring"><p>Starts the <code>Dynamo.Loader</code> server. Usually called
+internally by Dynamo. The given <code>paths</code> must be expanded.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/loader.ex#L36" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="code_change/3">
+    <strong>code_change(_old, state, _extra)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/loader.ex#L111" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="conditional_purge/0">
+    <strong>conditional_purge()</strong>
+  </p>
+  <div class="docstring"><p>Checks if any of the <code>.ex</code> files in the registered paths
+were updated and if so, purges all automatically compiled
+and loaded modules, and &quot;unrequire&quot; the relevant files.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/loader.ex#L92" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="enable/0">
+    <strong>enable()</strong>
+  </p>
+  <div class="docstring"><p>Enables the reloader in the given process and returns
+<code>:ok</code>. In case the reloader server is disabled, it works
+as noop and returns <code>:error</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/loader.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="handle_call/3">
+    <strong>handle_call(arg1, _from, state)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/loader.ex#L95" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="handle_cast/2">
+    <strong>handle_cast(arg1, state)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/loader.ex#L103" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="handle_info/2">
+    <strong>handle_info(_msg, state)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/loader.ex#L99" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="init/1">
+    <strong>init(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/loader.ex#L91" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="load_missing/1">
+    <strong>load_missing(module)</strong>
+  </p>
+  <div class="docstring"><p>Tries to load the missing module. It returns <code>:ok</code> if a file
+for the given module could be found and <code>:error</code> otherwise.
+Note it does not actually ensure the module was loaded (only
+that the related file was required).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/loader.ex#L58" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="on_purge/1">
+    <strong>on_purge(fun)</strong>
+  </p>
+  <div class="docstring"><p>Register a callback that is invoked every time modules are purged.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/loader.ex#L48" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="terminate/2">
+    <strong>terminate(reason, state)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/loader.ex#L107" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.NotFoundError.html b/docs/dynamo/Dynamo.NotFoundError.html
new file mode 100644
index 000000000..4668c58a5
--- /dev/null
+++ b/docs/dynamo/Dynamo.NotFoundError.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.NotFoundError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.NotFoundError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/exceptions.ex#L27" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>conn:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "no route found"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Router.Base.html b/docs/dynamo/Dynamo.Router.Base.html
new file mode 100644
index 000000000..a1754b7c9
--- /dev/null
+++ b/docs/dynamo/Dynamo.Router.Base.html
@@ -0,0 +1,374 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Router.Base</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Router.Base
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module contains the basic structure for a <code>Dynamo.Router</code>.</p>
+
+<p>It provides a set of macros to generate routes as well as
+preparing and finalizing requests. For example:</p>
+
+<pre><code>defmodule HomeRouter do
+  use Dynamo.Router
+
+  prepare do
+    conn.assign :layout, &quot;hello.html&quot;
+  end
+
+  get &quot;/hello&quot; do
+    conn.resp 200, &quot;world&quot;
+  end
+
+  forward &quot;/posts&quot;, to: PostsRouter
+end
+</code></pre>
+
+<h2>Routes</h2>
+
+<pre><code>get &quot;/hello&quot; do
+  conn.resp 200, &quot;world&quot;
+end
+</code></pre>
+
+<p>In the example above, a request will only match if it is
+a <code>GET</code> request and the route &quot;/hello&quot;. The supported
+verbs are <code>get</code>, <code>post</code>, <code>put</code> and <code>delete</code>.</p>
+
+<p>A route can also specify parameters which will then be
+available in the function body:</p>
+
+<pre><code>get &quot;/hello/:name&quot; do
+  conn.resp 200, &quot;hello #{name}&quot;
+end
+</code></pre>
+
+<p>Finally, a general <code>match</code> function is also supported:</p>
+
+<pre><code>match &quot;/hello&quot; do
+  conn.resp 200, &quot;world&quot;
+end
+</code></pre>
+
+<p>A <code>match</code> will match any route regardless of the HTTP verb.
+Check <code>match/3</code> for more information on how routes compilation
+work and a list of supported options.</p>
+
+<h2>Forwarding</h2>
+
+<p>A Dynamo router can also forward a specific route to any other
+router, allowing a developer to scope its application instead of
+having a big monolitic routes handler:</p>
+
+<pre><code>defmodule ApplicationRouter do
+  use Dynamo.Router
+  forward &quot;/home&quot;, to: HomeRouter
+end
+</code></pre>
+
+<p>Now any request starting with &quot;/home&quot; in <code>ApplicationRouter</code> router
+will be forwarded to <code>HomeRouter</code>, but without the &quot;/home&quot; prefix.</p>
+
+<p>Therefore a request to &quot;/home/hello&quot; is seen by the <code>HomeRouter</code>
+simply as &quot;/hello&quot;, matching the route we defined at the beginning
+of this section.</p>
+
+<p>Although in the example above we forwarded to another Dynamo router,
+we can forward to any module, as long as it exports the function
+<code>service/1</code>. This function receives the connection as argument and
+must return a (possibly updated) connection.</p>
+
+<h2>Hooks</h2>
+
+<p>This module alsi provides both <code>prepare/1</code> and <code>finalize/1</code> hooks to
+routers. Such hooks are useful to check conditions, fetch aspects
+or updating the connection:</p>
+
+<pre><code>prepare do
+  conn.assign :layout, &quot;hello.html&quot;
+end
+
+prepare :require_authentication
+
+defp check_authentication do
+  unless conn.session[:user_id] do
+    redirect! conn, to: &quot;/&quot;
+  end
+end
+</code></pre>
+
+<p>Such hooks can be defined in the following formats:</p>
+
+<ul>
+<li><p><code>:function_name</code> - the atom denotes the function name to be invoked
+in the current module;</p></li>
+<li><p><code>module_or_tuple</code> - a module or a tuple where <code>prepare/1</code> or <code>finalize/1</code>
+will be invoked passing the connection as argument;</p></li>
+<li><p><code>[do: block]</code> - a chunk of code to be executed as hook. The block
+has access to the connection as <code>conn</code>.</p></li>
+</ul>
+
+<p>Hooks receive the connection as argument and must return the updated
+connection (if any change happens).</p>
+
+<h2>Per-route hooks</h2>
+
+<p>Besides the hooks define above which runs right after any route match,
+per route hooks can be added using <code>@prepare</code> and <code>@finalize</code> attributes:</p>
+
+<pre><code>@prepare :require_authentication
+get &quot;/account/info&quot; do
+  # ...
+end
+</code></pre>
+
+<p>Annotations works similarly to <code>prepare</code> and <code>finalize</code> macros, except
+annotations do not support the <code>do</code> syntax.</p>
+
+<p>Finally, Dynamo also provides <code>@skip_prepare</code> and <code>@skip_finalize</code>
+attributes, which is useful for whitelisting some filters:</p>
+
+<pre><code># Require authentication for all routes
+prepare :require_authentication
+
+# Except the sign in route
+@skip_prepare :require_authentication
+get &quot;/sign_in&quot; do
+  # Sign in the user
+end
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router/base.ex#L8" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+        <h2>Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#delete/2">delete/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#finalize/1">finalize/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#forward/2">forward/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/2">get/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#match/3">match/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#post/2">post/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#prepare/1">prepare/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put/2">put/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="delete/2">
+    <strong>delete(path, contents)</strong>
+  </p>
+  <div class="docstring"><p>Dispatches to the path only if it is delete request.
+See <code>match/3</code> for more examples.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router/base.ex#L297" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="finalize/1">
+    <strong>finalize(spec)</strong>
+  </p>
+  <div class="docstring"><p>Defines an after hook that is executed after dispatch.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router/base.ex#L403" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="forward/2">
+    <strong>forward(expression, options)</strong>
+  </p>
+  <div class="docstring"><p>Forwards the given route to the specified module.</p>
+
+<h2>Examples</h2>
+
+<pre><code>forward &quot;/foo/bar&quot;, to: Posts
+</code></pre>
+
+<p>Now all the routes that start with <code>/foo/bar</code> will automatically
+be dispatched to <code>Posts</code> that needs to implement the service API.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router/base.ex#L252" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/2">
+    <strong>get(path, contents)</strong>
+  </p>
+  <div class="docstring"><p>Dispatches to the path only if it is get request.
+See <code>match/3</code> for more examples.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router/base.ex#L273" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="match/3">
+    <strong>match(expression, options, contents // [])</strong>
+  </p>
+  <div class="docstring"><p>Main API to define routes. It accepts an expression representing
+the path and many options allowing the match to be configured.</p>
+
+<h2>Examples</h2>
+
+<pre><code>match &quot;/foo/bar&quot;, via: :get do
+  conn.send 200, &quot;hello world&quot;
+end
+</code></pre>
+
+<h2>Options</h2>
+
+<p><code>match</code> accepts the following options:</p>
+
+<ul>
+<li><code>via:</code> matches the route against some specific verbs</li>
+<li><code>do:</code> contains the implementation to be invoked in case
+    the route matches</li>
+<li><code>to:</code> forward the request to another module that implements
+    the service/1 API</li>
+</ul>
+
+<h2>Routes compilation</h2>
+
+<p>All routes are compiled to a dispatch method that receives
+three arguments: the verb, the request path split on &quot;/&quot;
+and the connection. Consider this example:</p>
+
+<pre><code>match &quot;/foo/bar&quot;, via: :get do
+  conn.send 200, &quot;hello world&quot;
+end
+</code></pre>
+
+<p>It is compiled to:</p>
+
+<pre><code>def dispatch(&quot;GET&quot;, [&quot;foo&quot;, &quot;bar&quot;], conn) do
+  conn.send 200, &quot;hello world&quot;
+end
+</code></pre>
+
+<p>This opens up a few possibilities. First, guards can be given
+to match:</p>
+
+<pre><code>match &quot;/foo/:bar&quot; when size(bar) &lt;= 3, via: :get do
+  conn.send 200, &quot;hello world&quot;
+end
+</code></pre>
+
+<p>Second, a list of splitten paths (which is the compiled result)
+is also allowed:</p>
+
+<pre><code>match [&quot;foo&quot;, bar], via: :get do
+  conn.send 200, &quot;hello world&quot;
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router/base.ex#L238" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="post/2">
+    <strong>post(path, contents)</strong>
+  </p>
+  <div class="docstring"><p>Dispatches to the path only if it is post request.
+See <code>match/3</code> for more examples.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router/base.ex#L281" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="prepare/1">
+    <strong>prepare(spec)</strong>
+  </p>
+  <div class="docstring"><p>Defines a prepare hook that is executed before any route matches.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router/base.ex#L384" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put/2">
+    <strong>put(path, contents)</strong>
+  </p>
+  <div class="docstring"><p>Dispatches to the path only if it is put request.
+See <code>match/3</code> for more examples.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router/base.ex#L289" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Router.Filters.html b/docs/dynamo/Dynamo.Router.Filters.html
new file mode 100644
index 000000000..d1e99d979
--- /dev/null
+++ b/docs/dynamo/Dynamo.Router.Filters.html
@@ -0,0 +1,188 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Router.Filters</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Router.Filters
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module is responsible for providing filters to a router or Dynamo
+application. A filter is a module that is invoked before, during or
+after a service match.</p>
+
+<p>While hooks are executed only if a route match, filters are always
+executed. Hooks also abort in case a response is set, while filters
+do not halt their execution. In other words, filters are a more low-level
+mechanism, with less conveniences compared to hooks.</p>
+
+<p>There is also a difference regarding ordering. While filters are invoked
+in the order they are declared, regardless of their behaviour, hooks
+always execute <code>prepare</code> hooks first, followed by the <code>finalize</code> ones.</p>
+
+<h2>Usage</h2>
+
+<pre><code>defmodule MyApp do
+  use Dynamo.Router
+  filter Dynamo.Static.new(&quot;/public&quot;, :myapp)
+end
+</code></pre>
+
+<h2>Behaviours</h2>
+
+<p>A filter must implement one of the three functions:</p>
+
+<ul>
+<li><code>prepare/1</code>  - the filter will be executed before invoking service</li>
+<li><code>service/2</code>  - the filter will be executed with the service function as argument</li>
+<li><code>finalize/1</code> - the filter will be executed after invoking the service</li>
+</ul>
+
+<h2>Examples</h2>
+
+<p>A filter that adds a Chrome Frame header to the response:</p>
+
+<p>defmodule ChromeFrameFilter do
+    def prepare(conn) do
+      conn.put<em>resp</em>header(&quot;X-UA-Compatible&quot;, &quot;chrome=1&quot;)
+    end
+  end</p>
+
+<p>Notice the filter receives a <code>conn</code> as argument and must return an
+updated <code>conn</code>. A finalize filter works similarly.</p>
+
+<p>A service filter receives and must return a <code>conn</code>, but it also 
+receives a function which should be invoked in order to continue
+the request. Here is a filter that sets the content type to json
+and converts the response body to valid json:</p>
+
+<pre><code>defmodule JSONFilter do
+  def service(conn, fun) do
+    conn = conn.put_resp_header(&quot;Content-Type&quot;, &quot;application/json&quot;)
+    conn = fun.(conn)
+    conn.resp_body(to_json(conn.resp_body))
+  end
+
+  def to_json(data), do: ...
+end
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router/filters.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#match?/2">match?/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2>Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#delete_filter/1">delete_filter/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#filter/1">filter/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#prepend_filter/1">prepend_filter/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="match?/2">
+    <strong>match?(atom, filter)</strong>
+  </p>
+  <div class="docstring"><p>Matches a filter against the other</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router/filters.ex#L117" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="delete_filter/1">
+    <strong>delete_filter(atom)</strong>
+  </p>
+  <div class="docstring"><p>Deletes a filter from the filter chain.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router/filters.ex#L107" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="filter/1">
+    <strong>filter(spec)</strong>
+  </p>
+  <div class="docstring"><p>Adds a filter to the filter chain.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router/filters.ex#L89" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="prepend_filter/1">
+    <strong>prepend_filter(spec)</strong>
+  </p>
+  <div class="docstring"><p>Prepends a filter to the filter chain.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router/filters.ex#L98" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Router.InvalidHookError.html b/docs/dynamo/Dynamo.Router.InvalidHookError.html
new file mode 100644
index 000000000..d6f7fcd8a
--- /dev/null
+++ b/docs/dynamo/Dynamo.Router.InvalidHookError.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Router.InvalidHookError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Router.InvalidHookError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router/base.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>kind:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>hook:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>actual:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router/base.ex#L2" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Router.InvalidSpecError.html b/docs/dynamo/Dynamo.Router.InvalidSpecError.html
new file mode 100644
index 000000000..54f9b55ca
--- /dev/null
+++ b/docs/dynamo/Dynamo.Router.InvalidSpecError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Router.InvalidSpecError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Router.InvalidSpecError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router/utils.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "invalid route specification"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Router.html b/docs/dynamo/Dynamo.Router.html
new file mode 100644
index 000000000..c1184493f
--- /dev/null
+++ b/docs/dynamo/Dynamo.Router.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Router</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Router
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A Dynamo is made of many routers that redirect a connection
+between endpoints. Those endpoints are usually built with
+<code>Dynamo.Routes</code> which are responsible to brings routing
+semantics to your modules.</p>
+
+<p>Here is a minimal router:</p>
+
+<pre><code>defmodule HomeRouter do
+  use Dynamo.Router
+
+  get &quot;/hello&quot; do
+    conn.resp 200, &quot;world&quot;
+  end
+end
+</code></pre>
+
+<p>The functionality and documentation for routers is split into
+diverse modules. Keep reading below for more information.</p>
+
+<h2>Routes and hooks</h2>
+
+<p>A router is made by many routes which usually map to an HTTP
+verb like <code>get</code>, <code>post</code>, etc. Not only that, a router may easily
+forward requests to another router to handle a specific set of
+requests via the forward API:</p>
+
+<pre><code>defmodule ApplicationRouter do
+  use Dynamo.Router
+  forward &quot;/home&quot;, to: HomeRouter
+end
+</code></pre>
+
+<p>Hooks can be used to prepare and finalize requests after a given
+route match. For more information, check <code>Dynamo.Router.Base</code>
+documentation.</p>
+
+<h2>Filters</h2>
+
+<p>As a Dynamo, Routers also support filters. For more information about
+filters, check <code>Dynamo</code> and <code>Dynamo.Router.Filters</code> docs.</p>
+
+<h2>HTTP conveniences</h2>
+
+<p>Finally, a router imports by default many of the <code>Dynamo.HTTP</code>
+modules, as listed below:</p>
+
+<ul>
+<li><code>Dynamo.HTTP.Cookies</code> - conveniences for working with cookies</li>
+<li><code>Dynamo.HTTP.Halt</code> - conveniences for halting a request</li>
+<li><code>Dynamo.HTTP.Hibernate</code> - conveniences for awaiting and hibernating a connection</li>
+<li><code>Dynamo.HTTP.Redirect</code> - conveniences for redirect connection</li>
+<li><code>Dynamo.HTTP.Render</code> - conveniences for rendering templates</li>
+<li><code>Dynamo.HTTP.Session</code> - conveniences for working with session</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/router.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Supervisor.html b/docs/dynamo/Dynamo.Supervisor.html
new file mode 100644
index 000000000..6e34985fe
--- /dev/null
+++ b/docs/dynamo/Dynamo.Supervisor.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Supervisor</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Supervisor
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Dynamo&#39;s base supervisor. Each application starts its
+own copy of the <code>Dynamo.Supervisor</code> and attach children
+to it throught the boot process.</p>
+
+<p>The local name, <code>:max_restarts</code> and <code>:max_seconds</code> can
+be configured on <code>start_link</code>.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/supervisor.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#start_child/4">start_child/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#start_link/2">start_link/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="start_child/4">
+    <strong>start_child(supervisor, name, args, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Add a child to the given supervisor.
+It accepts the same options as <code>Supervisor.Behaviour.worker/3</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>Dynamo.Supervisor.start_child MyDynamo.supervisor, Worker, []
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/supervisor.ex#L30" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="start_link/2">
+    <strong>start_link(name, opts)</strong>
+  </p>
+  <div class="docstring"><p>Starts the supervisor. It is automatically started
+when the Dynamo is started.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/supervisor.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Template.html b/docs/dynamo/Dynamo.Template.html
new file mode 100644
index 000000000..45c4d8059
--- /dev/null
+++ b/docs/dynamo/Dynamo.Template.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Template</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Template
+        
+          <small>record</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>The template record is responsible to keep information about
+templates to be rendered. It contains:</p>
+
+<ul>
+<li><code>:key</code> - The key used to find the template;</li>
+<li><code>:identifier</code> - An unique identifier for the template, like its
+filesystem path. This information may be used later by the finder
+to retrieve the template source</li>
+<li><code>:format</code> - The template format</li>
+<li><code>:finder</code> - The finder that found the template</li>
+<li><code>:handler</code> - The handler responsible for compiling the template</li>
+<li><code>:updated_at</code> - The last time the template was updated</li>
+<li><code>:extra</code> - Used by the finder to put extra information about the template</li>
+</ul>
+
+<p>Besides, the followig fields are private to Dynamo:</p>
+
+<ul>
+<li><code>:ref</code> - A reference for already compiled templates</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>key:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>identifier:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>format:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>handler:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>updated_at:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>extra:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>ref:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>finder:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.TemplateNotFound.html b/docs/dynamo/Dynamo.TemplateNotFound.html
new file mode 100644
index 000000000..2f2ab8f2a
--- /dev/null
+++ b/docs/dynamo/Dynamo.TemplateNotFound.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.TemplateNotFound</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.TemplateNotFound
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates.ex#L23" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>query:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>paths:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates.ex#L24" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Templates.Finder.Atom.html b/docs/dynamo/Dynamo.Templates.Finder.Atom.html
new file mode 100644
index 000000000..a899c8061
--- /dev/null
+++ b/docs/dynamo/Dynamo.Templates.Finder.Atom.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Templates.Finder.Atom</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Templates.Finder.Atom
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/finder.ex#L82" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#all/1">all/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#find/2">find/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#precompiled?/1">precompiled?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#source/2">source/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="all/1">
+    <strong>all(atom)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/finder.ex#L84" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="find/2">
+    <strong>find(atom, key)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/finder.ex#L85" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="precompiled?/1">
+    <strong>precompiled?(atom)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/finder.ex#L83" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="source/2">
+    <strong>source(atom, key)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/finder.ex#L86" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Templates.Finder.BitString.html b/docs/dynamo/Dynamo.Templates.Finder.BitString.html
new file mode 100644
index 000000000..4a4d6b8a2
--- /dev/null
+++ b/docs/dynamo/Dynamo.Templates.Finder.BitString.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Templates.Finder.BitString</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Templates.Finder.BitString
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/finder.ex#L40" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#all/1">all/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#find/2">find/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#precompiled?/1">precompiled?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#source/2">source/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="all/1">
+    <strong>all(root)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/finder.ex#L45" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="find/2">
+    <strong>find(root, key)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/finder.ex#L52" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="precompiled?/1">
+    <strong>precompiled?(_)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/finder.ex#L41" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="source/2">
+    <strong>source(_root, arg2)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/finder.ex#L58" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Templates.Finder.html b/docs/dynamo/Dynamo.Templates.Finder.html
new file mode 100644
index 000000000..fc9cad3f7
--- /dev/null
+++ b/docs/dynamo/Dynamo.Templates.Finder.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Templates.Finder</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Templates.Finder
+        
+          <small>protocol</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Defines the protocol required for finding templates.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/finder.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+        <h2>Implementations</h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Dynamo.Templates.Finder.Atom.html">Atom</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Dynamo.Templates.Finder.BitString.html">BitString</a>
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#all/1">all/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#find/2">find/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#precompiled?/1">precompiled?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#source/2">source/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="all/1">
+    <strong>all(finder)</strong>
+  </p>
+  <div class="docstring"><p>Returns all templates available in this finder.
+This is used for precompilation of templates.
+Must return nil if this finder already holds
+precompiled templates (i.e. <code>precompiled?</code> is true).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/finder.ex#L31" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="find/2">
+    <strong>find(finder, query)</strong>
+  </p>
+  <div class="docstring"><p>Attempts to find a template given by <code>query</code> in the
+current finder.</p>
+
+<p>Returns a <code>Dynamo.Template</code> or nil in case a template
+can&#39;t be found.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/finder.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="precompiled?/1">
+    <strong>precompiled?(finder)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if templates are already precompiled.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/finder.ex#L12" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="source/2">
+    <strong>source(finder, template)</strong>
+  </p>
+  <div class="docstring"><p>Returns the given template source.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/finder.ex#L37" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Templates.Handler.html b/docs/dynamo/Dynamo.Templates.Handler.html
new file mode 100644
index 000000000..8b067e621
--- /dev/null
+++ b/docs/dynamo/Dynamo.Templates.Handler.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Templates.Handler</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Templates.Handler
+        
+          <small>behaviour</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A module that specifies the handler API and
+small conveniences around it.</p>
+
+<p>A template handler is a module that is capable
+to compile Dynamo templates into executable elixir
+code.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/handler.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#get!/1">get!/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <h2>Callbacks summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#render/4">render/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compile/3">compile/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="get!/1">
+    <strong>get!(extension)</strong>
+  </p>
+  <div class="docstring"><p>Get the template handler for the given extension.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/handler.ex#L40" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+        <div id="callbacks_details" class="details_list">
+          <h2>Callbacks</h2>
+          <div class="detail">
+  <p class="signature" id="render/4">
+    <strong>render(module(), function :: atom(), locals(), assigns())</strong>
+  </p>
+  <div class="docstring"><p>Receives a module and function in which the compiled
+template is stored plus the locals and assigns
+to be used on dispatch.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/handler.ex#L35" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compile/3">
+    <strong>compile(template(), source :: binary(), locals :: list())</strong>
+  </p>
+  <div class="docstring"><p>A template handler must simply implement
+compile, receiving a Dynamo.Template
+record. It must return the arguments and
+a source, which will then be compiled to
+a function.</p>
+
+<p>A template handler must be necessarily
+named as Dynamo.Templates.EXTHandler where
+EXT is the handler extension.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/templates/handler.ex#L28" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Utils.MessageVerifier.html b/docs/dynamo/Dynamo.Utils.MessageVerifier.html
new file mode 100644
index 000000000..2c20227bf
--- /dev/null
+++ b/docs/dynamo/Dynamo.Utils.MessageVerifier.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Utils.MessageVerifier</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Utils.MessageVerifier
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p><code>MessageVerifier</code> makes it easy to generate and verify messages
+which are signed to prevent tampering.</p>
+
+<p>For example, the session store uses this verifier to send data
+to the client. Although the data can be read by the client, he
+cannot tamper it.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/utils/message_verifier.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#generate/2">generate/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#secure_compare/2">secure_compare/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#verify/2">verify/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="generate/2">
+    <strong>generate(secret, term)</strong>
+  </p>
+  <div class="docstring"><p>Generates an encoded and signed binary for the given term.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/utils/message_verifier.ex#L30" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="secure_compare/2">
+    <strong>secure_compare(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Comapres the two binaries completely, byte by byte,
+to avoid timing attacks.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/utils/message_verifier.ex#L44" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="verify/2">
+    <strong>verify(secret, encoded)</strong>
+  </p>
+  <div class="docstring"><p>Decodes and verifies the encoded binary was not tampared with.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/utils/message_verifier.ex#L14" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.Utils.Once.html b/docs/dynamo/Dynamo.Utils.Once.html
new file mode 100644
index 000000000..b9301aff8
--- /dev/null
+++ b/docs/dynamo/Dynamo.Utils.Once.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo.Utils.Once</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo.Utils.Once
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A convenience that allows a module to be used
+just once via <code>use_once</code>.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/utils/once.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+        <h2>Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#use_once/1">use_once/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="use_once/1">
+    <strong>use_once(module)</strong>
+  </p>
+  <div class="docstring"><p>Uses the given module in the current target
+just once.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo/utils/once.ex#L19" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Dynamo.html b/docs/dynamo/Dynamo.html
new file mode 100644
index 000000000..d09872552
--- /dev/null
+++ b/docs/dynamo/Dynamo.html
@@ -0,0 +1,201 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dynamo</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dynamo
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module allows developers to configure the Dynamo
+framework and define Dynamos.</p>
+
+<p>A Dynamo is nothing more than a module with a <code>start</code>
+and <code>run</code> functions and can be easily defined as follow:</p>
+
+<pre><code>defmodule MyDynamo do
+  use Dynamo
+  endpoint SomeRouter
+end
+</code></pre>
+
+<p>A Dynamo can be used on top of a <code>Dynamo.Router</code> in case
+you want to extend a single router to a single file Dynamo.</p>
+
+<h2>Configuration</h2>
+
+<p>A Dynamo comes with a configuration API that allows a
+developer to customize how dynamo works and custom
+extensions.</p>
+
+<p>For example, here is a snippet that configures Dynamo
+to serve public assets from the :myapp application
+everytime we have a request at <code>/static</code>:</p>
+
+<pre><code>config :dynamo,
+  env: &quot;prod&quot;,
+  endpoint: ApplicationRouter,
+  static_root:  :myapp,
+  static_route: &quot;/static&quot;
+</code></pre>
+
+<p>The available <code>:dynamo</code> configurations are:</p>
+
+<ul>
+<li><code>:compile_on_demand</code> - Compiles modules as they are needed</li>
+<li><code>:env</code> - The environment this Dynamo runs on</li>
+<li><code>:endpoint</code> - The endpoint to dispatch requests too</li>
+<li><code>:exceptions_editor</code> - Some exception handlers show editors information
+to help debugging (defaults to the DYNAMO_EDITOR environment variable)</li>
+<li><code>:exceptions_handler</code> - How to handle and display exceptions (defaults to <code>Exceptions.Public</code>)</li>
+<li><code>:reload_modules</code> - Reload modules after they are changed</li>
+<li><code>:session_store</code> - The session store to be used, may be <code>CookieStore</code> and <code>ETSStore</code></li>
+<li><code>:session_options</code> - The session options to be used</li>
+<li><code>:source_paths</code> - The paths to search when compiling modules on demand</li>
+<li><code>:static_route</code> - The route to serve static assets</li>
+<li><code>:static_root</code> - The location static assets are defined</li>
+<li><code>:supervisor</code> - The supervisor local node name</li>
+<li><code>:templates_paths</code> - The paths to find templates</li>
+</ul>
+
+<p>Check <code>Dynamo.Base</code> for more information on <code>config</code> and
+other initialize configuration.</p>
+
+<h2>Filters</h2>
+
+<p>A Dynamo also contains a set of filters that are meant
+to be used throughout your whole application. Some of these
+filters are added based on the configuration options above.
+The filters included by default and when they are included are:</p>
+
+<ul>
+<li><code>Dynamo.Filters.Static</code> - when a static<em>route and static</em>root are set,
+this filter is added to serve static assets;</li>
+<li><code>Dynamo.Filters.Head</code> - converts HEAD requests to GET;</li>
+<li><code>Dynamo.Filters.Loader</code> - when <code>:compile_on_demand</code> or <code>:reload_modules</code>
+configs are set to true, this filter is added to compiled and reloaded
+code on demand;</li>
+<li><code>Dynamo.Filters.Session</code> - when a <code>:session_store</code> is configured, it adds
+session functionality to the Dynamo;</li>
+<li><code>Dynamo.Filters.Exceptions</code> - responsible for logging and handling exceptions;</li>
+</ul>
+
+<p>Filters can be added and removed using <code>filter</code> and <code>remove_filter</code>
+macros. You can get the list of all dynamos filters using:
+<code>mix dynamo.filters</code>.</p>
+
+<p>For more information, check <code>Dynamo.Router.Filters</code> docs.</p>
+
+<h2>Initialization</h2>
+
+<p>A Dynamo allows you to register initializers which are
+invoked when the dynamo starts. A Dynamo is initialized
+in three steps:</p>
+
+<ul>
+<li>The <code>:dynamo</code> application needs to be started</li>
+<li>All dynamos needs to be loaded via <code>DYNAMO.start_link</code></li>
+<li>A dynamo is hooked into a web server via <code>DYNAMO.run</code></li>
+</ul>
+
+<p>The step 2 can be extended via initializers. For example:</p>
+
+<pre><code>defmodule MyDynamo do
+  use Dynamo
+
+  initializer :some_config do
+    # Connect to the database
+  end
+end
+</code></pre>
+
+<p>By default, the application ships with some initializers:</p>
+
+<ul>
+<li><p><code>:start_dynamo_reloader</code> - starts the code reloader, usually
+used in development and test</p></li>
+<li><p><code>:start_dynamo_renderer</code> - starts dynamo renderer if there
+are templates to be compiled on demand</p></li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#under_test/0">under_test/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#under_test/1">under_test/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="under_test/0">
+    <strong>under_test()</strong>
+  </p>
+  <div class="docstring"><p>Gets the Dynamo used by default under test.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo.ex#L109" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="under_test/1">
+    <strong>under_test(mod)</strong>
+  </p>
+  <div class="docstring"><p>Sets the Dynamo to be used under test.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/dynamo.ex#L117" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Enum.Iterator.Binary.Dict.html b/docs/dynamo/Enum.Iterator.Binary.Dict.html
new file mode 100644
index 000000000..cc88283f1
--- /dev/null
+++ b/docs/dynamo/Enum.Iterator.Binary.Dict.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Enum.Iterator.Binary.Dict</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Enum.Iterator.Binary.Dict
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/binary/dict.ex#L146" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#count/1">count/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#iterator/1">iterator/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="count/1">
+    <strong>count(arg1)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/binary/dict.ex#L148" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="iterator/1">
+    <strong>iterator(arg1)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/binary/dict.ex#L147" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Mix.Tasks.Compile.Dynamo.html b/docs/dynamo/Mix.Tasks.Compile.Dynamo.html
new file mode 100644
index 000000000..5ec40f183
--- /dev/null
+++ b/docs/dynamo/Mix.Tasks.Compile.Dynamo.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Compile.Dynamo</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Compile.Dynamo
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A task to compile Dynamo source files.</p>
+
+<p>This task will compile all dynamos registered in
+your Mix project under the <code>dynamos</code> configuration.
+If the current dynamo is set to <code>:compile_on_demand</code>
+compilation is actually skipped.</p>
+
+<h2>Configuration</h2>
+
+<ul>
+<li><p><code>:dynamos</code> - the dynamos registered in this project:</p>
+
+<p>[dynamos: Foo, Bar]</p></li>
+</ul>
+
+<p>This task also uses <code>:compile_path</code> and <code>:elixirc_options</code>
+options shared with other compilation tasks.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--force</code> - forces compilation regardless of mod times;</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/mix/tasks/compile.dynamo.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/mix/tasks/compile.dynamo.ex#L29" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Mix.Tasks.Dynamo.Filters.html b/docs/dynamo/Mix.Tasks.Dynamo.Filters.html
new file mode 100644
index 000000000..9d2ef260f
--- /dev/null
+++ b/docs/dynamo/Mix.Tasks.Dynamo.Filters.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Dynamo.Filters</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Dynamo.Filters
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Prints all dynamos filters</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/mix/tasks/dynamo.filters.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/mix/tasks/dynamo.filters.ex#L9" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Mix.Tasks.Dynamo.html b/docs/dynamo/Mix.Tasks.Dynamo.html
new file mode 100644
index 000000000..d7578d9ca
--- /dev/null
+++ b/docs/dynamo/Mix.Tasks.Dynamo.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Dynamo</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Dynamo
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Creates a new Dynamo project.
+It expects the path of the project as argument.</p>
+
+<pre><code>mix dynamo [-v] PATH [--app APP] [--module MODULE]
+</code></pre>
+
+<p>A project at the given PATH  will be created. The
+application name and module name will be retrieved
+from the path, unless <code>-app</code> or <code>--module</code> is given.</p>
+
+<h2>Examples</h2>
+
+<pre><code>mix dynamo hello_world
+</code></pre>
+
+<p>Is equivalent to:</p>
+
+<pre><code>mix dynamo hello_world --app hello_world --module HelloWorld
+</code></pre>
+
+<p>Use -v to print mix version:</p>
+
+<pre><code>mix dynamo -v
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/mix/tasks/dynamo.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(argv)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/mix/tasks/dynamo.ex#L33" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/Mix.Tasks.Server.html b/docs/dynamo/Mix.Tasks.Server.html
new file mode 100644
index 000000000..356c48ce5
--- /dev/null
+++ b/docs/dynamo/Mix.Tasks.Server.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Server</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Server
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Runs all registered Dynamos in their servers.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/mix/tasks/server.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2>Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/dynamo/blob/master/lib/mix/tasks/server.ex#L9" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/css/full_list.css b/docs/dynamo/css/full_list.css
new file mode 100644
index 000000000..d504c4bed
--- /dev/null
+++ b/docs/dynamo/css/full_list.css
@@ -0,0 +1,57 @@
+body { 
+  margin: 0;
+  font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; 
+  font-size: 13px;
+  height: 101%;
+  overflow-x: hidden;
+}
+
+h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; }
+.clear { clear: both; }
+#search { position: absolute; right: 5px; top: 9px; padding-left: 24px; }
+#content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; }
+#full_list { padding: 0; list-style: none; margin-left: 0; }
+#full_list ul { padding: 0; }
+#full_list li { padding: 5px; padding-left: 12px; margin: 0; font-size: 1.1em; list-style: none; }
+#noresults { padding: 7px 12px; }
+#content.insearch #noresults { margin-left: 7px; }
+ul.collapsed ul, ul.collapsed li { display: none; }
+ul.collapsed.search_uncollapsed { display: block; }
+ul.collapsed.search_uncollapsed li { display: list-item; }
+li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; }
+li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; }
+li { color: #888; cursor: pointer; }
+li.deprecated { text-decoration: line-through; font-style: italic; }
+li.r1 { background: #f0f0f0; }
+li.r2 { background: #fafafa; }
+li:hover { background: #ddd; }
+li small:before { content: "("; }
+li small:after { content: ")"; }
+li small.search_info { display: none; }
+a:link, a:visited { text-decoration: none; color: #05a; }
+li.clicked { background: #05a; color: #ccc; }
+li.clicked a:link, li.clicked a:visited { color: #eee; }
+li.clicked a.toggle { opacity: 0.5; background-position: bottom right; }
+li.collapsed.clicked a.toggle { background-position: top right; }
+#nav { margin: 5px 0 10px 5px; font-size: 0.9em; display: none; color: #aaa; }
+#nav a:link, #nav a:visited { color: #358; }
+#nav a:hover { background: transparent; color: #5af; }
+#nav span { border-left: 1px solid #ccc; padding: 0 5px; display: block; float: left }
+#nav span:first-child { border-left: 0; border-radius: 3px; }
+#nav span.selected { text-decoration: underline; }
+
+.frames #content h1 { margin-top: 0; }
+.frames li { white-space: nowrap; cursor: normal; }
+.frames li small { display: block; font-size: 0.8em; }
+.frames li small:before { content: ""; }
+.frames li small:after { content: ""; }
+.frames li small.search_info { display: none; }
+.frames #search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; }
+.frames #content.insearch #search { background-position: center right; }
+.frames #search input { width: 110px; }
+.frames #nav { display: block; }
+
+#full_list.insearch li { display: none; }
+#full_list.insearch li.found { display: list-item; padding-left: 10px; }
+#full_list.insearch li a.toggle { display: none; }
+#full_list.insearch li small.search_info { display: block; }
diff --git a/docs/dynamo/css/style.css b/docs/dynamo/css/style.css
new file mode 100644
index 000000000..1a845c355
--- /dev/null
+++ b/docs/dynamo/css/style.css
@@ -0,0 +1,131 @@
+body {
+  padding: 0 20px;
+  font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
+  font-size: 13px;
+}
+
+body.frames { padding: 0 5px; }
+
+h1 { font-size: 25px; border-top: 0px; margin-top: 0; padding-top: 4px; }
+h1 small { color: #888; font-size: 18px }
+
+h2 {
+  padding: 0;
+  padding-bottom: 3px;
+  border-bottom: 1px #aaa solid;
+  font-size: 1.4em;
+  margin: 1.8em 0 0.5em;
+}
+
+.clear { clear: both; }
+
+li.r1 { background: #f0f0f0; }
+li.r2 { background: #fafafa; }
+
+div.docstring, p.docstring { margin-right: 6em; }
+.docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 0; }
+.docstring h1 { font-size: 1.2em; }
+.docstring h2 { font-size: 1.1em; }
+.docstring h3, .docstring h4 { font-size: 1em; padding-top: 10px; }
+.docstring pre {
+  padding: 0.5em;
+  border: #ffe0bb dotted 1px;
+  background: #fffde8;
+}
+
+p.signature {
+  font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace;
+  padding: 6px 10px; margin-top: 18px;
+  background: #e5e8ff; border: 1px solid #d8d8e5; -moz-border-radius: 3px; -webkit-border-radius: 3px;
+}
+
+a:link, a:visited { text-decoration: none; color: #05a; }
+a:hover { color: #27c; }
+
+.detail { border-top: 1px dotted #aaa; margin-top: 15px; padding-top: 0; }
+.detail:nth-child(2) { border: 0; }
+
+/* Summary */
+ul.summary {
+  list-style: none;
+  font-family: monospace;
+  font-size: 1em;
+  line-height: 1.5em;
+  margin: 0;
+  padding: 0;
+}
+ul.summary li { display: inline-block; margin: 0px 5px 0px 0px; line-height: 2.6em;}
+ul.summary a:link, ul.summary a:visited {
+  text-decoration: none; font-size: 1.1em;
+}
+ul.summary .summary_signature {
+  padding: 5px 7px; padding-right: 4px;
+  background: #eaeaff; border: 1px solid #dfdfe5;
+  -moz-border-radius: 3px; -webkit-border-radius: 3px;
+}
+ul.summary .summary_signature:hover { background: #eeeeff; cursor: pointer; }
+
+/* File contents */
+#filecontents li > p, .docstring li > p { margin: 0px; }
+#filecontents ul, .docstring ul { padding-left: 20px; }
+
+#filecontents dl, .docstring dl { border: 1px solid #ccc; }
+#filecontents dt, .docstring dt { background: #ddd; font-weight: bold; padding: 3px 5px; }
+#filecontents dd, .docstring dd { padding: 5px 0px; margin-left: 18px; }
+#filecontents dd > p, .docstring dd > p { margin: 0px; }
+#filecontents dl.box, dl.box {
+  border: 0;
+  width: 520px;
+  font-size: 1em;
+}
+#filecontents dl.box dt, dl.box dt {
+  float: left;
+  display: block;
+  width: 100px;
+  margin: 0;
+  text-align: right;
+  font-weight: bold;
+  background: transparent;
+  border: 1px solid #aaa;
+  border-width: 1px 0px 0px 1px;
+  padding: 6px 0;
+  padding-right: 10px;
+}
+#filecontents dl.box dd, dl.box dd {
+  float: left;
+  display: block;
+  width: 380px;
+  margin: 0;
+  padding: 6px 0;
+  padding-right: 20px;
+  border: 1px solid #aaa;
+  border-width: 1px 1px 0 0;
+}
+#filecontents dl.box .last, dl.box .last {
+  border-bottom: 1px solid #aaa;
+}
+#filecontents dl.box .r1, dl.box .r1 { background: #eee; }
+
+/* Footer */
+#footer { margin-top: 15px; border-top: 1px solid #ccc; text-align: center; padding: 7px 0; color: #999; }
+
+/* TOC */
+#toc {
+  padding: 20px; padding-right: 30px; border: 1px solid #ddd; float: right; background: #fff; margin-left: 20px; margin-bottom: 20px;
+  max-width: 300px;
+  -webkit-box-shadow: -2px 2px 6px #bbb;
+  -moz-box-shadow: -2px 2px 6px #bbb;
+  z-index: 5000;
+  position: relative;
+}
+#toc.nofloat { float: none; max-width: none; border: none; padding: 0; margin: 20px 0; -webkit-box-shadow: none; -moz-box-shadow: none; }
+#toc.nofloat.hidden { padding: 0; background: 0; margin-bottom: 5px; }
+#toc .title { margin: 0; }
+#toc ol { padding-left: 1.8em; }
+#toc li { font-size: 1.1em; line-height: 1.7em; }
+#toc > ol > li { font-size: 1.1em; font-weight: bold; }
+#toc ol > ol { font-size: 0.9em; }
+#toc ol ol > ol { padding-left: 2.3em; }
+#toc ol + li { margin-top: 0.3em; }
+#toc.hidden { padding: 10px; background: #f6f6f6; -webkit-box-shadow: none; -moz-box-shadow: none; }
+#filecontents h1 + #toc.nofloat { margin-top: 0; }
\ No newline at end of file
diff --git a/docs/dynamo/index.html b/docs/dynamo/index.html
new file mode 100644
index 000000000..94b36bf29
--- /dev/null
+++ b/docs/dynamo/index.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+	<title>Dynamo v0.1.0.dev Documentation</title>
+</head>
+<frameset cols="20%,*">
+  <frame name="list" src="modules_list.html" />
+  <frame name="main" src="Dynamo.html" />
+</frameset>
+</html>
\ No newline at end of file
diff --git a/docs/dynamo/js/app.js b/docs/dynamo/js/app.js
new file mode 100644
index 000000000..adfc739f7
--- /dev/null
+++ b/docs/dynamo/js/app.js
@@ -0,0 +1,61 @@
+function fixOutsideWorldLinks() {
+  $('a').each(function() {
+    if (window.location.host != this.host) this.target = '_parent';
+  });
+}
+
+function generateTOC() {
+  if ($('#filecontents').length === 0) return;
+  var _toc = $('<ol class="top"></ol>');
+  var show = false;
+  var toc = _toc;
+  var counter = 0;
+  var tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
+  var i;
+  if ($('#filecontents h1').length > 1) tags.unshift('h1');
+  for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; }
+  var lastTag = parseInt(tags[0][1], 10);
+  $(tags.join(', ')).each(function() {
+    if (this.id == "filecontents") return;
+    show = true;
+    var thisTag = parseInt(this.tagName[1], 10);
+    if (this.id.length === 0) {
+      var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_');
+      if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; }
+      this.id = proposedId;
+    }
+    if (thisTag > lastTag) { 
+      for (i = 0; i < thisTag - lastTag; i++) { 
+        var tmp = $('<ol/>'); toc.append(tmp); toc = tmp; 
+      } 
+    }
+    if (thisTag < lastTag) { 
+      for (i = 0; i < lastTag - thisTag; i++) toc = toc.parent(); 
+    }
+    toc.append('<li><a href="#' + this.id + '">' + $(this).text() + '</a></li>');
+    lastTag = thisTag;
+  });
+  if (!show) return;
+  html = '<div id="toc"><p class="title"><a class="hide_toc" href="#"><strong>Table of Contents</strong></a> <small>(<a href="#" class="float_toc">left</a>)</small></p></div>';
+  $('#content').prepend(html);
+  $('#toc').append(_toc);
+  $('#toc .hide_toc').toggle(function() { 
+    $('#toc .top').slideUp('fast');
+    $('#toc').toggleClass('hidden');
+    $('#toc .title small').toggle();
+  }, function() {
+    $('#toc .top').slideDown('fast');
+    $('#toc').toggleClass('hidden');
+    $('#toc .title small').toggle();
+  });
+  $('#toc .float_toc').toggle(function() { 
+    $(this).text('float');
+    $('#toc').toggleClass('nofloat');
+  }, function() {
+    $(this).text('left');
+    $('#toc').toggleClass('nofloat');
+  });
+}
+
+$(fixOutsideWorldLinks);
+$(generateTOC);
\ No newline at end of file
diff --git a/docs/dynamo/js/full_list.js b/docs/dynamo/js/full_list.js
new file mode 100644
index 000000000..2e4016283
--- /dev/null
+++ b/docs/dynamo/js/full_list.js
@@ -0,0 +1,167 @@
+var inSearch = null;
+var searchIndex = 0;
+var searchCache = [];
+var searchString = '';
+var regexSearchString = '';
+var caseSensitiveMatch = false;
+var ignoreKeyCodeMin = 8;
+var ignoreKeyCodeMax = 46;
+var commandKey = 91;
+
+RegExp.escape = function(text) {
+  return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
+}
+
+function fullListSearch() {
+  // generate cache
+  searchCache = [];
+  $('#full_list li').each(function() {
+    var link = $(this).find('.object_link a');
+    var fullName = link.attr('title').split(' ')[0];
+    searchCache.push({name:link.text(), fullName:fullName, node:$(this), link:link});
+  });
+  
+  $('#search input').keyup(function(evnt) {
+    if ((evnt.keyCode > ignoreKeyCodeMin && evnt.keyCode < ignoreKeyCodeMax)
+         || evnt.keyCode == commandKey)
+      return;
+    searchString = this.value;
+    caseSensitiveMatch = searchString.match(/[A-Z]/) != null;
+    regexSearchString = RegExp.escape(searchString);
+    if (searchString === "") {
+      clearTimeout(inSearch);
+      inSearch = null;
+      $('ul .search_uncollapsed').removeClass('search_uncollapsed');
+      $('#full_list, #content').removeClass('insearch');
+      $('#full_list li').removeClass('found').each(function() {
+        var link = $(this).find('.object_link a');
+        link.text(link.text()); 
+      });
+      if (clicked) {
+        clicked.parents('ul').each(function() {
+          $(this).removeClass('collapsed').prev().removeClass('collapsed');
+        });
+      }
+      highlight();
+    }
+    else {
+      if (inSearch) clearTimeout(inSearch);
+      searchIndex = 0;
+      lastRowClass = '';
+      $('#full_list, #content').addClass('insearch');
+      $('#noresults').text('');
+      searchItem();
+    }
+  });
+  
+  $('#search input').focus();
+  $('#full_list').after("<div id='noresults'></div>");
+}
+
+var lastRowClass = '';
+function searchItem() {
+  for (var i = 0; i < searchCache.length / 50; i++) {
+    var item = searchCache[searchIndex];
+    var searchName = (searchString.indexOf('.') != -1 ? item.fullName : item.name);
+    var matchString = regexSearchString;
+    var matchRegexp = new RegExp(matchString, caseSensitiveMatch ? "" : "i");
+    if (searchName.match(matchRegexp) == null) {
+      item.node.removeClass('found');
+    }
+    else {
+      item.node.css('padding-left', '10px').addClass('found');
+      item.node.parents().addClass('search_uncollapsed');
+      item.node.removeClass(lastRowClass).addClass(lastRowClass == 'r1' ? 'r2' : 'r1');
+      lastRowClass = item.node.hasClass('r1') ? 'r1' : 'r2';
+      item.link.html(item.name.replace(matchRegexp, "<strong>$&</strong>"));
+    }
+
+    if (searchCache.length === searchIndex + 1) {
+      searchDone();
+      return;
+    }
+    else {
+      searchIndex++;
+    }
+  }
+  inSearch = setTimeout('searchItem()', 0);
+}
+
+function searchDone() {
+  highlight(true);
+  if ($('#full_list li:visible').size() === 0) {
+    $('#noresults').text('No results were found.').hide().fadeIn();
+  }
+  else {
+    $('#noresults').text('');
+  }
+  $('#content').removeClass('insearch');
+  clearTimeout(inSearch);
+  inSearch = null;
+}
+
+clicked = null;
+function linkList() {
+  $('#full_list li, #full_list li a:last').click(function(evt) {
+    if ($(this).hasClass('toggle')) return true;
+    if (this.tagName.toLowerCase() == "li") {
+      var toggle = $(this).children('a.toggle');
+      if (toggle.size() > 0 && evt.pageX < toggle.offset().left) {
+        toggle.click();
+        return false;
+      }
+    }
+    if (clicked) clicked.removeClass('clicked');
+    var win = window.top.frames.main ? window.top.frames.main : window.parent;
+    if (this.tagName.toLowerCase() == "a") {
+      clicked = $(this).parent('li').addClass('clicked');
+      win.location = this.href;
+    }
+    else {
+      clicked = $(this).addClass('clicked');
+      win.location = $(this).find('a:last').attr('href');
+    }
+    return false;
+  });
+}
+
+function collapse() {
+  if (!$('#full_list').hasClass('class')) return;
+  $('#full_list.class a.toggle').click(function() { 
+    $(this).parent().toggleClass('collapsed').next().toggleClass('collapsed');
+    highlight();
+    return false; 
+  });
+  $('#full_list.class ul').each(function() {
+    $(this).addClass('collapsed').prev().addClass('collapsed');
+  });
+  // $('#full_list.class').children().removeClass('collapsed');
+  highlight();
+}
+
+function highlight(no_padding) {
+  var n = 1;
+  $('#full_list li:visible').each(function() {
+    var next = n == 1 ? 2 : 1;
+    $(this).removeClass("r" + next).addClass("r" + n);
+    if (!no_padding && $('#full_list').hasClass('class')) {
+      $(this).css('padding-left', (10 + $(this).parents('ul').size() * 15) + 'px');
+    }
+    n = next;
+  });
+}
+
+function escapeShortcut() {
+  $(document).keydown(function(evt) {
+    if (evt.which == 27) {
+      $('#search_frame', window.top.document).slideUp(100);
+      $('#search a', window.top.document).removeClass('active inactive');
+      $(window.top).focus();
+    }
+  });
+}
+
+$(escapeShortcut);
+$(fullListSearch);
+$(linkList);
+$(collapse);
diff --git a/docs/dynamo/js/jquery.js b/docs/dynamo/js/jquery.js
new file mode 100644
index 000000000..f78f96a12
--- /dev/null
+++ b/docs/dynamo/js/jquery.js
@@ -0,0 +1,16 @@
+/*!
+ * jQuery JavaScript Library v1.5.2
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Thu Mar 31 15:28:23 2011 -0400
+ */
+(function(a,b){function ci(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cf(a){if(!b_[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";b_[a]=c}return b_[a]}function ce(a,b){var c={};d.each(cd.concat.apply([],cd.slice(0,b)),function(){c[this]=a});return c}function b$(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bZ(){try{return new a.XMLHttpRequest}catch(b){}}function bY(){d(a).unload(function(){for(var a in bW)bW[a](0,1)})}function bS(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h==="string"&&(f[h.toLowerCase()]=a.converters[h]);l=k,k=e[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=f[m]||f["* "+k];if(!n){p=b;for(o in f){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=f[j[1]+" "+k];if(p){o=f[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&d.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bR(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bQ(a,b,c,e){if(d.isArray(b)&&b.length)d.each(b,function(b,f){c||bs.test(a)?e(a,f):bQ(a+"["+(typeof f==="object"||d.isArray(f)?b:"")+"]",f,c,e)});else if(c||b==null||typeof b!=="object")e(a,b);else if(d.isArray(b)||d.isEmptyObject(b))e(a,"");else for(var f in b)bQ(a+"["+f+"]",b[f],c,e)}function bP(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bJ,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bP(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bP(a,c,d,e,"*",g));return l}function bO(a){return function(b,c){typeof b!=="string"&&(c=b,b="*");if(d.isFunction(c)){var e=b.toLowerCase().split(bD),f=0,g=e.length,h,i,j;for(;f<g;f++)h=e[f],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bq(a,b,c){var e=b==="width"?bk:bl,f=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return f;d.each(e,function(){c||(f-=parseFloat(d.css(a,"padding"+this))||0),c==="margin"?f+=parseFloat(d.css(a,"margin"+this))||0:f-=parseFloat(d.css(a,"border"+this+"Width"))||0});return f}function bc(a,b){b.src?d.ajax({url:b.src,async:!1,dataType:"script"}):d.globalEval(b.text||b.textContent||b.innerHTML||""),b.parentNode&&b.parentNode.removeChild(b)}function bb(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function ba(a,b){if(b.nodeType===1){var c=b.nodeName.toLowerCase();b.clearAttributes(),b.mergeAttributes(a);if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(d.expando)}}function _(a,b){if(b.nodeType===1&&d.hasData(a)){var c=d.expando,e=d.data(a),f=d.data(b,e);if(e=e[c]){var g=e.events;f=f[c]=d.extend({},e);if(g){delete f.handle,f.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)d.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function $(a,b){return d.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Q(a,b,c){if(d.isFunction(b))return d.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return d.grep(a,function(a,d){return a===b===c});if(typeof b==="string"){var e=d.grep(a,function(a){return a.nodeType===1});if(L.test(b))return d.filter(b,e,!c);b=d.filter(b,e)}return d.grep(a,function(a,e){return d.inArray(a,b)>=0===c})}function P(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function H(a,b){return(a&&a!=="*"?a+".":"")+b.replace(t,"`").replace(u,"&")}function G(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,p=[],q=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;i<t.length;i++)g=t[i],g.origType.replace(r,"")===a.type?q.push(g.selector):t.splice(i--,1);f=d(a.target).closest(q,a.currentTarget);for(j=0,k=f.length;j<k;j++){m=f[j];for(i=0;i<t.length;i++){g=t[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,e=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,e=d(a.relatedTarget).closest(g.selector)[0];(!e||e!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){f=p[j];if(c&&f.level>c)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function E(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function y(){return!0}function x(){return!1}function i(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function h(a,c,e){if(e===b&&a.nodeType===1){e=a.getAttribute("data-"+c);if(typeof e==="string"){try{e=e==="true"?!0:e==="false"?!1:e==="null"?null:d.isNaN(e)?g.test(e)?d.parseJSON(e):e:parseFloat(e)}catch(f){}d.data(a,c,e)}else e=b}return e}var c=a.document,d=function(){function G(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(G,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x,y,z=Object.prototype.toString,A=Object.prototype.hasOwnProperty,B=Array.prototype.push,C=Array.prototype.slice,D=String.prototype.trim,E=Array.prototype.indexOf,F={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.2",length:0,size:function(){return this.length},toArray:function(){return C.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?B.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),x.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(C.apply(this,arguments),"slice",C.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:B,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){e=i[c],f=a[c];if(i===f)continue;l&&f&&(d.isPlainObject(f)||(g=d.isArray(f)))?(g?(g=!1,h=e&&d.isArray(e)?e:[]):h=e&&d.isPlainObject(e)?e:{},i[c]=d.extend(l,h,f)):f!==b&&(i[c]=f)}return i},d.extend({noConflict:function(b){a.$=f,b&&(a.jQuery=e);return d},isReady:!1,readyWait:1,ready:function(a){a===!0&&d.readyWait--;if(!d.readyWait||a!==!0&&!d.isReady){if(!c.body)return setTimeout(d.ready,1);d.isReady=!0;if(a!==!0&&--d.readyWait>0)return;x.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=d._Deferred();if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",y,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",y),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&G()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):F[z.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!A.call(a,"constructor")&&!A.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||A.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g<h;)if(c.apply(a[g++],e)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(var j=a[0];g<h&&c.call(j,g,j)!==!1;j=a[++g]){}return a},trim:D?function(a){return a==null?"":D.call(a)}:function(a){return a==null?"":(a+"").replace(j,"").replace(k,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var e=d.type(a);a.length==null||e==="string"||e==="function"||e==="regexp"||d.isWindow(a)?B.call(c,a):d.merge(c,a)}return c},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length==="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,b,c){var d=[],e;for(var f=0,g=a.length;f<g;f++)e=b(a[f],f,c),e!=null&&(d[d.length]=e);return d.concat.apply([],d)},guid:1,proxy:function(a,c,e){arguments.length===2&&(typeof c==="string"?(e=a,a=e[c],c=b):c&&!d.isFunction(c)&&(e=c,c=b)),!c&&a&&(c=function(){return a.apply(e||this,arguments)}),a&&(c.guid=a.guid=a.guid||c.guid||d.guid++);return c},access:function(a,c,e,f,g,h){var i=a.length;if(typeof c==="object"){for(var j in c)d.access(a,j,c[j],f,g,e);return a}if(e!==b){f=!h&&f&&d.isFunction(e);for(var k=0;k<i;k++)g(a[k],c,f?e.call(a[k],k,g(a[k],c)):e,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){F["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),E&&(d.inArray=function(a,b){return E.call(b,a)}),i.test(" ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?y=function(){c.removeEventListener("DOMContentLoaded",y,!1),d.ready()}:c.attachEvent&&(y=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",y),d.ready())});return d}(),e="then done fail isResolved isRejected promise".split(" "),f=[].slice;d.extend({_Deferred:function(){var a=[],b,c,e,f={done:function(){if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this},resolveWith:function(d,f){if(!e&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(d,f)}finally{b=[d,f],c=0}}return this},resolve:function(){f.resolveWith(this,arguments);return this},isResolved:function(){return c||b},cancel:function(){e=1,a=[];return this}};return f},Deferred:function(a){var b=d._Deferred(),c=d._Deferred(),f;d.extend(b,{then:function(a,c){b.done(a).fail(c);return this},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,promise:function(a){if(a==null){if(f)return f;f=a={}}var c=e.length;while(c--)a[e[c]]=b[e[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?f.call(arguments,0):c,--g||h.resolveWith(h,f.call(b,0))}}var b=arguments,c=0,e=b.length,g=e,h=e<=1&&a&&d.isFunction(a.promise)?a:d.Deferred();if(e>1){for(;c<e;c++)b[c]&&d.isFunction(b[c].promise)?b[c].promise().then(i(c),h.reject):--g;g||h.resolveWith(h,b)}else h!==a&&h.resolveWith(h,e?[a]:[]);return h.promise()}}),function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0,reliableMarginRight:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e)}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(a.style.width="1px",a.style.marginRight="0",d.support.reliableMarginRight=(parseInt(c.defaultView.getComputedStyle(a,null).marginRight,10)||0)===0),b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function");return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}}();var g=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!i(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,g=b.nodeType,h=g?d.cache:b,j=g?b[d.expando]:d.expando;if(!h[j])return;if(c){var k=e?h[j][f]:h[j];if(k){delete k[c];if(!i(k))return}}if(e){delete h[j][f];if(!i(h[j]))return}var l=h[j][f];d.support.deleteExpando||h!=a?delete h[j]:h[j]=null,l?(h[j]={},g||(h[j].toJSON=d.noop),h[j][f]=l):g&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var f=this[0].attributes,g;for(var i=0,j=f.length;i<j;i++)g=f[i].name,g.indexOf("data-")===0&&(g=g.substr(5),h(this[0],g,e[g]))}}return e}if(typeof a==="object")return this.each(function(){d.data(this,a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(c===b){e=this.triggerHandler("getData"+k[1]+"!",[k[0]]),e===b&&this.length&&(e=d.data(this[0],a),e=h(this[0],a,e));return e===b&&k[1]?this.data(k[0]):e}return this.each(function(){var b=d(this),e=[k[0],c];b.triggerHandler("setData"+k[1]+"!",e),d.data(this,a,c),b.triggerHandler("changeData"+k[1]+"!",e)})},removeData:function(a){return this.each(function(){d.removeData(this,a)})}}),d.extend({queue:function(a,b,c){if(a){b=(b||"fx")+"queue";var e=d._data(a,b);if(!c)return e||[];!e||d.isArray(c)?e=d._data(a,b,d.makeArray(c)):e.push(c);return e}},dequeue:function(a,b){b=b||"fx";var c=d.queue(a,b),e=c.shift();e==="inprogress"&&(e=c.shift()),e&&(b==="fx"&&c.unshift("inprogress"),e.call(a,function(){d.dequeue(a,b)})),c.length||d.removeData(a,b+"queue",!0)}}),d.fn.extend({queue:function(a,c){typeof a!=="string"&&(c=a,a="fx");if(c===b)return d.queue(this[0],a);return this.each(function(b){var e=d.queue(this,a,c);a==="fx"&&e[0]!=="inprogress"&&d.dequeue(this,a)})},dequeue:function(a){return this.each(function(){d.dequeue(this,a)})},delay:function(a,b){a=d.fx?d.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){d.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var j=/[\n\t\r]/g,k=/\s+/,l=/\r/g,m=/^(?:href|src|style)$/,n=/^(?:button|input)$/i,o=/^(?:button|input|object|select|textarea)$/i,p=/^a(?:rea)?$/i,q=/^(?:radio|checkbox)$/i;d.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"},d.fn.extend({attr:function(a,b){return d.access(this,a,b,!0,d.attr)},removeAttr:function(a,b){return this.each(function(){d.attr(this,a,""),this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.addClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"){var b=(a||"").split(k);for(var c=0,e=this.length;c<e;c++){var f=this[c];if(f.nodeType===1)if(f.className){var g=" "+f.className+" ",h=f.className;for(var i=0,j=b.length;i<j;i++)g.indexOf(" "+b[i]+" ")<0&&(h+=" "+b[i]);f.className=d.trim(h)}else f.className=a}}return this},removeClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"||a===b){var c=(a||"").split(k);for(var e=0,f=this.length;e<f;e++){var g=this[e];if(g.nodeType===1&&g.className)if(a){var h=(" "+g.className+" ").replace(j," ");for(var i=0,l=c.length;i<l;i++)h=h.replace(" "+c[i]+" "," ");g.className=d.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,e=typeof b==="boolean";if(d.isFunction(a))return this.each(function(c){var e=d(this);e.toggleClass(a.call(this,c,e.attr("class"),b),b)});return this.each(function(){if(c==="string"){var f,g=0,h=d(this),i=b,j=a.split(k);while(f=j[g++])i=e?i:!h.hasClass(f),h[i?"addClass":"removeClass"](f)}else if(c==="undefined"||c==="boolean")this.className&&d._data(this,"__className__",this.className),this.className=this.className||a===!1?"":d._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(j," ").indexOf(b)>-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var j=i?f:0,k=i?f+1:h.length;j<k;j++){var m=h[j];if(m.selected&&(d.support.optDisabled?!m.disabled:m.getAttribute("disabled")===null)&&(!m.parentNode.disabled||!d.nodeName(m.parentNode,"optgroup"))){a=d(m).val();if(i)return a;g.push(a)}}if(i&&!g.length&&h.length)return d(h[f]).val();return g}if(q.test(c.type)&&!d.support.checkOn)return c.getAttribute("value")===null?"on":c.value;return(c.value||"").replace(l,"")}return b}var n=d.isFunction(a);return this.each(function(b){var c=d(this),e=a;if(this.nodeType===1){n&&(e=a.call(this,b,c.val())),e==null?e="":typeof e==="number"?e+="":d.isArray(e)&&(e=d.map(e,function(a){return a==null?"":a+""}));if(d.isArray(e)&&q.test(this.type))this.checked=d.inArray(c.val(),e)>=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=m.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&n.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var k=a.getAttributeNode("tabIndex");return k&&k.specified?k.value:o.test(a.nodeName)||p.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var l=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return l===null?b:l}h&&(a[c]=e);return a[c]}});var r=/\.(.*)$/,s=/^(?:textarea|input|select)$/i,t=/\./g,u=/ /g,v=/[^\w\s.|`]/g,w=function(a){return a.replace(v,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=x;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(a){return typeof d!=="undefined"&&d.event.triggered!==a.type?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=x);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),w).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))d.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=d.event.special[h]||{};for(j=f||0;j<p.length;j++){q=p[j];if(e.guid===q.guid){if(l||n.test(q.namespace))f==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(f!=null)break}}if(p.length===0||f!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&d.removeEvent(a,h,s.handle),g=null,delete t[h]}if(d.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,d.isEmptyObject(s)&&d.removeData(a,b,!0)}}},trigger:function(a,c,e){var f=a.type||a,g=arguments[3];if(!g){a=typeof a==="object"?a[d.expando]?a:d.extend(d.Event(f),a):d.Event(f),f.indexOf("!")>=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(r,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=a.type,l[m]())}catch(p){}k&&(l["on"+m]=k),d.event.triggered=b}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l<m;l++){var n=f[l];if(e||h.test(n.namespace)){c.handler=n.handler,c.data=n.data,c.handleObj=n;var o=n.handler.apply(this,k);o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[d.expando])return a;var e=a;a=d.Event(e);for(var f=this.props.length,g;f;)g=this.props[--f],a[g]=e[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=c.documentElement,i=c.body;a.pageX=a.clientX+(h&&h.scrollLeft||i&&i.scrollLeft||0)-(h&&h.clientLeft||i&&i.clientLeft||0),a.pageY=a.clientY+(h&&h.scrollTop||i&&i.scrollTop||0)-(h&&h.clientTop||i&&i.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:d.proxy,special:{ready:{setup:d.bindReady,teardown:d.noop},live:{add:function(a){d.event.add(this,H(a.origType,a.selector),d.extend({},a,{handler:G,guid:a.handler.guid}))},remove:function(a){d.event.remove(this,H(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){d.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},d.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},d.Event=function(a){if(!this.preventDefault)return new d.Event(a);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?y:x):this.type=a,this.timeStamp=d.now(),this[d.expando]=!0},d.Event.prototype={preventDefault:function(){this.isDefaultPrevented=y;var a=this.originalEvent;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=y;var a=this.originalEvent;a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=y,this.stopPropagation()},isDefaultPrevented:x,isPropagationStopped:x,isImmediatePropagationStopped:x};var z=function(a){var b=a.relatedTarget;try{if(b&&b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&(a.type=a.data,d.event.handle.apply(this,arguments))}catch(e){}},A=function(a){a.type=a.data,d.event.handle.apply(this,arguments)};d.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){d.event.special[a]={setup:function(c){d.event.add(this,b,c&&c.selector?A:z,a)},teardown:function(a){d.event.remove(this,b,a&&a.selector?A:z)}}}),d.support.submitBubbles||(d.event.special.submit={setup:function(a,b){if(this.nodeName&&this.nodeName.toLowerCase()!=="form")d.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&d(b).closest("form").length&&E("submit",this,arguments)}),d.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&d(b).closest("form").length&&a.keyCode===13&&E("submit",this,arguments)});else return!1},teardown:function(a){d.event.remove(this,".specialSubmit")}});if(!d.support.changeBubbles){var B,C=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},D=function D(a){var c=a.target,e,f;if(s.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=C(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:D,beforedeactivate:D,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&D.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&D.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",C(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in B)d.event.add(this,c+".specialChange",B[c]);return s.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return s.test(this.nodeName)}},B=d.event.special.change.filters,B.focus=B.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function f(a){var c=d.event.fix(a);c.type=b,c.originalEvent={},d.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var e=0;d.event.special[b]={setup:function(){e++===0&&c.addEventListener(a,f,!0)},teardown:function(){--e===0&&c.removeEventListener(a,f,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i<j;i++)d.event.add(this[i],a,h,e);return this}}),d.fn.extend({unbind:function(a,b){if(typeof a!=="object"||a.preventDefault)for(var e=0,f=this.length;e<f;e++)d.event.remove(this[e],a,b);else for(var c in a)this.unbind(c,a[c]);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){d.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var c=d.Event(a);c.preventDefault(),c.stopPropagation(),d.event.trigger(c,b,this[0]);return c.result}},toggle:function(a){var b=arguments,c=1;while(c<b.length)d.proxy(a,b[c++]);return this.click(d.proxy(a,function(e){var f=(d._data(this,"lastToggle"+a.guid)||0)%c;d._data(this,"lastToggle"+a.guid,f+1),e.preventDefault();return b[f].apply(this,arguments)||!1}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var F={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};d.each(["live","die"],function(a,c){d.fn[c]=function(a,e,f,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:d(this.context);if(typeof a==="object"&&!a.preventDefault){for(var o in a)n[c](o,e,a[o],m);return this}d.isFunction(e)&&(f=e,e=b),a=(a||"").split(" ");while((h=a[i++])!=null){j=r.exec(h),k="",j&&(k=j[0],h=h.replace(r,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,h==="focus"||h==="blur"?(a.push(F[h]+k),h=h+k):h=(F[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)d.event.add(n[p],"live."+H(h,m),{data:e,selector:m,handler:f,origType:h,origHandler:f,preType:l});else n.unbind("live."+H(h,m),f)}return this}}),d.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){d.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!=="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!=="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(f){if(f===!0)continue}else g=o=!0}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b==="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1){}a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!=="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!=="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!=="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return"text"===c&&(b===c||b===null)},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(a===b){g=!0;return 0}if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};d.find=k,d.expr=k.selectors,d.expr[":"]=d.expr.filters,d.unique=k.uniqueSort,d.text=k.getText,d.isXMLDoc=k.isXML,d.contains=k.contains}();var I=/Until$/,J=/^(?:parents|prevUntil|prevAll)/,K=/,/,L=/^.[^:#\[\.,]*$/,M=Array.prototype.slice,N=d.expr.match.POS,O={children:!0,contents:!0,next:!0,prev:!0};d.fn.extend({find:function(a){var b=this.pushStack("","find",a),c=0;for(var e=0,f=this.length;e<f;e++){c=b.length,d.find(a,this[e],b);if(e>0)for(var g=c;g<b.length;g++)for(var h=0;h<c;h++)if(b[h]===b[g]){b.splice(g--,1);break}}return b},has:function(a){var b=d(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(d.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(Q(this,a,!1),"not",a)},filter:function(a){return this.pushStack(Q(this,a,!0),"filter",a)},is:function(a){return!!a&&d.filter(a,this).length>0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e<f;e++)i=a[e],j[i]||(j[i]=d.expr.match.POS.test(i)?d(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=N.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e<f;e++){g=this[e];while(g){if(l?l.index(g)>-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(P(c[0])||P(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=M.call(arguments);I.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!O[a]?d.unique(f):f,(this.length>1||K.test(e))&&J.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var R=/ jQuery\d+="(?:\d+|null)"/g,S=/^\s+/,T=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,U=/<([\w:]+)/,V=/<tbody/i,W=/<|&#?\w+;/,X=/<(?:script|object|embed|option|style)/i,Y=/checked\s*(?:[^=]|=\s*.checked.)/i,Z={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};Z.optgroup=Z.option,Z.tbody=Z.tfoot=Z.colgroup=Z.caption=Z.thead,Z.th=Z.td,d.support.htmlSerialize||(Z._default=[1,"div<div>","</div>"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(R,""):null;if(typeof a!=="string"||X.test(a)||!d.support.leadingWhitespace&&S.test(a)||Z[(U.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(T,"<$1></$2>");try{for(var c=0,e=this.length;c<e;c++)this[c].nodeType===1&&(d.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(f){this.empty().append(a)}}return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(d.isFunction(a))return this.each(function(b){var c=d(this),e=c.html();c.replaceWith(a.call(this,b,e))});typeof a!=="string"&&(a=d(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;d(this).remove(),b?d(b).before(a):d(c).append(a)})}return this.length?this.pushStack(d(d.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,e){var f,g,h,i,j=a[0],k=[];if(!d.support.checkClone&&arguments.length===3&&typeof j==="string"&&Y.test(j))return this.each(function(){d(this).domManip(a,c,e,!0)});if(d.isFunction(j))return this.each(function(f){var g=d(this);a[0]=j.call(this,f,c?g.html():b),g.domManip(a,c,e)});if(this[0]){i=j&&j.parentNode,d.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?f={fragment:i}:f=d.buildFragment(a,this,k),h=f.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&d.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)e.call(c?$(this[l],g):this[l],f.cacheable||m>1&&l<n?d.clone(h,!0,!0):h)}k.length&&d.each(k,bc)}return this}}),d.buildFragment=function(a,b,e){var f,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]==="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!X.test(a[0])&&(d.support.checkClone||!Y.test(a[0]))&&(g=!0,h=d.fragments[a[0]],h&&(h!==1&&(f=h))),f||(f=i.createDocumentFragment(),d.clean(a,i,f,e)),g&&(d.fragments[a[0]]=h?f:1);return{fragment:f,cacheable:g}},d.fragments={},d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){d.fn[a]=function(c){var e=[],f=d(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&f.length===1){f[b](this[0]);return this}for(var h=0,i=f.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){ba(a,e),f=bb(a),g=bb(e);for(h=0;f[h];++h)ba(f[h],g[h])}if(b){_(a,e);if(c){f=bb(a),g=bb(e);for(h=0;f[h];++h)_(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||W.test(i)){if(typeof i==="string"){i=i.replace(T,"<$1></$2>");var j=(U.exec(i)||["",""])[1].toLowerCase(),k=Z[j]||Z._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=V.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]==="<table>"&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&S.test(i)&&m.insertBefore(b.createTextNode(S.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bd=/alpha\([^)]*\)/i,be=/opacity=([^)]*)/,bf=/-([a-z])/ig,bg=/([A-Z]|^ms)/g,bh=/^-?\d+(?:px)?$/i,bi=/^-?\d/,bj={position:"absolute",visibility:"hidden",display:"block"},bk=["Left","Right"],bl=["Top","Bottom"],bm,bn,bo,bp=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bm(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bm)return bm(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bf,bp)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bq(a,b,e):d.swap(a,bj,function(){f=bq(a,b,e)});if(f<=0){f=bm(a,b,b),f==="0px"&&bo&&(f=bo(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bh.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return be.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bd.test(f)?f.replace(bd,e):c.filter+" "+e}}),d(function(){d.support.reliableMarginRight||(d.cssHooks.marginRight={get:function(a,b){var c;d.swap(a,{display:"inline-block"},function(){b?c=bm(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bn=function(a,c,e){var f,g,h;e=e.replace(bg,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bo=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bh.test(d)&&bi.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bm=bn||bo,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var br=/%20/g,bs=/\[\]$/,bt=/\r?\n/g,bu=/#.*$/,bv=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bw=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bx=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,by=/^(?:GET|HEAD)$/,bz=/^\/\//,bA=/\?/,bB=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bC=/^(?:select|textarea)/i,bD=/\s+/,bE=/([?&])_=[^&]*/,bF=/(^|\-)([a-z])/g,bG=function(a,b,c){return b+c.toUpperCase()},bH=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bI=d.fn.load,bJ={},bK={},bL,bM;try{bL=c.location.href}catch(bN){bL=c.createElement("a"),bL.href="",bL=bL.href}bM=bH.exec(bL.toLowerCase())||[],d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bI)return bI.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("<div>").append(c.replace(bB,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bC.test(this.nodeName)||bw.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(bt,"\r\n")}}):{name:b.name,value:c.replace(bt,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bL,isLocal:bx.test(bM[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bO(bJ),ajaxTransport:bO(bK),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bR(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bS(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bF,bG)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bv.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bu,"").replace(bz,bM[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bD),e.crossDomain==null&&(q=bH.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bM[1]||q[2]!=bM[2]||(q[3]||(q[1]==="http:"?80:443))!=(bM[3]||(bM[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bP(bJ,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!by.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(bA.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bE,"$1_="+w);e.url=x+(x===e.url?(bA.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bP(bK,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bQ(g,a[g],c,f);return e.join("&").replace(br,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bT=d.now(),bU=/(\=)\?(&|$)|\?\?/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bT++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bU.test(b.url)||f&&bU.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bU,l),b.url===j&&(f&&(k=k.replace(bU,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bV=d.now(),bW,bX;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bZ()||b$()}:bZ,bX=d.ajaxSettings.xhr(),d.support.ajax=!!bX,d.support.cors=bX&&"withCredentials"in bX,bX=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),!a.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bW[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bW||(bW={},bY()),h=bV++,g.onreadystatechange=bW[h]=c):c()},abort:function(){c&&c(0,1)}}}});var b_={},ca=/^(?:toggle|show|hide)$/,cb=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cc,cd=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(ce("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)e=this[g],f=e.style.display,!d._data(e,"olddisplay")&&f==="none"&&(f=e.style.display=""),f===""&&d.css(e,"display")==="none"&&d._data(e,"olddisplay",cf(e.nodeName));for(g=0;g<h;g++){e=this[g],f=e.style.display;if(f===""||f==="none")e.style.display=d._data(e,"olddisplay")||""}return this},hide:function(a,b,c){if(a||a===0)return this.animate(ce("hide",3),a,b,c);for(var e=0,f=this.length;e<f;e++){var g=d.css(this[e],"display");g!=="none"&&!d._data(this[e],"olddisplay")&&d._data(this[e],"olddisplay",g)}for(e=0;e<f;e++)this[e].style.display="none";return this},_toggle:d.fn.toggle,toggle:function(a,b,c){var e=typeof a==="boolean";d.isFunction(a)&&d.isFunction(b)?this._toggle.apply(this,arguments):a==null||e?this.each(function(){var b=e?a:d(this).is(":hidden");d(this)[b?"show":"hide"]()}):this.animate(ce("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,e){var f=d.speed(b,c,e);if(d.isEmptyObject(a))return this.each(f.complete);return this[f.queue===!1?"each":"queue"](function(){var b=d.extend({},f),c,e=this.nodeType===1,g=e&&d(this).is(":hidden"),h=this;for(c in a){var i=d.camelCase(c);c!==i&&(a[i]=a[c],delete a[c],c=i);if(a[c]==="hide"&&g||a[c]==="show"&&!g)return b.complete.call(this);if(e&&(c==="height"||c==="width")){b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(d.css(this,"display")==="inline"&&d.css(this,"float")==="none")if(d.support.inlineBlockNeedsLayout){var j=cf(this.nodeName);j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)}else this.style.display="inline-block"}d.isArray(a[c])&&((b.specialEasing=b.specialEasing||{})[c]=a[c][1],a[c]=a[c][0])}b.overflow!=null&&(this.style.overflow="hidden"),b.curAnim=d.extend({},a),d.each(a,function(c,e){var f=new d.fx(h,b,c);if(ca.test(e))f[e==="toggle"?g?"show":"hide":e](a);else{var i=cb.exec(e),j=f.cur();if(i){var k=parseFloat(i[2]),l=i[3]||(d.cssNumber[c]?"":"px");l!=="px"&&(d.style(h,c,(k||1)+l),j=(k||1)/f.cur()*j,d.style(h,c,j+l)),i[1]&&(k=(i[1]==="-="?-1:1)*k+j),f.custom(j,k,l)}else f.custom(j,e,"")}});return!0})},stop:function(a,b){var c=d.timers;a&&this.queue([]),this.each(function(){for(var a=c.length-1;a>=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:ce("show",1),slideUp:ce("hide",1),slideToggle:ce("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!cc&&(cc=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||d.fx.stop()},interval:13,stop:function(){clearInterval(cc),cc=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){d.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),d.expr&&d.expr.filters&&(d.expr.filters.animated=function(a){return d.grep(d.timers,function(b){return a===b.elem}).length});var cg=/^t(?:able|d|h)$/i,ch=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?d.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,g=f.documentElement;if(!c||!d.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=f.body,i=ci(f),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||d.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||d.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:d.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);d.offset.initialize();var c,e=b.offsetParent,f=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(d.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===e&&(l+=b.offsetTop,m+=b.offsetLeft,d.offset.doesNotAddBorder&&(!d.offset.doesAddBorderForTableAndCells||!cg.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),f=e,e=b.offsetParent),d.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;d.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},d.offset={initialize:function(){var a=c.body,b=c.createElement("div"),e,f,g,h,i=parseFloat(d.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=(e==="absolute"||e==="fixed")&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=ch.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!ch.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=ci(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=ci(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window);
\ No newline at end of file
diff --git a/docs/dynamo/modules_list.html b/docs/dynamo/modules_list.html
new file mode 100644
index 000000000..97656a82d
--- /dev/null
+++ b/docs/dynamo/modules_list.html
@@ -0,0 +1,1622 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
+    <base id="base_target" target="_parent" />
+  </head>
+  <body class="frames">
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) {
+        document.getElementById('base_target').target = 'main';
+        document.body.className = 'frames';
+      }
+    </script>
+    <div id="content">
+      <h1 id="full_list_header">
+        <a href="http://elixir-lang.org/" target="_blank">Dynamo v0.1.0.dev</a>
+      </h1>
+      <div id="nav">
+        <span class="selected"><a target="_self" href="modules_list.html">
+          Modules
+        </a></span>
+        <span class=""><a target="_self" href="records_list.html">
+          Records
+        </a></span>
+        <span class=""><a target="_self" href="protocols_list.html">
+          Protocols
+        </a></span>
+        <div class="clear"></div>
+      </div>
+      <div id="search">Search: <input type="text" /></div>
+
+      <ul id="full_list" class="class">
+        <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Dict.html" title="Binary.Dict">Binary.Dict</a>
+  </span>
+  <small class="search_info">Binary.Dict</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Dict.html#new/0">new/0</a>
+      </span>
+      <small class="search_info">Binary.Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Dict.html#new/1">new/1</a>
+      </span>
+      <small class="search_info">Binary.Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Dict.html#new/2">new/2</a>
+      </span>
+      <small class="search_info">Binary.Dict</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.html" title="Dynamo">Dynamo</a>
+  </span>
+  <small class="search_info">Dynamo</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Base.html" title="Dynamo.Base">Base</a>
+  </span>
+  <small class="search_info">Dynamo.Base</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Base.html#config/2">config/2</a>
+      </span>
+      <small class="search_info">Dynamo.Base</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Base.html#initializer/2">initializer/2</a>
+      </span>
+      <small class="search_info">Dynamo.Base</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Base.html#templates/1">templates/1</a>
+      </span>
+      <small class="search_info">Dynamo.Base</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Connection.html" title="Dynamo.Connection">Connection</a>
+  </span>
+  <small class="search_info">Dynamo.Connection</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#app/1">app/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#put_private/3">put_private/3</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#private/1">private/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#put_assign/3">put_assign/3</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#assign/3">assign/3</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#assigns/1">assigns/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#fetchable/3">fetchable/3</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#fetch/2">fetch/2</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#put_resp_cookie/4">put_resp_cookie/4</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#resp_cookies/1">resp_cookies/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#req_cookies/1">req_cookies/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#delete_resp_header/2">delete_resp_header/2</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#put_resp_header/3">put_resp_header/3</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#resp_headers/1">resp_headers/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#upgrade/3">upgrade/3</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#state/1">state/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#sendfile/2">sendfile/2</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#send/1">send/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#resp/3">resp/3</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#resp_content_type/2">resp_content_type/2</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#resp_content_type/1">resp_content_type/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#resp_charset/2">resp_charset/2</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#resp_charset/1">resp_charset/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#resp_body/2">resp_body/2</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#resp_body/1">resp_body/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#status/2">status/2</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#status/1">status/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#chunk/2">chunk/2</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#send_chunked/2">send_chunked/2</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#send/3">send/3</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#already_sent?/1">already_sent?/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#forward_to/3">forward_to/3</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#script_name/1">script_name/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#script_name_segments/1">script_name_segments/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#path_info/1">path_info/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#path_info_segments/1">path_info_segments/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#path/1">path/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#path_segments/1">path_segments/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#query_string/1">query_string/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#host_url/1">host_url/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#port/1">port/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#host/1">host/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#scheme/1">scheme/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#version/1">version/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#method/2">method/2</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#original_method/1">original_method/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#method/1">method/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#req_body/1">req_body/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#req_headers/1">req_headers/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#route_params/2">route_params/2</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#route_params/1">route_params/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#params/1">params/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.html#default_before_send/0">default_before_send/0</a>
+      </span>
+      <small class="search_info">Dynamo.Connection</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Connection.Behaviour.html" title="Dynamo.Connection.Behaviour">Connection.Behaviour</a>
+  </span>
+  <small class="search_info">Dynamo.Connection.Behaviour</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Connection.QueryParser.html" title="Dynamo.Connection.QueryParser">Connection.QueryParser</a>
+  </span>
+  <small class="search_info">Dynamo.Connection.QueryParser</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.QueryParser.html#parse/2">parse/2</a>
+      </span>
+      <small class="search_info">Dynamo.Connection.QueryParser</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.QueryParser.html#reduce/2">reduce/2</a>
+      </span>
+      <small class="search_info">Dynamo.Connection.QueryParser</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Connection.Test.html" title="Dynamo.Connection.Test">Connection.Test</a>
+  </span>
+  <small class="search_info">Dynamo.Connection.Test</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.Test.html#already_sent?/1">already_sent?/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection.Test</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.Test.html#app/2">app/2</a>
+      </span>
+      <small class="search_info">Dynamo.Connection.Test</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.Test.html#delete_req_header/2">delete_req_header/2</a>
+      </span>
+      <small class="search_info">Dynamo.Connection.Test</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.Test.html#fetched/1">fetched/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection.Test</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.Test.html#new/3">new/3</a>
+      </span>
+      <small class="search_info">Dynamo.Connection.Test</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.Test.html#put_req_cookie/3">put_req_cookie/3</a>
+      </span>
+      <small class="search_info">Dynamo.Connection.Test</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.Test.html#put_req_header/3">put_req_header/3</a>
+      </span>
+      <small class="search_info">Dynamo.Connection.Test</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.Test.html#recycle/1">recycle/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection.Test</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.Test.html#req/4">req/4</a>
+      </span>
+      <small class="search_info">Dynamo.Connection.Test</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Cowboy.html" title="Dynamo.Cowboy">Cowboy</a>
+  </span>
+  <small class="search_info">Dynamo.Cowboy</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Cowboy.html#run/2">run/2</a>
+      </span>
+      <small class="search_info">Dynamo.Cowboy</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Cowboy.html#shutdown/1">shutdown/1</a>
+      </span>
+      <small class="search_info">Dynamo.Cowboy</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Filters.Exceptions.html" title="Dynamo.Filters.Exceptions">Filters.Exceptions</a>
+  </span>
+  <small class="search_info">Dynamo.Filters.Exceptions</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Exceptions.html#new/1">new/1</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Exceptions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Exceptions.html#service/3">service/3</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Exceptions</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Filters.Exceptions.Debug.html" title="Dynamo.Filters.Exceptions.Debug">Filters.Exceptions.Debug</a>
+  </span>
+  <small class="search_info">Dynamo.Filters.Exceptions.Debug</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Exceptions.Debug.html#extract_snippet/2">extract_snippet/2</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Exceptions.Debug</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Exceptions.Debug.html#mod_fun/3">mod_fun/3</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Exceptions.Debug</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Exceptions.Debug.html#service/1">service/1</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Exceptions.Debug</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Filters.Exceptions.Public.html" title="Dynamo.Filters.Exceptions.Public">Filters.Exceptions.Public</a>
+  </span>
+  <small class="search_info">Dynamo.Filters.Exceptions.Public</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Exceptions.Public.html#service/1">service/1</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Exceptions.Public</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Filters.Head.html" title="Dynamo.Filters.Head">Filters.Head</a>
+  </span>
+  <small class="search_info">Dynamo.Filters.Head</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Head.html#service/2">service/2</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Head</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Filters.Loader.html" title="Dynamo.Filters.Loader">Filters.Loader</a>
+  </span>
+  <small class="search_info">Dynamo.Filters.Loader</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Filters.Session.html" title="Dynamo.Filters.Session">Filters.Session</a>
+  </span>
+  <small class="search_info">Dynamo.Filters.Session</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Filters.Session.CookieStore.html" title="Dynamo.Filters.Session.CookieStore">Filters.Session.CookieStore</a>
+  </span>
+  <small class="search_info">Dynamo.Filters.Session.CookieStore</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Session.CookieStore.html#delete_session/2">delete_session/2</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Session.CookieStore</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Session.CookieStore.html#get_session/2">get_session/2</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Session.CookieStore</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Session.CookieStore.html#put_session/3">put_session/3</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Session.CookieStore</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Session.CookieStore.html#setup/1">setup/1</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Session.CookieStore</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Filters.Session.ETSStore.html" title="Dynamo.Filters.Session.ETSStore">Filters.Session.ETSStore</a>
+  </span>
+  <small class="search_info">Dynamo.Filters.Session.ETSStore</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Session.ETSStore.html#delete_session/2">delete_session/2</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Session.ETSStore</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Session.ETSStore.html#get_session/2">get_session/2</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Session.ETSStore</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Session.ETSStore.html#put_session/3">put_session/3</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Session.ETSStore</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Session.ETSStore.html#setup/1">setup/1</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Session.ETSStore</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Filters.Session.Store.html" title="Dynamo.Filters.Session.Store">Filters.Session.Store</a>
+  </span>
+  <small class="search_info">Dynamo.Filters.Session.Store</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Session.Store.html#delete_session/2">delete_session/2</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Session.Store</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Session.Store.html#put_session/3">put_session/3</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Session.Store</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Session.Store.html#get_session/2">get_session/2</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Session.Store</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Filters.Session.Store.html#setup/1">setup/1</a>
+      </span>
+      <small class="search_info">Dynamo.Filters.Session.Store</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Filters.Static.html" title="Dynamo.Filters.Static">Filters.Static</a>
+  </span>
+  <small class="search_info">Dynamo.Filters.Static</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.HTTP.html" title="Dynamo.HTTP">HTTP</a>
+  </span>
+  <small class="search_info">Dynamo.HTTP</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.HTTP.Case.html" title="Dynamo.HTTP.Case">HTTP.Case</a>
+  </span>
+  <small class="search_info">Dynamo.HTTP.Case</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Case.html#conn/3">conn/3</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Case</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Case.html#delete/2">delete/2</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Case</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Case.html#get/2">get/2</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Case</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Case.html#post/2">post/2</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Case</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Case.html#process/4">process/4</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Case</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Case.html#put/2">put/2</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Case</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Case.html#put_session_cookie/2">put_session_cookie/2</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Case</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.HTTP.Cookies.html" title="Dynamo.HTTP.Cookies">HTTP.Cookies</a>
+  </span>
+  <small class="search_info">Dynamo.HTTP.Cookies</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Cookies.html#delete_cookie/3">delete_cookie/3</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Cookies</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Cookies.html#get_cookie/2">get_cookie/2</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Cookies</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Cookies.html#get_cookies/1">get_cookies/1</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Cookies</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Cookies.html#put_cookie/4">put_cookie/4</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Cookies</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.HTTP.Halt.html" title="Dynamo.HTTP.Halt">HTTP.Halt</a>
+  </span>
+  <small class="search_info">Dynamo.HTTP.Halt</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Halt.html#halt!/1">halt!/1</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Halt</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.HTTP.Hibernate.html" title="Dynamo.HTTP.Hibernate">HTTP.Hibernate</a>
+  </span>
+  <small class="search_info">Dynamo.HTTP.Hibernate</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Hibernate.html#await/2">await/2</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Hibernate</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Hibernate.html#await/4">await/4</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Hibernate</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Hibernate.html#hibernate/2">hibernate/2</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Hibernate</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Hibernate.html#hibernate/4">hibernate/4</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Hibernate</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.HTTP.Redirect.html" title="Dynamo.HTTP.Redirect">HTTP.Redirect</a>
+  </span>
+  <small class="search_info">Dynamo.HTTP.Redirect</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Redirect.html#redirect/2">redirect/2</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Redirect</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Redirect.html#redirect!/2">redirect!/2</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Redirect</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.HTTP.Render.html" title="Dynamo.HTTP.Render">HTTP.Render</a>
+  </span>
+  <small class="search_info">Dynamo.HTTP.Render</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Render.html#render/3">render/3</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Render</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.HTTP.Session.html" title="Dynamo.HTTP.Session">HTTP.Session</a>
+  </span>
+  <small class="search_info">Dynamo.HTTP.Session</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Session.html#configure_session/3">configure_session/3</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Session</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Session.html#get_session/1">get_session/1</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Session</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Session.html#get_session/2">get_session/2</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Session</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.HTTP.Session.html#put_session/3">put_session/3</a>
+      </span>
+      <small class="search_info">Dynamo.HTTP.Session</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Helpers.html" title="Dynamo.Helpers">Helpers</a>
+  </span>
+  <small class="search_info">Dynamo.Helpers</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Helpers.ContentFor.html" title="Dynamo.Helpers.ContentFor">Helpers.ContentFor</a>
+  </span>
+  <small class="search_info">Dynamo.Helpers.ContentFor</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Helpers.ContentFor.html#append_content/3">append_content/3</a>
+      </span>
+      <small class="search_info">Dynamo.Helpers.ContentFor</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Helpers.ContentFor.html#content_for/1">content_for/1</a>
+      </span>
+      <small class="search_info">Dynamo.Helpers.ContentFor</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Helpers.ContentFor.html#content_for/2">content_for/2</a>
+      </span>
+      <small class="search_info">Dynamo.Helpers.ContentFor</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Helpers.ContentFor.html#get_content/2">get_content/2</a>
+      </span>
+      <small class="search_info">Dynamo.Helpers.ContentFor</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Helpers.ContentFor.html#put_content/3">put_content/3</a>
+      </span>
+      <small class="search_info">Dynamo.Helpers.ContentFor</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Helpers.Escaping.html" title="Dynamo.Helpers.Escaping">Helpers.Escaping</a>
+  </span>
+  <small class="search_info">Dynamo.Helpers.Escaping</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Helpers.Escaping.html#h/1">h/1</a>
+      </span>
+      <small class="search_info">Dynamo.Helpers.Escaping</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Helpers.Rendering.html" title="Dynamo.Helpers.Rendering">Helpers.Rendering</a>
+  </span>
+  <small class="search_info">Dynamo.Helpers.Rendering</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Helpers.Rendering.html#render/2">render/2</a>
+      </span>
+      <small class="search_info">Dynamo.Helpers.Rendering</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Helpers.Rendering.html#render/3">render/3</a>
+      </span>
+      <small class="search_info">Dynamo.Helpers.Rendering</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Loader.html" title="Dynamo.Loader">Loader</a>
+  </span>
+  <small class="search_info">Dynamo.Loader</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Loader.html#append_paths/1">append_paths/1</a>
+      </span>
+      <small class="search_info">Dynamo.Loader</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Loader.html#code_change/3">code_change/3</a>
+      </span>
+      <small class="search_info">Dynamo.Loader</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Loader.html#conditional_purge/0">conditional_purge/0</a>
+      </span>
+      <small class="search_info">Dynamo.Loader</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Loader.html#enable/0">enable/0</a>
+      </span>
+      <small class="search_info">Dynamo.Loader</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Loader.html#handle_call/3">handle_call/3</a>
+      </span>
+      <small class="search_info">Dynamo.Loader</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Loader.html#handle_cast/2">handle_cast/2</a>
+      </span>
+      <small class="search_info">Dynamo.Loader</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Loader.html#handle_info/2">handle_info/2</a>
+      </span>
+      <small class="search_info">Dynamo.Loader</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Loader.html#init/1">init/1</a>
+      </span>
+      <small class="search_info">Dynamo.Loader</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Loader.html#load_missing/1">load_missing/1</a>
+      </span>
+      <small class="search_info">Dynamo.Loader</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Loader.html#on_purge/1">on_purge/1</a>
+      </span>
+      <small class="search_info">Dynamo.Loader</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Loader.html#terminate/2">terminate/2</a>
+      </span>
+      <small class="search_info">Dynamo.Loader</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Router.html" title="Dynamo.Router">Router</a>
+  </span>
+  <small class="search_info">Dynamo.Router</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Router.Base.html" title="Dynamo.Router.Base">Router.Base</a>
+  </span>
+  <small class="search_info">Dynamo.Router.Base</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Router.Base.html#delete/2">delete/2</a>
+      </span>
+      <small class="search_info">Dynamo.Router.Base</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Router.Base.html#finalize/1">finalize/1</a>
+      </span>
+      <small class="search_info">Dynamo.Router.Base</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Router.Base.html#forward/2">forward/2</a>
+      </span>
+      <small class="search_info">Dynamo.Router.Base</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Router.Base.html#get/2">get/2</a>
+      </span>
+      <small class="search_info">Dynamo.Router.Base</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Router.Base.html#match/3">match/3</a>
+      </span>
+      <small class="search_info">Dynamo.Router.Base</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Router.Base.html#post/2">post/2</a>
+      </span>
+      <small class="search_info">Dynamo.Router.Base</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Router.Base.html#prepare/1">prepare/1</a>
+      </span>
+      <small class="search_info">Dynamo.Router.Base</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Router.Base.html#put/2">put/2</a>
+      </span>
+      <small class="search_info">Dynamo.Router.Base</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Router.Filters.html" title="Dynamo.Router.Filters">Router.Filters</a>
+  </span>
+  <small class="search_info">Dynamo.Router.Filters</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Router.Filters.html#delete_filter/1">delete_filter/1</a>
+      </span>
+      <small class="search_info">Dynamo.Router.Filters</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Router.Filters.html#filter/1">filter/1</a>
+      </span>
+      <small class="search_info">Dynamo.Router.Filters</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Router.Filters.html#match?/2">match?/2</a>
+      </span>
+      <small class="search_info">Dynamo.Router.Filters</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Router.Filters.html#prepend_filter/1">prepend_filter/1</a>
+      </span>
+      <small class="search_info">Dynamo.Router.Filters</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Supervisor.html" title="Dynamo.Supervisor">Supervisor</a>
+  </span>
+  <small class="search_info">Dynamo.Supervisor</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Supervisor.html#start_child/4">start_child/4</a>
+      </span>
+      <small class="search_info">Dynamo.Supervisor</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Supervisor.html#start_link/2">start_link/2</a>
+      </span>
+      <small class="search_info">Dynamo.Supervisor</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Templates.Handler.html" title="Dynamo.Templates.Handler">Templates.Handler</a>
+  </span>
+  <small class="search_info">Dynamo.Templates.Handler</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Templates.Handler.html#render/4">render/4</a>
+      </span>
+      <small class="search_info">Dynamo.Templates.Handler</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Templates.Handler.html#compile/3">compile/3</a>
+      </span>
+      <small class="search_info">Dynamo.Templates.Handler</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Templates.Handler.html#get!/1">get!/1</a>
+      </span>
+      <small class="search_info">Dynamo.Templates.Handler</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Utils.MessageVerifier.html" title="Dynamo.Utils.MessageVerifier">Utils.MessageVerifier</a>
+  </span>
+  <small class="search_info">Dynamo.Utils.MessageVerifier</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Utils.MessageVerifier.html#generate/2">generate/2</a>
+      </span>
+      <small class="search_info">Dynamo.Utils.MessageVerifier</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Utils.MessageVerifier.html#secure_compare/2">secure_compare/2</a>
+      </span>
+      <small class="search_info">Dynamo.Utils.MessageVerifier</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Utils.MessageVerifier.html#verify/2">verify/2</a>
+      </span>
+      <small class="search_info">Dynamo.Utils.MessageVerifier</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Utils.Once.html" title="Dynamo.Utils.Once">Utils.Once</a>
+  </span>
+  <small class="search_info">Dynamo.Utils.Once</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Utils.Once.html#use_once/1">use_once/1</a>
+      </span>
+      <small class="search_info">Dynamo.Utils.Once</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.html#under_test/0">under_test/0</a>
+      </span>
+      <small class="search_info">Dynamo</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.html#under_test/1">under_test/1</a>
+      </span>
+      <small class="search_info">Dynamo</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Compile.Dynamo.html" title="Mix.Tasks.Compile.Dynamo">Mix.Tasks.Compile.Dynamo</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Compile.Dynamo</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.Dynamo.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile.Dynamo</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Dynamo.html" title="Mix.Tasks.Dynamo">Mix.Tasks.Dynamo</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Dynamo</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Dynamo.Filters.html" title="Mix.Tasks.Dynamo.Filters">Filters</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Dynamo.Filters</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Dynamo.Filters.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Dynamo.Filters</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Dynamo.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Dynamo</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Server.html" title="Mix.Tasks.Server">Mix.Tasks.Server</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Server</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Server.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Server</small>
+    </li>
+  
+</ul>
+
+      </ul>
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/protocols_list.html b/docs/dynamo/protocols_list.html
new file mode 100644
index 000000000..32d86ae7c
--- /dev/null
+++ b/docs/dynamo/protocols_list.html
@@ -0,0 +1,308 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
+    <base id="base_target" target="_parent" />
+  </head>
+  <body class="frames">
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) {
+        document.getElementById('base_target').target = 'main';
+        document.body.className = 'frames';
+      }
+    </script>
+    <div id="content">
+      <h1 id="full_list_header">
+        <a href="http://elixir-lang.org/" target="_blank">Dynamo v0.1.0.dev</a>
+      </h1>
+      <div id="nav">
+        <span class=""><a target="_self" href="modules_list.html">
+          Modules
+        </a></span>
+        <span class=""><a target="_self" href="records_list.html">
+          Records
+        </a></span>
+        <span class="selected"><a target="_self" href="protocols_list.html">
+          Protocols
+        </a></span>
+        <div class="clear"></div>
+      </div>
+      <div id="search">Search: <input type="text" /></div>
+
+      <ul id="full_list" class="class">
+        <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Access.Binary.Dict.html" title="Access.Binary.Dict">Access.Binary.Dict</a>
+  </span>
+  <small class="search_info">Access.Binary.Dict</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Access.Binary.Dict.html#access/2">access/2</a>
+      </span>
+      <small class="search_info">Access.Binary.Dict</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Binary.Dict.html" title="Binary.Inspect.Binary.Dict">Binary.Inspect.Binary.Dict</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Binary.Dict</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Binary.Dict.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Binary.Dict</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Dynamo.Connection.Test.html" title="Binary.Inspect.Dynamo.Connection.Test">Binary.Inspect.Dynamo.Connection.Test</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Dynamo.Connection.Test</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Dynamo.Connection.Test.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Dynamo.Connection.Test</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Dynamo.Cowboy.Connection.html" title="Binary.Inspect.Dynamo.Cowboy.Connection">Binary.Inspect.Dynamo.Cowboy.Connection</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Dynamo.Cowboy.Connection</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Dynamo.Cowboy.Connection.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Dynamo.Cowboy.Connection</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Exception.html" title="Dynamo.Exception">Dynamo.Exception</a>
+  </span>
+  <small class="search_info">Dynamo.Exception</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Exception.Any.html" title="Dynamo.Exception.Any">Any</a>
+  </span>
+  <small class="search_info">Dynamo.Exception.Any</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Exception.Any.html#status/1">status/1</a>
+      </span>
+      <small class="search_info">Dynamo.Exception.Any</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Exception.Dynamo.NotFoundError.html" title="Dynamo.Exception.Dynamo.NotFoundError">Dynamo.NotFoundError</a>
+  </span>
+  <small class="search_info">Dynamo.Exception.Dynamo.NotFoundError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Exception.Dynamo.NotFoundError.html#status/1">status/1</a>
+      </span>
+      <small class="search_info">Dynamo.Exception.Dynamo.NotFoundError</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Exception.html#status/1">status/1</a>
+      </span>
+      <small class="search_info">Dynamo.Exception</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Templates.Finder.html" title="Dynamo.Templates.Finder">Dynamo.Templates.Finder</a>
+  </span>
+  <small class="search_info">Dynamo.Templates.Finder</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Templates.Finder.Atom.html" title="Dynamo.Templates.Finder.Atom">Atom</a>
+  </span>
+  <small class="search_info">Dynamo.Templates.Finder.Atom</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Templates.Finder.Atom.html#all/1">all/1</a>
+      </span>
+      <small class="search_info">Dynamo.Templates.Finder.Atom</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Templates.Finder.Atom.html#find/2">find/2</a>
+      </span>
+      <small class="search_info">Dynamo.Templates.Finder.Atom</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Templates.Finder.Atom.html#precompiled?/1">precompiled?/1</a>
+      </span>
+      <small class="search_info">Dynamo.Templates.Finder.Atom</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Templates.Finder.Atom.html#source/2">source/2</a>
+      </span>
+      <small class="search_info">Dynamo.Templates.Finder.Atom</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Templates.Finder.BitString.html" title="Dynamo.Templates.Finder.BitString">BitString</a>
+  </span>
+  <small class="search_info">Dynamo.Templates.Finder.BitString</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Templates.Finder.BitString.html#all/1">all/1</a>
+      </span>
+      <small class="search_info">Dynamo.Templates.Finder.BitString</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Templates.Finder.BitString.html#find/2">find/2</a>
+      </span>
+      <small class="search_info">Dynamo.Templates.Finder.BitString</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Templates.Finder.BitString.html#precompiled?/1">precompiled?/1</a>
+      </span>
+      <small class="search_info">Dynamo.Templates.Finder.BitString</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Templates.Finder.BitString.html#source/2">source/2</a>
+      </span>
+      <small class="search_info">Dynamo.Templates.Finder.BitString</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Templates.Finder.html#all/1">all/1</a>
+      </span>
+      <small class="search_info">Dynamo.Templates.Finder</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Templates.Finder.html#find/2">find/2</a>
+      </span>
+      <small class="search_info">Dynamo.Templates.Finder</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Templates.Finder.html#precompiled?/1">precompiled?/1</a>
+      </span>
+      <small class="search_info">Dynamo.Templates.Finder</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Templates.Finder.html#source/2">source/2</a>
+      </span>
+      <small class="search_info">Dynamo.Templates.Finder</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Enum.Iterator.Binary.Dict.html" title="Enum.Iterator.Binary.Dict">Enum.Iterator.Binary.Dict</a>
+  </span>
+  <small class="search_info">Enum.Iterator.Binary.Dict</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.Iterator.Binary.Dict.html#count/1">count/1</a>
+      </span>
+      <small class="search_info">Enum.Iterator.Binary.Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.Iterator.Binary.Dict.html#iterator/1">iterator/1</a>
+      </span>
+      <small class="search_info">Enum.Iterator.Binary.Dict</small>
+    </li>
+  
+</ul>
+
+      </ul>
+    </div>
+  </body>
+</html>
diff --git a/docs/dynamo/records_list.html b/docs/dynamo/records_list.html
new file mode 100644
index 000000000..1c0678754
--- /dev/null
+++ b/docs/dynamo/records_list.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
+    <base id="base_target" target="_parent" />
+  </head>
+  <body class="frames">
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) {
+        document.getElementById('base_target').target = 'main';
+        document.body.className = 'frames';
+      }
+    </script>
+    <div id="content">
+      <h1 id="full_list_header">
+        <a href="http://elixir-lang.org/" target="_blank">Dynamo v0.1.0.dev</a>
+      </h1>
+      <div id="nav">
+        <span class=""><a target="_self" href="modules_list.html">
+          Modules
+        </a></span>
+        <span class="selected"><a target="_self" href="records_list.html">
+          Records
+        </a></span>
+        <span class=""><a target="_self" href="protocols_list.html">
+          Protocols
+        </a></span>
+        <div class="clear"></div>
+      </div>
+      <div id="search">Search: <input type="text" /></div>
+
+      <ul id="full_list" class="class">
+        <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Connection.File.html" title="Dynamo.Connection.File">Dynamo.Connection.File</a>
+  </span>
+  <small class="search_info">Dynamo.Connection.File</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Connection.NotSentError.html" title="Dynamo.Connection.NotSentError">Dynamo.Connection.NotSentError</a>
+  </span>
+  <small class="search_info">Dynamo.Connection.NotSentError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Connection.QueryParser.ParseError.html" title="Dynamo.Connection.QueryParser.ParseError">Dynamo.Connection.QueryParser.ParseError</a>
+  </span>
+  <small class="search_info">Dynamo.Connection.QueryParser.ParseError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Connection.UnfetchedError.html" title="Dynamo.Connection.UnfetchedError">Dynamo.Connection.UnfetchedError</a>
+  </span>
+  <small class="search_info">Dynamo.Connection.UnfetchedError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.UnfetchedError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection.UnfetchedError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Connection.UnknownFetchError.html" title="Dynamo.Connection.UnknownFetchError">Dynamo.Connection.UnknownFetchError</a>
+  </span>
+  <small class="search_info">Dynamo.Connection.UnknownFetchError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Connection.UnknownFetchError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">Dynamo.Connection.UnknownFetchError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Filters.Session.CookieOverflowError.html" title="Dynamo.Filters.Session.CookieOverflowError">Dynamo.Filters.Session.CookieOverflowError</a>
+  </span>
+  <small class="search_info">Dynamo.Filters.Session.CookieOverflowError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.NotFoundError.html" title="Dynamo.NotFoundError">Dynamo.NotFoundError</a>
+  </span>
+  <small class="search_info">Dynamo.NotFoundError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Router.InvalidHookError.html" title="Dynamo.Router.InvalidHookError">Dynamo.Router.InvalidHookError</a>
+  </span>
+  <small class="search_info">Dynamo.Router.InvalidHookError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.Router.InvalidHookError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">Dynamo.Router.InvalidHookError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Router.InvalidSpecError.html" title="Dynamo.Router.InvalidSpecError">Dynamo.Router.InvalidSpecError</a>
+  </span>
+  <small class="search_info">Dynamo.Router.InvalidSpecError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.Template.html" title="Dynamo.Template">Dynamo.Template</a>
+  </span>
+  <small class="search_info">Dynamo.Template</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dynamo.TemplateNotFound.html" title="Dynamo.TemplateNotFound">Dynamo.TemplateNotFound</a>
+  </span>
+  <small class="search_info">Dynamo.TemplateNotFound</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dynamo.TemplateNotFound.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">Dynamo.TemplateNotFound</small>
+    </li>
+  
+</ul>
+
+      </ul>
+    </div>
+  </body>
+</html>
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 000000000..4c6afd2e5
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,20 @@
+---
+section: docs
+layout: default
+---
+
+<div class="hfeed">
+  <div class="hentry post">
+    <div class="sticky-header">
+      <h2 class="entry-title">Documentation</h2>
+    </div>
+
+    <div class="entry-summary">
+      <p>Choose which version do you want documentation for:</p>
+      <ul>
+        <li><a href="/docs/stable/">Latest stable release</a></li>
+        <li><a href="/docs/master/">Master</a></li>
+      </ul>
+    </div>
+  </div>
+</div>
diff --git a/docs/master/Access.Atom.html b/docs/master/Access.Atom.html
new file mode 100644
index 000000000..c535a1011
--- /dev/null
+++ b/docs/master/Access.Atom.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Access.Atom</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Access.Atom
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/access.ex#L47" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#access/2">access/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="access/2">
+    <strong>access(atom, _)</strong>
+  </p>
+  <div class="docstring"><p>The access protocol can only be accessed by atoms
+at compilation time. If we reach this, we should raise
+an exception.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/access.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Access.HashDict.html b/docs/master/Access.HashDict.html
new file mode 100644
index 000000000..2e961bbb8
--- /dev/null
+++ b/docs/master/Access.HashDict.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Access.HashDict</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Access.HashDict
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L587" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#access/2">access/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="access/2">
+    <strong>access(dict, key)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L588" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Access.List.html b/docs/master/Access.List.html
new file mode 100644
index 000000000..76db701f9
--- /dev/null
+++ b/docs/master/Access.List.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Access.List</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Access.List
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/access.ex#L22" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#access/2">access/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="access/2">
+    <strong>access(list, key)</strong>
+  </p>
+  <div class="docstring"><p>Access the given key in a tuple list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; keywords = [a: 1, b: 2]
+...&gt; keywords[:a]
+1
+
+iex&gt; star_ratings = [{1.0, &quot;★&quot;}, {1.5, &quot;★☆&quot;}, {2.0, &quot;★★&quot;}]
+...&gt; star_ratings[1.5]
+&quot;★☆&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/access.ex#L37" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Access.html b/docs/master/Access.html
new file mode 100644
index 000000000..fd7d3a250
--- /dev/null
+++ b/docs/master/Access.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Access</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Access
+        
+          <small>protocol</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>The Access protocol is the underlying protocol invoked
+when the brackets syntax is used. For instance, <code>foo[bar]</code>
+is translated to <code>access foo, bar</code> which, by default,
+invokes the <code>Access.access</code> protocol.</p>
+
+<p>This protocol is limited and is implemented only for the
+following built-in types: keywords, records and functions.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/access.ex#L3" target="_blank" class="view_source">Source</a>
+
+      
+        <h2 id="implementations">Implementations</h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Access.Atom.html">Atom</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Access.HashDict.html">HashDict</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Access.List.html">List</a>
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#access/2">access/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="access/2">
+    <strong>access(container, key)</strong>
+  </p>
+  <div class="docstring"><p>Receives the element being accessed and the access item.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/access.ex#L19" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Application.Behaviour.html b/docs/master/Application.Behaviour.html
new file mode 100644
index 000000000..4ab9367a7
--- /dev/null
+++ b/docs/master/Application.Behaviour.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Application.Behaviour</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Application.Behaviour
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module is a convenience to define application module callbacks.</p>
+
+<p>In Erlang/OTP, an application is a component that can be started
+and stopped as a unit, and which can be re-used in other systems
+as well.</p>
+
+<p>The first step to achieve this is to define an application specification.
+For example, if your application is named <code>:my_app</code>, an app specification
+should exist at <code>ebin/my_app.app</code>. This file is usually defined by
+build tools like Mix.</p>
+
+<p>Then, with the app specification in hands, we must also define an
+application module callback that controls how to start and stop
+such applications. This module is about defining such callbacks.</p>
+
+<p>There are two callbacks required to be implemented:</p>
+
+<ol>
+<li><p><code>start(type, args)</code> - It must return <code>{ :ok, pid }</code> or
+<code>{ :ok, pid, state }</code>, where <code>pid</code> is the process identifier
+of the supervisor tree root;</p></li>
+<li><p><code>stop(state)</code> receives the state returned by <code>start</code> and should
+do any necessary cleaning up. Notice that shutting down the supervisor
+is automatically handled by the VM;</p></li>
+</ol>
+
+<p>When using this module, it simply tags the module behaviour as
+<code>:application</code> and defines a default <code>stop/1</code> callback. The <code>start/2</code>
+still needs to be defined by the user.</p>
+
+<p>You can learn more about the <code>:application</code> module, the application
+specification and the application module callbacks below:</p>
+
+<p><a href="http://www.erlang.org/doc/man/application.html">http://www.erlang.org/doc/man/application.html</a>
+<a href="http://www.erlang.org/doc/design_principles/applications.html">http://www.erlang.org/doc/design_principles/applications.html</a>
+<a href="http://learnyousomeerlang.com/building-otp-applications">http://learnyousomeerlang.com/building-otp-applications</a></p>
+
+<h2>Example</h2>
+
+<pre><code>defmodule MyApp do
+  use Application.Behaviour
+
+  def start(_type, args) do
+    MyApp.Sup.start_link(args)
+  end
+end
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/application/behaviour.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ArgumentError.html b/docs/master/ArgumentError.html
new file mode 100644
index 000000000..49a78495c
--- /dev/null
+++ b/docs/master/ArgumentError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ArgumentError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ArgumentError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L2" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "argument error"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ArithmeticError.html b/docs/master/ArithmeticError.html
new file mode 100644
index 000000000..663386e98
--- /dev/null
+++ b/docs/master/ArithmeticError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ArithmeticError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ArithmeticError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L3" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "bad argument in arithmetic expression"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/BadArityError.html b/docs/master/BadArityError.html
new file mode 100644
index 000000000..4c320720b
--- /dev/null
+++ b/docs/master/BadArityError.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>BadArityError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        BadArityError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L42" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>function:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>args:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L43" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/BadFunctionError.html b/docs/master/BadFunctionError.html
new file mode 100644
index 000000000..f8127301b
--- /dev/null
+++ b/docs/master/BadFunctionError.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>BadFunctionError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        BadFunctionError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L24" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>actual:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L25" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Behaviour.html b/docs/master/Behaviour.html
new file mode 100644
index 000000000..9e6e839c2
--- /dev/null
+++ b/docs/master/Behaviour.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Behaviour</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Behaviour
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A convenience module for defining behaviours.
+Behaviours can be referenced by other modules
+in order to ensure they implement the proper
+callbacks.</p>
+
+<p>For example, you can specify the <code>URI.Parser</code>
+behaviour as follow:</p>
+
+<pre><code>defmodule URI.Parser do
+  use Behaviour
+
+  @doc &quot;Parses the given URL&quot;
+  defcallback parse(uri_info :: URI.Info.t) :: URI.Info.t
+
+  @doc &quot;Defines a default port&quot;
+  defcallback default_port() :: integer
+end
+</code></pre>
+
+<p>And then a specific module may use it as:</p>
+
+<pre><code>defmodule URI.HTTP do
+  @behaviour URI.Parser
+  def default_port(), do: 80
+  def parse(info), do: info
+end
+</code></pre>
+
+<p>In case the behaviour changes or URI.HTTP does
+not implement one of the callbacks, a warning
+will be raised.</p>
+
+<h2>Implementation</h2>
+
+<p>Behaviours since Erlang R15 must be defined via
+<code>@callback</code> attributes. <code>defcallback</code> is a simple
+mechanism that defines the <code>@callback</code> attribute
+according to the type specification and also allows
+docs and defines a custom function signature.</p>
+
+<p>The callbacks and their documentation can be retrieved
+via the <code>__behaviour__</code> callback function.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/behaviour.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#defcallback/1">defcallback/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="defcallback/1">
+    <strong>defcallback(fun)</strong>
+  </p>
+  <div class="docstring"><p>Defines a callback according to the given type specification.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/behaviour.ex#L48" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Chars.Atom.html b/docs/master/Binary.Chars.Atom.html
new file mode 100644
index 000000000..c710f0eba
--- /dev/null
+++ b/docs/master/Binary.Chars.Atom.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Chars.Atom</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Chars.Atom
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L22" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_binary/1">to_binary/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_binary/1">
+    <strong>to_binary(atom)</strong>
+  </p>
+  <div class="docstring"><p>Convert the atom literally to a binary, except
+<code>nil</code> which is converted to an empty string.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L27" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Chars.BitString.html b/docs/master/Binary.Chars.BitString.html
new file mode 100644
index 000000000..cfb1e897a
--- /dev/null
+++ b/docs/master/Binary.Chars.BitString.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Chars.BitString</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Chars.BitString
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L36" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_binary/1">to_binary/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_binary/1">
+    <strong>to_binary(thing)</strong>
+  </p>
+  <div class="docstring"><p>Simply returns the binary itself.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L40" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Chars.List.html b/docs/master/Binary.Chars.List.html
new file mode 100644
index 000000000..a80caa891
--- /dev/null
+++ b/docs/master/Binary.Chars.List.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Chars.List</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Chars.List
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L45" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_binary/1">to_binary/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_binary/1">
+    <strong>to_binary(thing)</strong>
+  </p>
+  <div class="docstring"><p>Consider the list is an iolist and converts it
+to a binary. This allows a list of binaries, or
+a charlist, or a mix of both, to be converted
+successfully.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; to_binary(&#39;foo&#39;)
+&quot;foo&quot;
+iex&gt; to_binary([&quot;foo&quot;, &#39;bar&#39;])
+&quot;foobar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L60" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Chars.Number.html b/docs/master/Binary.Chars.Number.html
new file mode 100644
index 000000000..dc7b5f3ee
--- /dev/null
+++ b/docs/master/Binary.Chars.Number.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Chars.Number</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Chars.Number
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L65" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_binary/1">to_binary/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_binary/1">
+    <strong>to_binary(thing)</strong>
+  </p>
+  <div class="docstring"><p>Simply converts the number (integer or a float) to a binary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L73" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Chars.html b/docs/master/Binary.Chars.html
new file mode 100644
index 000000000..5f69b91e7
--- /dev/null
+++ b/docs/master/Binary.Chars.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Chars</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Chars
+        
+          <small>protocol</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>The Binary.Chars protocol is responsible for
+converting a structure to a Binary (only if applicable).
+The only function required to be implemented is
+<code>to_binary</code> which does the conversion.</p>
+
+<p>The <code>to_binary</code> function automatically imported
+by Kernel invokes this protocol. String
+interpolation also invokes to_binary in its
+arguments. For example, <code>&quot;foo#{bar}&quot;</code> is the same
+as <code>&quot;foo&quot; &lt;&gt; to_binary(bar)</code>.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L3" target="_blank" class="view_source">Source</a>
+
+      
+        <h2 id="implementations">Implementations</h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Chars.Atom.html">Atom</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Chars.BitString.html">BitString</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Chars.List.html">List</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Chars.Number.html">Number</a>
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_binary/1">to_binary/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_binary/1">
+    <strong>to_binary(thing)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L19" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Inspect.Atom.html b/docs/master/Binary.Inspect.Atom.html
new file mode 100644
index 000000000..9382c5d8f
--- /dev/null
+++ b/docs/master/Binary.Inspect.Atom.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Atom</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Atom
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Represents the atom as an Elixir term. The atoms false, true
+and nil are simply quoted. Modules are properly represented
+as modules using the dot notation.</p>
+
+<p>Notice that in Elixir, all operators can be represented using
+literal atoms (<code>:+</code>, <code>:-</code>, etc).</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; inspect(:foo)
+&quot;:foo&quot;
+iex&gt; inspect(nil)
+&quot;nil&quot;
+iex&gt; inspect(Foo.Bar)
+&quot;Foo.Bar&quot;
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L103" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(atom, _)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L126" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Inspect.BitString.html b/docs/master/Binary.Inspect.BitString.html
new file mode 100644
index 000000000..55c6bc44f
--- /dev/null
+++ b/docs/master/Binary.Inspect.BitString.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.BitString</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.BitString
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Represents the string as itself escaping
+all necessary characters.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; inspect(&quot;bar&quot;)
+&quot;\&quot;bar\&quot;&quot;
+iex&gt; inspect(&quot;f\&quot;oo&quot;)
+&quot;\&quot;f\\\&quot;oo\&quot;&quot;
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L186" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(thing, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L202" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Inspect.Function.html b/docs/master/Binary.Inspect.Function.html
new file mode 100644
index 000000000..f7fecb2e8
--- /dev/null
+++ b/docs/master/Binary.Inspect.Function.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Function</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Function
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Inspect functions, when possible, in a literal form.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L423" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(function, _opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L428" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Inspect.HashDict.html b/docs/master/Binary.Inspect.HashDict.html
new file mode 100644
index 000000000..45714c212
--- /dev/null
+++ b/docs/master/Binary.Inspect.HashDict.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.HashDict</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.HashDict
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L591" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(dict, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L594" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Inspect.List.html b/docs/master/Binary.Inspect.List.html
new file mode 100644
index 000000000..2dbfd7f22
--- /dev/null
+++ b/docs/master/Binary.Inspect.List.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.List</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.List
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Represents a list checking if it can be printed or not.
+If so, a single-quoted representation is returned,
+otherwise the brackets syntax is used.</p>
+
+<p>Inspecting a list is conservative as it does not try
+to guess how the list is encoded. That said, <code>&#39;josé&#39;</code>
+will likely be inspected as <code>[106,111,115,195,169]</code>
+because we can&#39;t know if it is encoded in utf-8
+or iso-5569-1, which is common in Erlang libraries.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; inspect(&#39;bar&#39;)
+&quot;&#39;bar&#39;&quot;
+iex&gt; inspect([0|&#39;bar&#39;])
+&quot;[0,98,97,114]&quot;
+iex&gt; inspect([:foo,:bar])
+&quot;[:foo,:bar]&quot;
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L246" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(thing, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L271" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Inspect.Number.html b/docs/master/Binary.Inspect.Number.html
new file mode 100644
index 000000000..92bda1c0e
--- /dev/null
+++ b/docs/master/Binary.Inspect.Number.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Number</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Number
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Represents the number as a binary.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; inspect(1)
+&quot;1&quot;
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L376" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(thing, _)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L390" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Inspect.PID.html b/docs/master/Binary.Inspect.PID.html
new file mode 100644
index 000000000..5c62677c5
--- /dev/null
+++ b/docs/master/Binary.Inspect.PID.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.PID</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.PID
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Inspect PIDs</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L439" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(pid, _)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L442" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Inspect.Port.html b/docs/master/Binary.Inspect.Port.html
new file mode 100644
index 000000000..8bf1a9e73
--- /dev/null
+++ b/docs/master/Binary.Inspect.Port.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Port</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Port
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Inspect ports</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L447" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(port, _)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L450" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Inspect.Range.html b/docs/master/Binary.Inspect.Range.html
new file mode 100644
index 000000000..59c3c5764
--- /dev/null
+++ b/docs/master/Binary.Inspect.Range.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Range</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Range
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L64" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(arg1, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L67" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Inspect.Reference.html b/docs/master/Binary.Inspect.Reference.html
new file mode 100644
index 000000000..6f8d8f9f8
--- /dev/null
+++ b/docs/master/Binary.Inspect.Reference.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Reference</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Reference
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Inspect references</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L455" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(ref, _)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L458" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Inspect.Regex.html b/docs/master/Binary.Inspect.Regex.html
new file mode 100644
index 000000000..5c895099b
--- /dev/null
+++ b/docs/master/Binary.Inspect.Regex.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Regex</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Regex
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Represents the Regex using the <code>%r&quot;&quot;</code> syntax.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; inspect(%r/foo/m)
+&quot;%r\&quot;foo\&quot;m&quot;
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L403" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(regex, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L414" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Inspect.Tuple.html b/docs/master/Binary.Inspect.Tuple.html
new file mode 100644
index 000000000..0636b21a0
--- /dev/null
+++ b/docs/master/Binary.Inspect.Tuple.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Tuple</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Tuple
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Inspect tuples. If the tuple represents a record,
+it shows it nicely formatted using the access syntax.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; inspect({1,2,3})
+&quot;{1,2,3}&quot;
+iex&gt; inspect(ArgumentError.new)
+&quot;ArgumentError[message: \&quot;argument error\&quot;]&quot;
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L308" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(tuple, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L324" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Binary.Inspect.html b/docs/master/Binary.Inspect.html
new file mode 100644
index 000000000..4ad33b504
--- /dev/null
+++ b/docs/master/Binary.Inspect.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect
+        
+          <small>protocol</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>The <code>Binary.Inspect</code> protocol is responsible for
+converting any structure to a binary for textual
+representation. All basic data structures
+(tuple, list, function, pid, etc) implement the
+inspect protocol. Other structures are advised to
+implement the protocol in order to provide pretty
+printing.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L3" target="_blank" class="view_source">Source</a>
+
+      
+        <h2 id="implementations">Implementations</h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.Atom.html">Atom</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.BitString.html">BitString</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.Function.html">Function</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.HashDict.html">HashDict</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.List.html">List</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.Number.html">Number</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.PID.html">PID</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.Port.html">Port</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.Range.html">Range</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.Reference.html">Reference</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.Regex.html">Regex</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.Tuple.html">Tuple</a>
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(thing, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L14" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Bitwise.html b/docs/master/Bitwise.html
new file mode 100644
index 000000000..5b34f2b9f
--- /dev/null
+++ b/docs/master/Bitwise.html
@@ -0,0 +1,270 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Bitwise</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Bitwise
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module provide macros and operators for bitwise operators.
+These macros can be used in guards.</p>
+
+<p>The easiest way to use is to simply import them into
+your module:</p>
+
+<pre><code>iex&gt; use Bitwise
+iex&gt; bnot 1
+-2
+iex&gt; 1 &amp;&amp;&amp; 1
+1
+</code></pre>
+
+<p>You can select to include only or skip operators by passing options:</p>
+
+<pre><code>iex&gt; use Bitwise, only_operators: true
+...&gt; 1 &amp;&amp;&amp; 1
+1
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#&amp;&amp;&amp;/2">&amp;&amp;&amp;/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&lt;&lt;&lt;/2">&lt;&lt;&lt;/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&gt;&gt;&gt;/2">&gt;&gt;&gt;/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#^^^/2">^^^/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__using__/1">__using__/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#band/2">band/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bnot/1">bnot/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bor/2">bor/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bsl/2">bsl/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bsr/2">bsr/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bxor/2">bxor/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#|||/2">|||/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#~~~/1">~~~/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="&amp;&amp;&amp;/2">
+    <strong>left &amp;&amp;&amp; right</strong>
+  </p>
+  <div class="docstring"><p>Bitwise and as operator.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L69" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&lt;&lt;&lt;/2">
+    <strong>left &lt;&lt;&lt; right</strong>
+  </p>
+  <div class="docstring"><p>Arithmetic bitshift left as operator.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L111" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&gt;&gt;&gt;/2">
+    <strong>left &gt;&gt;&gt; right</strong>
+  </p>
+  <div class="docstring"><p>Arithmetic bitshift right as operator.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L125" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="^^^/2">
+    <strong>left ^^^ right</strong>
+  </p>
+  <div class="docstring"><p>Bitwise xor as operator.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L97" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__using__/1">
+    <strong>__using__(options)</strong>
+  </p>
+  <div class="docstring"><p>Allow a developer to use this module in their programs with
+the following options:</p>
+
+<ul>
+<li><code>:only_operators</code> - Include only operators;</li>
+<li><code>:skip_operators</code> - Skip operators;</li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L31" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="band/2">
+    <strong>band(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Bitwise and.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L62" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bnot/1">
+    <strong>bnot(expr)</strong>
+  </p>
+  <div class="docstring"><p>Bitwise not.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L48" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bor/2">
+    <strong>bor(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Bitwise or.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L76" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bsl/2">
+    <strong>bsl(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Arithmetic bitshift left.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bsr/2">
+    <strong>bsr(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Arithmetic bitshift right.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L118" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bxor/2">
+    <strong>bxor(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Bitwise xor.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L90" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="|||/2">
+    <strong>left ||| right</strong>
+  </p>
+  <div class="docstring"><p>Bitwise or as operator.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L83" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="~~~/1">
+    <strong>~~~(expr)</strong>
+  </p>
+  <div class="docstring"><p>Bitwise not as operator.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L55" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/CaseClauseError.html b/docs/master/CaseClauseError.html
new file mode 100644
index 000000000..107b112ee
--- /dev/null
+++ b/docs/master/CaseClauseError.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>CaseClauseError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        CaseClauseError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L36" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>actual:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L37" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Code.LoadError.html b/docs/master/Code.LoadError.html
new file mode 100644
index 000000000..4c1e3a436
--- /dev/null
+++ b/docs/master/Code.LoadError.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Code.LoadError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Code.LoadError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L2" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>file:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L3" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Code.html b/docs/master/Code.html
new file mode 100644
index 000000000..dabb01cbd
--- /dev/null
+++ b/docs/master/Code.html
@@ -0,0 +1,506 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Code</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Code
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>The Code module is responsible to manage code compilation,
+code evaluation and code loading.</p>
+
+<p>It complements (Erlang&#39;s code module)<a href="(www.erlang.org/doc/man/code.html)">1</a> to add behavior
+which is specific to Elixir.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#append_path/1">append_path/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compile_quoted/2">compile_quoted/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compile_string/2">compile_string/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compiler_options/0">compiler_options/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compiler_options/1">compiler_options/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete_path/1">delete_path/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ensure_compiled/1">ensure_compiled/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ensure_compiled?/1">ensure_compiled?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ensure_loaded/1">ensure_loaded/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ensure_loaded?/1">ensure_loaded?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#eval_quoted/3">eval_quoted/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#eval_string/3">eval_string/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#load_file/2">load_file/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#loaded_files/0">loaded_files/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#prepend_path/1">prepend_path/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#require_file/2">require_file/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#string_to_ast/2">string_to_ast/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#string_to_ast!/2">string_to_ast!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unload_files/1">unload_files/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="append_path/1">
+    <strong>append_path(path)</strong>
+  </p>
+  <div class="docstring"><p>Appends a path to Erlang VM code path.
+The path is expanded with <code>Path.expand</code> before added.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L40" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compile_quoted/2">
+    <strong>compile_quoted(quoted, file // &quot;nofile&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Compiles the quoted expression and returns a list of tuples where
+the first element is the module name and the second one is its
+binary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L283" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compile_string/2">
+    <strong>compile_string(string, file // &quot;nofile&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Compiles the given string and returns a list of tuples where
+the first element is the module name and the second one is its
+binary.</p>
+
+<p>For compiling many files at once, check <code>Kernel.ParallelCompiler</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L274" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compiler_options/0">
+    <strong>compiler_options()</strong>
+  </p>
+  <div class="docstring"><p>Loads the compilation options from the code server.
+Check compiler_options/1 for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L244" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compiler_options/1">
+    <strong>compiler_options(opts)</strong>
+  </p>
+  <div class="docstring"><p>Sets compilation options. Those options are global
+since they are stored by Elixir&#39;s Code Server.</p>
+
+<p>Available options are:</p>
+
+<ul>
+<li>docs       - when true, retain documentation in the compiled module.
+           True by default;</li>
+<li>debug_info - when true, retain debug information in the compiled module.
+           This allows a developer to reconstruct the original source
+           code, for such reasons, false by default;</li>
+<li>ignore<em>module</em>conflict - when true, override modules that were already defined
+                       without raising errors, false by default;</li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L263" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete_path/1">
+    <strong>delete_path(path)</strong>
+  </p>
+  <div class="docstring"><p>Deletes a path from Erlang VM code path.
+The path is expanded with <code>Path.expand</code> before deleted.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L56" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ensure_compiled/1">
+    <strong>ensure_compiled(module)</strong>
+  </p>
+  <div class="docstring"><p>Ensures the given module is compiled and loaded. If the module
+is already loaded, it works as no-op. If the module was not
+loaded yet, it checks if it needs to be compiled first and just
+then tries to load it.</p>
+
+<p>If it succeeds loading the module anyhow, it returns
+<code>{ :module, module }</code>. If not, returns <code>{ :error, reason }</code> with
+the error reason.</p>
+
+<p>Check <code>ensure_loaded/1</code> for more information on module loading
+and when to use <code>ensure_loaded/1</code> or <code>ensure_compiled/1</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L350" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ensure_compiled?/1">
+    <strong>ensure_compiled?(module)</strong>
+  </p>
+  <div class="docstring"><p>Similar to <code>ensure_compiled/1</code>, but returns a boolean in case
+it could be ensured or not.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L371" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ensure_loaded/1">
+    <strong>ensure_loaded(module)</strong>
+  </p>
+  <div class="docstring"><p>Ensures the given module is loaded. If the module is already
+loaded, it works as no-op. If the module was not loaded yet,
+it tries to load it.</p>
+
+<p>If it succeeds loading the module anyhow, it returns
+<code>{ :module, module }</code>. If not, returns <code>{ :error, reason }</code> with
+the error reason.</p>
+
+<h2>Code loading on the Erlang VM</h2>
+
+<p>Erlang has two modes to load code: interactive and embedded.</p>
+
+<p>By default, the Erlang VM runs on interactive mode, where modules
+are loaded as needed. In embedded mode the opposite happens, as all
+modules need to be loaded upfront or explicitly.</p>
+
+<p>Therefore, this function is useful to check if a module is loaded
+before using it and react accordingly. For example, the <code>URI</code> module
+uses this function to check if a specific parser exists for a given
+URI scheme.</p>
+
+<h2>Code.ensure_compiled</h2>
+
+<p>Elixir also contains an <code>ensure_compiled/1</code> function that is a
+superset of <code>ensure_loaded/1</code>.</p>
+
+<p>Since Elixir&#39;s compilation happens in parallel, in some situations
+you may need to use a module but it was not compiled yet, therefore
+it can&#39;t even be loaded.</p>
+
+<p><code>ensure_compiled/1</code> puts a halt in the current process until the
+module we are depending on is available.</p>
+
+<p>In most of the cases, <code>ensure_loaded</code> is enough. <code>ensure_compiled</code>
+must be used just in same rare conditions, usually involving macros
+that needs to invoke a module for callback information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L325" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ensure_loaded?/1">
+    <strong>ensure_loaded?(module)</strong>
+  </p>
+  <div class="docstring"><p>Similar to <code>ensure_loaded/1</code>, but returns a boolean in case
+it could be ensured or not.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L333" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="eval_quoted/3">
+    <strong>eval_quoted(quoted, binding // [], opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Evaluates the quoted contents.</p>
+
+<p>This function accepts a list of environment options.
+Check <code>Code.eval_string</code> for more information.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; contents = quote(hygiene: [vars: false], do: a + b)
+...&gt; Code.eval_quoted(contents, [a: 1, b: 2], file: __ENV__.file, line: __ENV__.line)
+{ 3, [ {:a, 1}, {:b, 2} ] }
+</code></pre>
+
+<p>For convenience, you can my pass <code>__ENV__</code> as argument and
+all options will be automatically extracted from the environment:</p>
+
+<pre><code>iex&gt; contents = quote(hygiene: [vars: false], do: a + b)
+...&gt; Code.eval_quoted(contents, [a: 1, b: 2], __ENV__)
+{ 3, [ {:a, 1}, {:b, 2} ] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L130" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="eval_string/3">
+    <strong>eval_string(string, binding // [], opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Evaluates the contents given by string. The second argument is the
+binding (which should be a keyword) followed by a keyword list of
+environment options. Those options can be:</p>
+
+<ul>
+<li><code>:file</code> - the file to be considered in the evaluation</li>
+<li><code>:line</code> - the line the script starts</li>
+<li><code>:delegate_locals_to</code> - delegate local calls to the given module,
+the default is to not delegate</li>
+</ul>
+
+<p>Besides, the following scope values can be configured:</p>
+
+<ul>
+<li><code>:aliases</code> - a list of tuples with the alias and its target</li>
+<li><code>:requires</code> - a list of modules required</li>
+<li><code>:functions</code> - a list of tuples where the first element is a module
+and the second a list of imported function names and arity</li>
+<li><code>:macros</code> - a list of tuples where the first element is a module
+and the second a list of imported macro names and arity</li>
+</ul>
+
+<p>Notice that setting any ov the values above overrides Elixir default
+values. For example, setting <code>:requires</code> to <code>[]</code>, will no longer
+automatically required the <code>Kernel</code> module, in the same way setting
+<code>:macros</code> will no longer auto-import <code>Kernel</code> macros as <code>if</code>, <code>case</code>,
+etc.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Code.eval_string(&quot;a + b&quot;, [a: 1, b: 2], file: __ENV__.file, line: __ENV__.line)
+{ 3, [ {:a, 1}, {:b, 2} ] }
+</code></pre>
+
+<p>For convenience, you can my pass <code>__ENV__</code> as argument and
+all imports, requires and aliases will be automatically carried
+over:</p>
+
+<pre><code>iex&gt; Code.eval_string(&quot;a + b&quot;, [a: 1, b: 2], __ENV__)
+{ 3, [ {:a, 1}, {:b, 2} ] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L98" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="load_file/2">
+    <strong>load_file(file, relative_to // nil)</strong>
+  </p>
+  <div class="docstring"><p>Loads the given <code>file</code>. Accepts <code>relative_to</code> as an argument
+to tell where the file is located. If the file was already
+required/loaded, loads it again. It returns all the modules
+defined in the file.</p>
+
+<p>Notice that if <code>load_file</code> is invoked by different processes
+concurrently, the target file will be invoked concurrently
+in many times. I.e. if <code>load_file</code> is called N times with
+a given file, the given file will be loaded N times. Check
+<code>require_file</code> if you don&#39;t want a file to be loaded concurrently.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L204" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="loaded_files/0">
+    <strong>loaded_files()</strong>
+  </p>
+  <div class="docstring"><p>Returns all the loaded files.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="prepend_path/1">
+    <strong>prepend_path(path)</strong>
+  </p>
+  <div class="docstring"><p>Prepends a path to Erlang VM code path.
+The path is expanded with <code>Path.expand</code> before added.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L48" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="require_file/2">
+    <strong>require_file(file, relative_to // nil)</strong>
+  </p>
+  <div class="docstring"><p>Requires the given <code>file</code>. Accepts <code>relative_to</code> as an argument to tell where
+the file is located. It returns all the modules defined in the file. If the
+file was already required/loaded, doesn&#39;t do anything and returns nil.</p>
+
+<p>Notice that if <code>require_file</code> is invoked by different processes concurrently,
+the first process to invoke <code>require_file</code> acquires a lock and the remaining
+ones will block until the file is available. I.e. if <code>require_file</code> is called
+N times with a given file, it will be loaded only once. The first process to
+call <code>require_file</code> will get the list of loaded modules, others will get nil.</p>
+
+<p>Check <code>load_file</code> if you want a file to be loaded concurrently.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L225" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="string_to_ast/2">
+    <strong>string_to_ast(string, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Converts the given string to AST. It returns <code>{ :ok, ast }</code>
+if it succeeds, <code>{ :error, { line, error, token } }</code> otherwise.</p>
+
+<h2>Options</h2>
+
+<ul>
+<li><p><code>:file</code> - The filename to be used in stacktraces
+and the file reported in the <strong>ENV</strong> variable.</p></li>
+<li><p><code>:line</code> - The line reported in the <strong>ENV</strong> variable.</p></li>
+<li><p><code>:existing_atoms_only</code> - When true, raises an error
+when non-existing atoms are found by the tokenizer.</p></li>
+</ul>
+
+<h2>Macro.to_binary/1</h2>
+
+<p>The opposite of converting a string to its AST is
+<code>Macro.to_binary</code>, which converts a AST to a binary
+representation.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L162" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="string_to_ast!/2">
+    <strong>string_to_ast!(string, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Converts the given string to AST. It returns the ast if it succeeds,
+raises an exception otherwise. The exception is a TokenMissingError
+in case a token is missing (usually because the expression is incomplete),
+SyntaxError otherwise.</p>
+
+<p>Check <code>Code.string_to_ast/2</code> for options information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L181" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unload_files/1">
+    <strong>unload_files(files)</strong>
+  </p>
+  <div class="docstring"><p>Removes the given files from the loaded files list.
+The modules defined in the file are not removed,
+calling this function only removes it from the list,
+allowing it to be required again.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L32" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/CompileError.html b/docs/master/CompileError.html
new file mode 100644
index 000000000..d65ff2d4f
--- /dev/null
+++ b/docs/master/CompileError.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>CompileError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        CompileError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L18" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>file:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>line:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>description:</strong> "compile error"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L19" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Dict.html b/docs/master/Dict.html
new file mode 100644
index 000000000..6e3b63a6b
--- /dev/null
+++ b/docs/master/Dict.html
@@ -0,0 +1,899 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dict</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dict
+        
+          <small>behaviour</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module specifies the Dict API expected to be
+implemented by different dictionaries. It also provides
+functions that redirect to the underlying Dict, allowing
+a developer to work with different Dict implementations
+using one API.</p>
+
+<p>To create a new dict, use the <code>new</code> functions defined
+by each dict type:</p>
+
+<pre><code>HashDict.new  #=&gt; creates an empty HashDict
+</code></pre>
+
+<p>For simplicity&#39;s sake, in the examples below everytime
+<code>new</code> is used, it implies one of the module-specific
+calls like above. Likewise, when the result of a function
+invocation is shown in the form <code>[a: 1, b: 2]</code>, it implies
+that the returned value is actually of the same dict type
+as the input one.</p>
+
+<h2>Protocols</h2>
+
+<p>Besides implementing the functions in this module, all
+dictionaries are also required to implement the <code>Access</code>
+protocol:</p>
+
+<pre><code>iex&gt; dict = HashDict.new
+...&gt; dict = Dict.put(dict, :hello, :world)
+...&gt; dict[:hello]
+:world
+</code></pre>
+
+<p>And also the <code>Enumerable</code> protocol, allowing one to write:</p>
+
+<pre><code>Enum.each(dict, fn ({ k, v }) -&gt;
+  IO.puts &quot;#{k}: #{v}&quot;
+end)
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#delete/2">delete/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#drop/2">drop/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#empty/1">empty/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#equal?/2">equal?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch/2">fetch/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch!/2">fetch!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/3">get/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#has_key?/2">has_key?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keys/1">keys/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#merge/2">merge/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#merge/3">merge/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#pop/3">pop/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put/3">put/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_new/3">put_new/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#size/1">size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/2">split/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#take/2">take/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_list/1">to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/3">update/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/4">update/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#values/1">values/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <h2 id="callbacks_summary">Callbacks summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#values/1">values/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/4">update/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/3">update/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_list/1">to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#take/2">take/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/2">split/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#size/1">size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_new/3">put_new/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put/3">put/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#pop/3">pop/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#pop/2">pop/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#merge/3">merge/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#merge/2">merge/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keys/1">keys/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#has_key?/2">has_key?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/3">get/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/2">get/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#equal?/2">equal?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#empty/1">empty/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#drop/2">drop/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete/2">delete/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="delete/2">
+    <strong>delete(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Removes the entry stored under the given key from <code>dict</code>.
+If <code>dict</code> does not contain <code>key</code>, returns the dictionary unchanged.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; d = Dict.delete(d, :a)
+...&gt; Dict.get(d, :a)
+nil
+
+iex&gt; d = HashDict.new([b: 2])
+...&gt; Dict.delete(d, :a) == d
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L254" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="drop/2">
+    <strong>drop(dict, keys)</strong>
+  </p>
+  <div class="docstring"><p>Returns a new dict where the the given <code>keys</code> a removed from <code>dict</code>.
+Any non-member keys are ignored.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; d = Dict.drop(d, [:a, :c, :d])
+...&gt; Dict.to_list(d)
+[b: 2]
+
+iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; d = Dict.drop(d, [:c, :d])
+...&gt; Dict.to_list(d)
+[a: 1, b: 2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L407" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="empty/1">
+    <strong>empty(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns an empty dict of the same type as <code>dict</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L437" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="equal?/2">
+    <strong>equal?(a, b)</strong>
+  </p>
+  <div class="docstring"><p>Check if two dicts are equal, if the dicts are of different types they&#39;re
+first converted to lists.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; a = HashDict.new(a: 2, b: 3, f: 5, c: 123)
+...&gt; b = ListDict.new(a: 2, b: 3, f: 5, c: 123)
+...&gt; Dict.equal?(a, b)
+true
+
+iex&gt; a = HashDict.new(a: 2, b: 3, f: 5, c: 123)
+...&gt; b = []
+...&gt; Dict.equal?(a, b)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L459" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch/2">
+    <strong>fetch(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Returns the <code>{ :ok, value }</code> associated with <code>key</code> in <code>dict</code>.
+If <code>dict</code> does not contain <code>key</code>, returns <code>:error</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1])
+iex&gt; Dict.fetch(d, :a)
+{ :ok, 1 }
+iex&gt; Dict.fetch(d, :b)
+:error
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L182" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch!/2">
+    <strong>fetch!(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value associated with <code>key</code> in <code>dict</code>. If <code>dict</code> does not
+contain <code>key</code>, it raises <code>KeyError</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1])
+iex&gt; Dict.fetch!(d, :a)
+1
+iex&gt; Dict.fetch!(d, :b)
+** (KeyError) key not found: :b
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L200" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/3">
+    <strong>get(dict, key, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value associated with <code>key</code> in <code>dict</code>. If <code>dict</code> does not
+contain <code>key</code>, returns <code>default</code> (or nil if not provided).</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1])
+iex&gt; Dict.get(d, :a)
+1
+iex&gt; Dict.get(d, :b)
+nil
+iex&gt; Dict.get(d, :b, 3)
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L159" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="has_key?/2">
+    <strong>has_key?(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Returns whether the given key exists in the given dict.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1])
+iex&gt; Dict.has_key?(d, :a)
+true
+iex&gt; Dict.has_key?(d, :b)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L140" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keys/1">
+    <strong>keys(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list containing all dict&#39;s keys.
+The keys are not guaranteed to be sorted, unless
+the underlying dict implementation defines so.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; Enum.sort(Dict.keys(d))
+[:a,:b]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L93" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="merge/2">
+    <strong>merge(dict, enum)</strong>
+  </p>
+  <div class="docstring"><p>Merges the given enum into the dict. In case one of the enum entries
+alread exist in the dict, it is given higher preference.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d1 = HashDict.new([a: 1, b: 2])
+...&gt; d2 = HashDict.new([a: 3, d: 4])
+...&gt; d = Dict.merge(d1, d2)
+...&gt; [a: Dict.get(d, :a), b: Dict.get(d, :b), d: Dict.get(d, :d)]
+[a: 3, b: 2, d: 4]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L272" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="merge/3">
+    <strong>merge(dict, enum, fun)</strong>
+  </p>
+  <div class="docstring"><p>Merges the given enum into the dict. In case one of the enum entries
+alread exist in the dict, the given function is invoked to solve
+conflicts.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d1 = HashDict.new([a: 1, b: 2])
+...&gt; d2 = HashDict.new([a: 3, d: 4])
+...&gt; d = Dict.merge(d1, d2, fn(_k, v1, v2) -&gt;
+...&gt;   v1 + v2
+...&gt; end)
+...&gt; [a: Dict.get(d, :a), b: Dict.get(d, :b), d: Dict.get(d, :d)]
+[a: 4, b: 2, d: 4]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L293" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="pop/3">
+    <strong>pop(dict, key, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value associated with <code>key</code> in <code>dict</code> as
+well as the <code>dict</code> without <code>key</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; dict = HashDict.new [a: 1]
+...&gt; {v, d} = Dict.pop dict, :a
+...&gt; {v, Enum.sort(d)}
+{1,[]}
+
+iex&gt; dict = HashDict.new [a: 1]
+...&gt; {v, d} = Dict.pop dict, :b
+...&gt; {v, Enum.sort(d)}
+{nil,[a: 1]}
+
+iex&gt; dict = HashDict.new [a: 1]
+...&gt; {v, d} = Dict.pop dict, :b, 3
+...&gt; {v, Enum.sort(d)}
+{3,[a: 1]}
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L320" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put/3">
+    <strong>put(dict, key, val)</strong>
+  </p>
+  <div class="docstring"><p>Stores the given <code>value</code> under <code>key</code> in <code>dict</code>.
+If <code>dict</code> already has <code>key</code>, the stored value is replaced by the new one.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; d = Dict.put(d, :a, 3)
+...&gt; Dict.get(d, :a)
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L217" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_new/3">
+    <strong>put_new(dict, key, val)</strong>
+  </p>
+  <div class="docstring"><p>Puts the given <code>value</code> under <code>key</code> in <code>dict</code> unless <code>key</code> already exists.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; d = Dict.put_new(d, :a, 3)
+...&gt; Dict.get(d, :a)
+1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L233" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="size/1">
+    <strong>size(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns the number of elements in <code>dict</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; Dict.size(d)
+2
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L123" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/2">
+    <strong>split(dict, keys)</strong>
+  </p>
+  <div class="docstring"><p>Returns a tuple of two dicts, where the first dict contains only
+entries from <code>dict</code> with keys in <code>keys</code>, and the second dict
+contains only entries from <code>dict</code> with keys not in <code>keys</code></p>
+
+<p>Any non-member keys are ignored.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; { d1, d2 } = Dict.split(d, [:a, :c])
+...&gt; { Dict.to_list(d1), Dict.to_list(d2) }
+{ [a: 1], [b: 2] }
+
+iex&gt; d = HashDict.new([])
+...&gt; { d1, d2 } = Dict.split(d, [:a, :c])
+...&gt; { Dict.to_list(d1), Dict.to_list(d2) }
+{ [], [] }
+
+iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; { d1, d2 } = Dict.split(d, [:a, :b, :c])
+...&gt; { Dict.to_list(d1), Dict.to_list(d2) }
+{ [a: 1, b: 2], [] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L385" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="take/2">
+    <strong>take(dict, keys)</strong>
+  </p>
+  <div class="docstring"><p>Returns a new dict where only the keys in <code>keys</code> from <code>dict</code> are
+included. Any non-member keys are ignored.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt;
+...&gt; d = Dict.take(d, [:a, :c, :d])
+...&gt; Dict.to_list(d)
+[a: 1]
+...&gt;
+...&gt; d = Dict.take(d, [:c, :d])
+...&gt; Dict.to_list(d)
+[]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L429" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_list/1">
+    <strong>to_list(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of key-value pairs stored in <code>dict</code>.
+No particular order is enforced.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L480" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/3">
+    <strong>update(dict, key, fun)</strong>
+  </p>
+  <div class="docstring"><p>Update a value in <code>dict</code> by calling <code>fun</code> on the value to get a new
+value. An exception is generated if <code>key</code> is not present in the dict.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; d = Dict.update(d, :a, fn(val) -&gt; -val end)
+...&gt; Dict.get(d, :a)
+-1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L337" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/4">
+    <strong>update(dict, key, initial, fun)</strong>
+  </p>
+  <div class="docstring"><p>Update a value in <code>dict</code> by calling <code>fun</code> on the value to get a new value. If
+<code>key</code> is not present in <code>dict</code> then <code>initial</code> will be stored as the first
+value.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; d = Dict.update(d, :c, 3, fn(val) -&gt; -val end)
+...&gt; Dict.get(d, :c)
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L355" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="values/1">
+    <strong>values(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list containing all dict&#39;s values.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; Enum.sort(Dict.values(d))
+[1,2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L108" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+        <div id="callbacks_details" class="details_list">
+          <h2>Callbacks</h2>
+          <div class="detail">
+  <p class="signature" id="values/1">
+    <strong>values(t())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L67" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/4">
+    <strong>update(t(), key(), value(), (value() -&gt; value()))</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L66" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/3">
+    <strong>update(t(), key(), (value() -&gt; value()))</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L65" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_list/1">
+    <strong>to_list(t())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L64" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="take/2">
+    <strong>take(t(), keys())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L63" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/2">
+    <strong>split(t(), keys())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L62" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="size/1">
+    <strong>size(t())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L61" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_new/3">
+    <strong>put_new(t(), key(), value())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L60" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put/3">
+    <strong>put(t(), key(), value())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L59" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="pop/3">
+    <strong>pop(t(), key(), value())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L58" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="pop/2">
+    <strong>pop(t(), key())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L57" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="merge/3">
+    <strong>merge(t(), t(), (key(), value(), value() -&gt; value()))</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L56" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="merge/2">
+    <strong>merge(t(), t())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L55" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keys/1">
+    <strong>keys(t())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L54" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="has_key?/2">
+    <strong>has_key?(t(), key())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/3">
+    <strong>get(t(), key(), value())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L52" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/2">
+    <strong>get(t(), key())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L51" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="equal?/2">
+    <strong>equal?(t(), t())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L50" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="empty/1">
+    <strong>empty(t())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="drop/2">
+    <strong>drop(t(), keys())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L48" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete/2">
+    <strong>delete(t(), key())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L47" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/EEx.AssignsEngine.html b/docs/master/EEx.AssignsEngine.html
new file mode 100644
index 000000000..285dfcb43
--- /dev/null
+++ b/docs/master/EEx.AssignsEngine.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>EEx.AssignsEngine</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        EEx.AssignsEngine
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>An abstract engine that, when used with the
+<code>TransformerEngine</code>, allows a developer to access
+assigns using <code>@</code> as syntax.</p>
+
+<p>This engine is included by default on the SmartEngine.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule MyEngine do
+  use EEx.TransformerEngine
+  use EEx.AssignsEngine
+end
+
+EEx.eval_string(&quot;&lt;%= @foo %&gt;&quot;, assigns: [foo: 1])
+#=&gt; 1
+</code></pre>
+
+<p>In the example above, we can access the value <code>foo</code> under
+the binding <code>assigns</code> using <code>@foo</code>. This is useful when
+a template, after compiled, may receive different assigns
+and the developer don&#39;t want to recompile it for each
+variable set.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/smart_engine.ex#L47" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/EEx.Engine.html b/docs/master/EEx.Engine.html
new file mode 100644
index 000000000..547eab5b7
--- /dev/null
+++ b/docs/master/EEx.Engine.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>EEx.Engine</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        EEx.Engine
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This is the basic EEx engine that ships with Elixir.
+An engine needs to implement two functions:</p>
+
+<ul>
+<li><p><code>handle_text(buffer, text)</code> - it receives the buffer,
+the text and must return a new quoted expression;</p></li>
+<li><p><code>handle_expr(buffer, marker, expr)</code> - it receives the buffer,
+the marker, the expr and must return a new quoted expression;</p></li>
+</ul>
+
+<p>The marker is what follows exactly after <code>&lt;%</code>. For example,
+  <code>&lt;% foo %&gt;</code> has an empty marker, but <code>&lt;%= foo %&gt;</code> has <code>&#39;=&#39;</code>
+  as marker. The allowed markers so far are:</p>
+
+<ul>
+<li><code>&#39;&#39;</code></li>
+<li><code>&#39;=&#39;</code></li>
+</ul>
+
+<p>Read <code>handle_expr/3</code> below for more information about the markers
+  implemented by default by this engine.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/engine.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#behaviour_info/1">behaviour_info/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#handle_expr/3">handle_expr/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#handle_text/2">handle_text/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="behaviour_info/1">
+    <strong>behaviour_info(atom1)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/engine.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="handle_expr/3">
+    <strong>handle_expr(buffer, list2, expr)</strong>
+  </p>
+  <div class="docstring"><p>Implements expressions according to the markers.</p>
+
+<pre><code>&lt;% Elixir expression - inline with output %&gt;
+&lt;%= Elixir expression - replace with result %&gt;
+</code></pre>
+
+<p>All other markers are not implemented by this engine.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/engine.ex#L38" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="handle_text/2">
+    <strong>handle_text(buffer, text)</strong>
+  </p>
+  <div class="docstring"><p>The default implementation simply concatenates text to the buffer.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/engine.ex#L26" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/EEx.SmartEngine.html b/docs/master/EEx.SmartEngine.html
new file mode 100644
index 000000000..e3ac71e79
--- /dev/null
+++ b/docs/master/EEx.SmartEngine.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>EEx.SmartEngine</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        EEx.SmartEngine
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>An engine meant for end-user usage that includes
+<code>AssignsEngine</code> and other conveniences. Read
+<code>EEx.AssignsEngine</code> for examples.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/smart_engine.ex#L88" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#handle_expr/3">handle_expr/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#handle_text/2">handle_text/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="handle_expr/3">
+    <strong>handle_expr(buffer, mark, expr)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/smart_engine.ex#L89" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="handle_text/2">
+    <strong>handle_text(buffer, text)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/smart_engine.ex#L89" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/EEx.SyntaxError.html b/docs/master/EEx.SyntaxError.html
new file mode 100644
index 000000000..c67a3b90d
--- /dev/null
+++ b/docs/master/EEx.SyntaxError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>EEx.SyntaxError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        EEx.SyntaxError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/EEx.TransformerEngine.html b/docs/master/EEx.TransformerEngine.html
new file mode 100644
index 000000000..f740a5ccd
--- /dev/null
+++ b/docs/master/EEx.TransformerEngine.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>EEx.TransformerEngine</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        EEx.TransformerEngine
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>An abstract engine that is meant to be used and
+built upon in other modules. This engine implements
+the <code>EEx.Engine</code> behavior and provides a <code>transform</code>
+overridable directive that allows a developer to
+customize the expression returned by the engine.</p>
+
+<p>Check <code>EEx.AssignsEngine</code> and <code>EEx.SmartEngine</code> for
+examples of using this module.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/smart_engine.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/EEx.html b/docs/master/EEx.html
new file mode 100644
index 000000000..435679b69
--- /dev/null
+++ b/docs/master/EEx.html
@@ -0,0 +1,285 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>EEx</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        EEx
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>EEx stands for Embedded Elixir. It allows you to embed
+Elixir code inside a string in a robust way:</p>
+
+<pre><code>EEx.eval_string &quot;foo &lt;%= bar %&gt;&quot;, [bar: &quot;baz&quot;]
+#=&gt; &quot;foo baz&quot;
+</code></pre>
+
+<h2>API</h2>
+
+<p>This module provides 3 main APIs for you to use:</p>
+
+<p>1) Evaluate a string (<code>eval_string</code>) or a file (<code>eval_file</code>)
+   directly. This is the simplest API to use but also the
+   slowest, since the code is evaluated and not compiled before;</p>
+
+<p>2) Define a function from a string (<code>function_from_string</code>)
+   or a file (<code>function_from_file</code>). This allows you to embed
+   the template as a function inside a module which will then
+   be compiled. This is the preferred API if you have access
+   to the template at compilation time;</p>
+
+<p>3) Compile a string (<code>compile_string</code>) or a file (<code>compile_file</code>)
+   into Elixir syntax tree. This is the API used by both functions
+   above and is available to you if you want to provide your own
+   ways of handling the compiled template.</p>
+
+<h2>Engine</h2>
+
+<p>EEx has the concept of engines which allows you to modify or
+transform the code extracted from the given string or file.</p>
+
+<p>By default, <code>EEx</code> uses the <code>EEx.SmartEngine</code> that provides some
+conveniences on top of the simple <code>EEx.Engine</code>.</p>
+
+<h3>Tags</h3>
+
+<p><code>EEx.SmartEngine</code> supports the following tags:</p>
+
+<pre><code>&lt;% Elixir expression - inline with output %&gt;
+&lt;%= Elixir expression - replace with result %&gt;
+&lt;%% EEx quotation - returns the contents inside %&gt;
+&lt;%# Comments - they are discarded from source %&gt;
+</code></pre>
+
+<p>All expressions that output something to the template
+<strong>must</strong> use the equals sign (<code>=</code>). Since everything in
+Elixir is a macro, there are no exceptions for this rule.
+For example, while some template languages would special-
+case <code>if</code> clauses, they are treated the same in EEx and
+also require <code>=</code> in order to have their result printed:</p>
+
+<pre><code>&lt;%= if true do %&gt;
+  It is obviously true
+&lt;% else %&gt;
+  This will never appear
+&lt;% end %&gt;
+</code></pre>
+
+<p>Notice that different engines may have different rules
+for each tag. Other tags may be added in future versions.</p>
+
+<h3>Macros</h3>
+
+<p><code>EEx.SmartEngine</code> also adds some macros to your template.
+An example is the <code>@</code> macro which allows easy data access
+in a template:</p>
+
+<pre><code>EEx.eval_string &quot;&lt;%= @foo %&gt;&quot;, assigns: [foo: 1]
+#=&gt; 1
+</code></pre>
+
+<p>In other words, &lt;%= @foo %&gt; is simply translated to:</p>
+
+<pre><code>&lt;%= Keyword.get assigns, :foo %&gt;
+</code></pre>
+
+<p>The assigns extension is useful when the number of variables
+required by the template is not specified at compilation time.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex.ex#L3" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#compile_file/2">compile_file/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compile_string/2">compile_string/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#eval_file/3">eval_file/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#eval_string/3">eval_string/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#function_from_file/5">function_from_file/5</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#function_from_string/5">function_from_string/5</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="compile_file/2">
+    <strong>compile_file(filename, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Get a <code>filename</code> and generate a quoted expression
+that can be evaluated by Elixir or compiled to a function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex.ex#L150" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compile_string/2">
+    <strong>compile_string(source, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Get a string <code>source</code> and generate a quoted expression
+that can be evaluated by Elixir or compiled to a function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex.ex#L142" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="eval_file/3">
+    <strong>eval_file(filename, bindings // [], options // [])</strong>
+  </p>
+  <div class="docstring"><p>Get a <code>filename</code> and evaluate the values using the <code>bindings</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code># sample.ex
+foo &lt;%= bar %&gt;
+
+# iex
+EEx.eval_file &quot;sample.ex&quot;, [bar: &quot;baz&quot;]
+#=&gt; &quot;foo baz&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex.ex#L182" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="eval_string/3">
+    <strong>eval_string(source, bindings // [], options // [])</strong>
+  </p>
+  <div class="docstring"><p>Get a string <code>source</code> and evaluate the values using the <code>bindings</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>EEx.eval_string &quot;foo &lt;%= bar %&gt;&quot;, [bar: &quot;baz&quot;]
+#=&gt; &quot;foo baz&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex.ex#L164" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="function_from_file/5">
+    <strong>function_from_file(kind, name, filename, args // [], options // [])</strong>
+  </p>
+  <div class="docstring"><p>Generates a function definition from the file contents.
+The kind (<code>:def</code> or <code>:defp</code>) must be given, the
+function name, its arguments and the compilation options.</p>
+
+<p>This function is useful in case you have templates but
+you want to precompile inside a module for speed.</p>
+
+<h2>Examples</h2>
+
+<pre><code># sample.eex
+&lt;%= a + b %&gt;
+
+# sample.ex
+defmodule Sample do
+  require EEx
+  EEx.function_from_file :def, :sample, &quot;sample.eex&quot;, [:a, :b]
+end
+
+# iex
+Sample.sample(1, 2) #=&gt; &quot;3&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex.ex#L127" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="function_from_string/5">
+    <strong>function_from_string(kind, name, source, args // [], options // [])</strong>
+  </p>
+  <div class="docstring"><p>Generates a function definition from the string.
+The kind (<code>:def</code> or <code>:defp</code>) must be given, the
+function name, its arguments and the compilation options.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Sample do
+  require EEx
+  EEx.function_from_string :def, :sample, &quot;&lt;%= a + b %&gt;&quot;, [:a, :b]
+end
+
+Sample.sample(1, 2) #=&gt; &quot;3&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex.ex#L95" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Enum.EmptyError.html b/docs/master/Enum.EmptyError.html
new file mode 100644
index 000000000..457d0a609
--- /dev/null
+++ b/docs/master/Enum.EmptyError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Enum.EmptyError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Enum.EmptyError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L90" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "empty error"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Enum.OutOfBoundsError.html b/docs/master/Enum.OutOfBoundsError.html
new file mode 100644
index 000000000..ab207a18b
--- /dev/null
+++ b/docs/master/Enum.OutOfBoundsError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Enum.OutOfBoundsError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Enum.OutOfBoundsError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L88" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "out of bounds error"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Enum.html b/docs/master/Enum.html
new file mode 100644
index 000000000..8eb4586d3
--- /dev/null
+++ b/docs/master/Enum.html
@@ -0,0 +1,976 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Enum</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Enum
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Provides a set of algorithms that enumerate over collections according to the
+<code>Enumerable</code> protocol. Most of the functions in this module have two
+flavours. If a given collection implements the mentioned protocol (like
+list, for instance), you can do:</p>
+
+<pre><code>Enum.map([1,2,3], fn(x) -&gt; x * 2 end)
+</code></pre>
+
+<p>Depending on the type of the collection, the user-provided function will
+accept a certain type of argument. For dicts, the argument is always a
+<code>{ key, value }</code> tuple.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L52" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#all?/2">all?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#any?/2">any?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#at/3">at/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#count/1">count/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#count/2">count/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#drop/2">drop/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#drop_while/2">drop_while/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#each/2">each/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#empty?/1">empty?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch/2">fetch/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch!/2">fetch!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#filter/2">filter/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#filter_map/3">filter_map/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#find/3">find/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#find_index/2">find_index/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#find_value/3">find_value/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#first/1">first/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#join/2">join/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#map/2">map/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#map_join/3">map_join/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#map_reduce/3">map_reduce/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#max/1">max/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#max/2">max/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#member?/2">member?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#min/1">min/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#min/2">min/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#partition/2">partition/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/3">reduce/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reverse/1">reverse/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#sort/1">sort/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#sort/2">sort/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/2">split/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split_while/2">split_while/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#take/2">take/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#take_while/2">take_while/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_list/1">to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#uniq/2">uniq/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#zip/2">zip/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="all?/2">
+    <strong>all?(collection, fun // fn x -&gt; x end)</strong>
+  </p>
+  <div class="docstring"><p>Invokes the given <code>fun</code> for each item in the <code>collection</code> and returns true if
+each invocation returns true as well, otherwise it short-circuits and returns
+false.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.all?([2,4,6], fn(x) -&gt; rem(x, 2) == 0 end)
+true
+
+iex&gt; Enum.all?([2,3,4], fn(x) -&gt; rem(x, 2) == 0 end)
+false
+</code></pre>
+
+<p>If no function is given, it defaults to checking if
+all items in the collection evaluate to true.</p>
+
+<pre><code>iex&gt; Enum.all?([1,2,3])
+true
+iex&gt; Enum.all?([1,nil,3])
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L138" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="any?/2">
+    <strong>any?(collection, fun // fn x -&gt; x end)</strong>
+  </p>
+  <div class="docstring"><p>Invokes the given <code>fun</code> for each item in the <code>collection</code> and returns true if
+at least one invocation returns true. Returns false otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.any?([2,4,6], fn(x) -&gt; rem(x, 2) == 1 end)
+false
+
+iex&gt; Enum.any?([2,3,4], fn(x) -&gt; rem(x, 2) == 1 end)
+true
+</code></pre>
+
+<p>If no function is given, it defaults to checking if
+at least one item in the collection evaluates to true.</p>
+
+<pre><code>iex&gt; Enum.any?([false,false,false])
+false
+iex&gt; Enum.any?([false,true,false])
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L176" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="at/3">
+    <strong>at(collection, n, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Finds the element at the given index (zero-based).
+Raises out of bounds error in case the given position
+is outside the range of the collection.</p>
+
+<p>Expects an ordered collection.</p>
+
+<p>## Examples</p>
+
+<pre><code>  iex&gt; Enum.at([2,4,6], 0)
+  2
+  iex&gt; Enum.at([2,4,6], 2)
+  6
+  iex&gt; Enum.at([2,4,6], 4)
+  nil
+  iex&gt; Enum.at([2,4,6], 4, :none)
+  :none
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L211" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="count/1">
+    <strong>count(collection)</strong>
+  </p>
+  <div class="docstring"><p>Returns the collection size.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.count([1,2,3])
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L99" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="count/2">
+    <strong>count(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Counts for how many items the function returns true.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L107" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="drop/2">
+    <strong>drop(collection, count)</strong>
+  </p>
+  <div class="docstring"><p>Drops the first <code>count</code> items from the collection.
+Expects an ordered collection.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.drop([1,2,3], 2)
+[3]
+iex&gt; Enum.drop([1,2,3], 10)
+[]
+iex&gt; Enum.drop([1,2,3], 0)
+[1,2,3]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L233" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="drop_while/2">
+    <strong>drop_while(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Drops items at the beginning of <code>collection</code> while <code>fun</code> returns true.
+Expects an ordered collection.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.drop_while([1,2,3,4,5], fn(x) -&gt; x &lt; 3 end)
+[3,4,5]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L260" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="each/2">
+    <strong>each(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Invokes the given <code>fun</code> for each item in the <code>collection</code>.
+Returns the <code>collection</code> itself. <code>fun</code> can take two parameters,
+in which case the second parameter will be the iteration index.</p>
+
+<h2>Examples</h2>
+
+<pre><code>Enum.each([&#39;some&#39;, &#39;example&#39;], fn(x) -&gt; IO.puts x end)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L282" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="empty?/1">
+    <strong>empty?(collection)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the collection is empty, otherwise false.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.empty?([])
+true
+iex&gt; Enum.empty?([1,2,3])
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L321" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch/2">
+    <strong>fetch(collection, n)</strong>
+  </p>
+  <div class="docstring"><p>Finds the element at the given index (zero-based).
+Returns <code>{ :ok, element }</code> if found, otherwise <code>:error</code>.</p>
+
+<p>Expects an ordered collection.</p>
+
+<p>## Examples</p>
+
+<pre><code>  iex&gt; Enum.fetch([2,4,6], 0)
+  { :ok, 2 }
+  iex&gt; Enum.fetch([2,4,6], 2)
+  { :ok, 6 }
+  iex&gt; Enum.fetch([2,4,6], 4)
+  :error
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L348" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch!/2">
+    <strong>fetch!(collection, n)</strong>
+  </p>
+  <div class="docstring"><p>Finds the element at the given index (zero-based).
+Raises out of bounds error in case the given position
+is outside the range of the collection.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.fetch!([2,4,6], 0)
+2
+
+iex&gt; Enum.fetch!([2,4,6], 2)
+6
+
+iex&gt; Enum.fetch!([2,4,6], 4)
+** (Enum.OutOfBoundsError) out of bounds error
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L384" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="filter/2">
+    <strong>filter(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Filters the collection, i.e. returns only those elements
+for which <code>fun</code> returns true.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.filter([1, 2, 3], fn(x) -&gt; rem(x, 2) == 0 end)
+[2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L402" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="filter_map/3">
+    <strong>filter_map(collection, filter, mapper)</strong>
+  </p>
+  <div class="docstring"><p>Filters the collection and maps its values in one pass.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.filter_map([1, 2, 3], fn(x) -&gt; rem(x, 2) == 0 end, &amp;1 * 2)
+[4]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L422" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="find/3">
+    <strong>find(collection, ifnone // nil, fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns the first item for which <code>fun</code> returns a truthy value. If no such
+item is found, returns <code>ifnone</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.find([2,4,6], fn(x) -&gt; rem(x, 2) == 1 end)
+nil
+
+iex&gt; Enum.find([2,4,6], 0, fn(x) -&gt; rem(x, 2) == 1 end)
+0
+
+iex&gt; Enum.find([2,3,4], fn(x) -&gt; rem(x, 2) == 1 end)
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L451" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="find_index/2">
+    <strong>find_index(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Similar to find, but returns the index (count starts with 0)
+of the item instead of the element itself.</p>
+
+<p>Expects an ordered collection.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.find_index([2,4,6], fn(x) -&gt; rem(x, 2) == 1 end)
+nil
+
+iex&gt; Enum.find_index([2,3,4], fn(x) -&gt; rem(x, 2) == 1 end)
+1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L512" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="find_value/3">
+    <strong>find_value(collection, ifnone // nil, fun)</strong>
+  </p>
+  <div class="docstring"><p>Similar to find, but returns the value of the function
+invocation instead of the element itself.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.find_value([2,4,6], fn(x) -&gt; rem(x, 2) == 1 end)
+nil
+
+iex&gt; Enum.find_value([2,3,4], fn(x) -&gt; rem(x, 2) == 1 end)
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L481" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="first/1">
+    <strong>first(collection)</strong>
+  </p>
+  <div class="docstring"><p>Returns the first item in the collection or nil otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.first([])
+nil
+iex&gt; Enum.first([1,2,3])
+1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L537" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="join/2">
+    <strong>join(collection, joiner // &quot;&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Joins the given <code>collection</code> according to <code>joiner</code>.
+Joiner can be either a binary or a list and the
+result will be of the same type as joiner. If
+joiner is not passed at all, it defaults to an
+empty binary.</p>
+
+<p>All items in the collection must be convertible
+to binary, otherwise an error is raised.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.join([1,2,3])
+&quot;123&quot;
+iex&gt; Enum.join([1,2,3], &quot; = &quot;)
+&quot;1 = 2 = 3&quot;
+iex&gt; Enum.join([1,2,3], &#39; = &#39;)
+&#39;1 = 2 = 3&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L570" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="map/2">
+    <strong>map(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns a new collection, where each item is the result
+of invoking <code>fun</code> on each corresponding item of <code>collection</code>.
+<code>fun</code> can take two parameters, in which case the second parameter
+will be the iteration index.</p>
+
+<p>For dicts, the function accepts a key-value tuple.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.map([1, 2, 3], fn(x) -&gt; x * 2 end)
+[2, 4, 6]
+
+iex&gt; Enum.map([a: 1, b: 2], fn({k, v}) -&gt; { k, -v } end)
+[a: -1, b: -2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L601" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="map_join/3">
+    <strong>map_join(collection, joiner // &quot;&quot;, mapper)</strong>
+  </p>
+  <div class="docstring"><p>Maps and joins the given <code>collection</code> in one pass.
+Joiner can be either a binary or a list and the
+result will be of the same type as joiner. If
+joiner is not passed at all, it defaults to an
+empty binary.</p>
+
+<p>All items in the collection must be convertible
+to binary, otherwise an error is raised.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.map_join([1,2,3], &amp;1 * 2)
+&quot;246&quot;
+iex&gt; Enum.map_join([1,2,3], &quot; = &quot;, &amp;1 * 2)
+&quot;2 = 4 = 6&quot;
+iex&gt; Enum.map_join([1,2,3], &#39; = &#39;, &amp;1 * 2)
+&#39;2 = 4 = 6&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L640" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="map_reduce/3">
+    <strong>map_reduce(collection, acc, fun)</strong>
+  </p>
+  <div class="docstring"><p>Invokes the given <code>fun</code> for each item in the <code>collection</code>
+while also keeping an accumulator. Returns a tuple where
+the first element is the mapped collection and the second
+one is the final accumulator.</p>
+
+<p>For dicts, the first tuple element has to be a { key, value }
+tuple itself.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.map_reduce([1, 2, 3], 0, fn(x, acc) -&gt; { x * 2, x + acc } end)
+{ [2, 4, 6], 6 }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L669" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="max/1">
+    <strong>max(collection)</strong>
+  </p>
+  <div class="docstring"><p>Returns the maximum value.
+Raises empty error in case the collection is empty.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.max([1,2,3])
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1004" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="max/2">
+    <strong>max(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns the maximum value.
+Raises empty error in case the collection is empty.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.max([&quot;a&quot;, &quot;aa&quot;, &quot;aaa&quot;], fn(x) -&gt; String.length(x) end)
+&quot;aaa&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1040" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="member?/2">
+    <strong>member?(collection, value)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the <code>value</code> exists within the <code>collection</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.member?(1..10, 5)
+true
+iex&gt; Enum.member?([:a, :b, :c], :d)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L85" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="min/1">
+    <strong>min(collection)</strong>
+  </p>
+  <div class="docstring"><p>Returns the manimum value.
+Raises empty error in case the collection is empty.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.min([1,2,3])
+1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1079" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="min/2">
+    <strong>min(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns the manimum value.
+Raises empty error in case the collection is empty.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.min([&quot;a&quot;, &quot;aa&quot;, &quot;aaa&quot;], fn(x) -&gt; String.length(x) end)
+&quot;a&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1119" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="partition/2">
+    <strong>partition(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Partitions <code>collection</code> into two where the first one contains elements
+for which <code>fun</code> returns a truthy value, and the second one -- for which <code>fun</code>
+returns false or nil.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.partition([1, 2, 3], fn(x) -&gt; rem(x, 2) == 0 end)
+{ [2], [1,3] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L689" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/3">
+    <strong>reduce(collection, acc, fun)</strong>
+  </p>
+  <div class="docstring"><p>Invokes <code>fun</code> for each element in the collection passing that element and the
+accumulator <code>acc</code> as arguments. <code>fun</code>&#39;s return value is stored in <code>acc</code>.
+Returns the accumulator.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.reduce([1, 2, 3], 0, fn(x, acc) -&gt; x + acc end)
+6
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L713" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reverse/1">
+    <strong>reverse(collection)</strong>
+  </p>
+  <div class="docstring"><p>Reverses the collection.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.reverse([1, 2, 3])
+[3, 2, 1]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L727" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="sort/1">
+    <strong>sort(collection)</strong>
+  </p>
+  <div class="docstring"><p>Returns a sorted list of collection elements. Uses the merge sort algorithm.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.sort([3,2,1])
+[1,2,3]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L747" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="sort/2">
+    <strong>sort(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns a sorted list of collection elements. Uses the merge sort algorithm.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.sort([1,2,3], &amp;1 &gt; &amp;2)
+[3,2,1]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L767" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/2">
+    <strong>split(collection, count)</strong>
+  </p>
+  <div class="docstring"><p>Splits the enumerable into two collections, leaving <code>count</code>
+elements in the first one. If <code>count</code> is a negative number,
+it starts couting from the back to the beginning of the
+collection.</p>
+
+<p>Be aware that a negative <code>count</code> implies the collection
+will be iterate twice. One to calculate the position and
+another one to do the actual splitting.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.split([1,2,3], 2)
+{ [1,2], [3] }
+iex&gt; Enum.split([1,2,3], 10)
+{ [1,2,3], [] }
+iex&gt; Enum.split([1,2,3], 0)
+{ [], [1,2,3] }
+iex&gt; Enum.split([1,2,3], -1)
+{ [1,2], [3] }
+iex&gt; Enum.split([1,2,3], -5)
+{ [], [1,2,3] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L801" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split_while/2">
+    <strong>split_while(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Splits <code>collection</code> in two while <code>fun</code> returns true.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.split_while([1,2,3,4], fn(x) -&gt; x &lt; 3 end)
+{ [1, 2], [3, 4] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L832" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="take/2">
+    <strong>take(collection, count)</strong>
+  </p>
+  <div class="docstring"><p>Takes the first <code>count</code> items from the collection. Expects an ordered
+collection.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.take([1,2,3], 2)
+[1,2]
+iex&gt; Enum.take([1,2,3], 10)
+[1,2,3]
+iex&gt; Enum.take([1,2,3], 0)
+[]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L863" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="take_while/2">
+    <strong>take_while(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Takes the items at the beginning of <code>collection</code> while <code>fun</code> returns true.
+Expects an ordered collection.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.take_while([1,2,3], fn(x) -&gt; x &lt; 3 end)
+[1, 2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L900" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_list/1">
+    <strong>to_list(collection)</strong>
+  </p>
+  <div class="docstring"><p>Convert <code>collection</code> to a list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.to_list(1 .. 3)
+[1, 2, 3]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L926" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="uniq/2">
+    <strong>uniq(collection, fun // fn x -&gt; x end)</strong>
+  </p>
+  <div class="docstring"><p>Iterates the enumerable removing all duplicated items.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.uniq([1,2,3,2,1])
+[1, 2, 3]
+
+iex&gt; Enum.uniq([{1,:x}, {2,:y}, {1,:z}], fn {x,_} -&gt; x end)
+[{1,:x}, {2,:y}]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L950" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="zip/2">
+    <strong>zip(coll1, coll2)</strong>
+  </p>
+  <div class="docstring"><p>Zips corresponding elements from two collections into one list
+of tuples. The number of elements in the resulting list is
+dictated by the first enum. In case the second list is shorter,
+values are filled with nil.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L976" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Enumerable.Function.html b/docs/master/Enumerable.Function.html
new file mode 100644
index 000000000..a8a30fe33
--- /dev/null
+++ b/docs/master/Enumerable.Function.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Enumerable.Function</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Enumerable.Function
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1471" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#count/1">count/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#member?/2">member?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/3">reduce/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="count/1">
+    <strong>count(function)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1484" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="member?/2">
+    <strong>member?(function, value)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1476" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/3">
+    <strong>reduce(function, acc, fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1472" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Enumerable.HashDict.html b/docs/master/Enumerable.HashDict.html
new file mode 100644
index 000000000..0698de990
--- /dev/null
+++ b/docs/master/Enumerable.HashDict.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Enumerable.HashDict</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Enumerable.HashDict
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L580" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#count/1">count/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#member?/2">member?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/3">reduce/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="count/1">
+    <strong>count(dict)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L584" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="member?/2">
+    <strong>member?(dict, arg2)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L582" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/3">
+    <strong>reduce(dict, acc, fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L581" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Enumerable.List.html b/docs/master/Enumerable.List.html
new file mode 100644
index 000000000..0ae27785b
--- /dev/null
+++ b/docs/master/Enumerable.List.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Enumerable.List</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Enumerable.List
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1456" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#count/1">count/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#member?/2">member?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/3">reduce/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="count/1">
+    <strong>count(list)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1468" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="member?/2">
+    <strong>member?(list, value)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1465" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/3">
+    <strong>reduce(list1, acc, fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1457" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Enumerable.Range.html b/docs/master/Enumerable.Range.html
new file mode 100644
index 000000000..d9622d3cc
--- /dev/null
+++ b/docs/master/Enumerable.Range.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Enumerable.Range</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Enumerable.Range
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L16" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#count/1">count/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#member?/2">member?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/3">reduce/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="count/1">
+    <strong>count(range)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L24" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="member?/2">
+    <strong>member?(arg1, value)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L20" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/3">
+    <strong>reduce(range, acc, fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Enumerable.html b/docs/master/Enumerable.html
new file mode 100644
index 000000000..82f4736ba
--- /dev/null
+++ b/docs/master/Enumerable.html
@@ -0,0 +1,168 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Enumerable</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Enumerable
+        
+          <small>protocol</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This is the protocol used by the <code>Enum</code> module.</p>
+
+<p>Usually, when you invoke a function in the module <code>Enum</code>, the first argument
+passed to it is a collection which is forwarded to this protocol in order to
+perform operations on the collection.</p>
+
+<p>For example, in the expression</p>
+
+<pre><code>Enum.map([1,2,3], &amp;1 * 2)
+</code></pre>
+
+<p><code>Enum.map</code> invokes <code>Enumerable.reduce</code> to perform the reducing operation
+that builds a mapped list by calling the mapping function <code>&amp;1 * 2</code> on every
+element in the collection and cons&#39;ing the element with the accumulated list.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+        <h2 id="implementations">Implementations</h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Enumerable.Function.html">Function</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Enumerable.HashDict.html">HashDict</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Enumerable.List.html">List</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Enumerable.Range.html">Range</a>
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#count/1">count/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#member?/2">member?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/3">reduce/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="count/1">
+    <strong>count(collection)</strong>
+  </p>
+  <div class="docstring"><p>The function used to retrieve the collection&#39;s size.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="member?/2">
+    <strong>member?(collection, value)</strong>
+  </p>
+  <div class="docstring"><p>The function used to check if a value exists within the collection.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L44" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/3">
+    <strong>reduce(collection, acc, fun)</strong>
+  </p>
+  <div class="docstring"><p>This function performs the reducing operation on a given collection. It
+returns the accumulated value of applying the given function <code>fun</code> on every
+element with the accumulated value.</p>
+
+<p>As an example, here is the implementation of <code>reduce</code> for lists:</p>
+
+<pre><code>def reduce([h|t], acc, fun), do: reduce(t, fun.(h, acc), fun)
+def reduce([], acc, _fun),   do: acc
+</code></pre>
+
+<p>As an additional example, here is the implementation of <code>Enum.map</code> with
+<code>Enumerable</code>:</p>
+
+<pre><code>def map(collection, fun) do
+  Enumerable.reduce(collection, [], fn(entry, acc) -&gt;
+    [fun.(entry)|acc]
+  end) |&gt; :lists.reverse
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ErlangError.html b/docs/master/ErlangError.html
new file mode 100644
index 000000000..1bb5b250b
--- /dev/null
+++ b/docs/master/ErlangError.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ErlangError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ErlangError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L76" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>original:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L77" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ExUnit.AssertionError.html b/docs/master/ExUnit.AssertionError.html
new file mode 100644
index 000000000..69fe5cbd2
--- /dev/null
+++ b/docs/master/ExUnit.AssertionError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.AssertionError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.AssertionError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "assertion failed"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ExUnit.Assertions.html b/docs/master/ExUnit.Assertions.html
new file mode 100644
index 000000000..a139d5be1
--- /dev/null
+++ b/docs/master/ExUnit.Assertions.html
@@ -0,0 +1,471 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.Assertions</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.Assertions
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module contains a set of assertions functions that are
+imported by default into your test cases.</p>
+
+<p>In general, a developer will want to use the general
+<code>assert</code> macro in tests. The macro tries to be smart
+and provide good reporting whenever there is a failure.
+For example, <code>assert some_fun() == 10</code> will fail (assuming
+<code>some_fun()</code> returns 13):</p>
+
+<pre><code>Expected 10 to be equal to 13
+</code></pre>
+
+<p>This module also provides other small convenient functions
+like <code>assert_in_delta</code> and <code>assert_raise</code> to easily handle other
+common cases as checking a float number or handling exceptions.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L20" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#assert/2">assert/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#assert/4">assert/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#assert_in_delta/4">assert_in_delta/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#assert_raise/2">assert_raise/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#assert_raise/3">assert_raise/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#flunk/1">flunk/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#refute/2">refute/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#refute_in_delta/4">refute_in_delta/4</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#assert/1">assert/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#assert_receive/3">assert_receive/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#assert_received/2">assert_received/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#catch_error/1">catch_error/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#catch_exit/1">catch_exit/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#catch_throw/1">catch_throw/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#refute/1">refute/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#refute_receive/3">refute_receive/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#refute_received/2">refute_received/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="assert/2">
+    <strong>assert(expected, message)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the <code>expected</code> value is true.
+If it fails, raises the given <code>message</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert false, &quot;it will never be true&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L203" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="assert/4">
+    <strong>assert(value, expected, actual, opts)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the <code>expected</code> value is true.
+If it fails, it raises an expectation error
+using the given expected and actual values.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert this &gt; that, this, that, reason: &quot;more than&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L218" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="assert_in_delta/4">
+    <strong>assert_in_delta(expected, received, delta, message // nil)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the <code>expected</code> and <code>received</code> are within <code>delta</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert_in_delta 1.1, 1.5, 0.2
+assert_in_delta 10, 15, 4
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L337" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="assert_raise/2">
+    <strong>assert_raise(exception, function)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the <code>exception</code> is raised during <code>function</code> execution.
+Returns the rescued exception, fails otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert_raise ArithmeticError, fn -&gt;
+  1 + &quot;test&quot;
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L311" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="assert_raise/3">
+    <strong>assert_raise(exception, message, function)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the <code>exception</code> is raised during <code>function</code> execution with
+the <code>expected_message</code>. Returns the rescued exception, fails otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert_raise ArithmeticError, &quot;bad argument in arithmetic expression&quot;, fn -&gt;
+  1 + &quot;test&quot;
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L293" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="flunk/1">
+    <strong>flunk(message // &quot;Epic Fail!&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Fails with a message.</p>
+
+<h2>Examples</h2>
+
+<pre><code>flunk &quot;This should raise an error&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L483" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="refute/2">
+    <strong>refute(not_expected, message)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the <code>not_expected</code> value is nil or false.
+In case it is a truthy value, raises the given message.</p>
+
+<h2>Examples</h2>
+
+<pre><code>refute true, &quot;This will obviously fail&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L405" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="refute_in_delta/4">
+    <strong>refute_in_delta(expected, received, delta, message // nil)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the <code>expected</code> and <code>received</code> are not within <code>delta</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>refute_in_delta 1.1, 1.2, 0.2
+refute_in_delta 10, 11, 2
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L466" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="assert/1">
+    <strong>assert(expected)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the <code>expected</code> value is true.</p>
+
+<p><code>assert</code> in general tries to be smart and provide a good
+reporting whenever there is a failure. For example,
+<code>assert 10 &gt; 15</code> is going to fail with a message:</p>
+
+<pre><code>Expected 10 to be more than 15
+</code></pre>
+
+<h2>Examples</h2>
+
+<pre><code>assert true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L52" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="assert_receive/3">
+    <strong>assert_receive(expected, timeout // 100, message // nil)</strong>
+  </p>
+  <div class="docstring"><p>Assets a message was or is going to be received. Differently from
+<code>assert_received</code>, it has a default timeout time of 100 miliseconds.</p>
+
+<p>The given <code>expected</code> content must be a pattern.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert_receive :hello
+</code></pre>
+
+<p>Asserts against a larger timeout:</p>
+
+<pre><code>assert_receive :hello, 20_000
+</code></pre>
+
+<p>You can also match against specific patterns:</p>
+
+<pre><code>assert_receive { :hello, _ }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L245" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="assert_received/2">
+    <strong>assert_received(expected, message // nil)</strong>
+  </p>
+  <div class="docstring"><p>Asserts a message was received and is in the current process mailbox.
+The given <code>expected</code> content must to be a match pattern.</p>
+
+<p>Timeout is set to 0, so there is no waiting time.</p>
+
+<h2>Examples</h2>
+
+<pre><code>self &lt;- :hello
+assert_received :hello
+</code></pre>
+
+<p>You can also match against specific patterns:</p>
+
+<pre><code>self &lt;- { :hello, &quot;world&quot; }
+assert_received { :hello, _ }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L266" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="catch_error/1">
+    <strong>catch_error(expression)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the given <code>expression</code> will cause an error.
+Returns the error or fails otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert catch_error(error 1) == 1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L379" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="catch_exit/1">
+    <strong>catch_exit(expression)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the given <code>expression</code> will exit.
+Returns the exit status/message or fails otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert catch_exit(exit 1) == 1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L366" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="catch_throw/1">
+    <strong>catch_throw(expression)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the given <code>expression</code> will throw a value.
+Returns the thrown value or fails otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert catch_throw(throw 1) == 1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L353" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="refute/1">
+    <strong>refute(expected)</strong>
+  </p>
+  <div class="docstring"><p>Refutes the <code>expected</code> value is true.</p>
+
+<p><code>refute</code> in general tries to be smart and provide a good
+reporting whenever there is a failure.</p>
+
+<h2>Examples</h2>
+
+<pre><code>refute false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L72" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="refute_receive/3">
+    <strong>refute_receive(not_expected, timeout // 100, message // nil)</strong>
+  </p>
+  <div class="docstring"><p>Asserts a message was not received and won&#39;t be during
+a timeout value.</p>
+
+<p>The <code>not_expected</code> contents must be a match pattern.</p>
+
+<h2>Examples</h2>
+
+<pre><code>refute_receive :bye
+</code></pre>
+
+<p>Refute received with a explicit timeout:</p>
+
+<pre><code>refute_receive :bye, 1000
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L424" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="refute_received/2">
+    <strong>refute_received(not_expected, message // nil)</strong>
+  </p>
+  <div class="docstring"><p>Asserts a message was not received (i.e. it is not in the current process mailbox).
+The <code>not_expected</code> contents must be a match pattern.</p>
+
+<p>Timeout is set to 0, so there is no waiting time.</p>
+
+<h2>Examples</h2>
+
+<pre><code>self &lt;- :hello
+refute_received :bye
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L440" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ExUnit.CLIFormatter.html b/docs/master/ExUnit.CLIFormatter.html
new file mode 100644
index 000000000..76c5bcc8a
--- /dev/null
+++ b/docs/master/ExUnit.CLIFormatter.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.CLIFormatter</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.CLIFormatter
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Formatter responsible for printing raw text
+on the CLI</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/cli_formatter.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#case_finished/2">case_finished/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#case_started/2">case_started/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#suite_finished/3">suite_finished/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#suite_started/1">suite_started/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#test_finished/2">test_finished/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#test_started/2">test_started/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="case_finished/2">
+    <strong>case_finished(id, test_case)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/cli_formatter.ex#L29" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="case_started/2">
+    <strong>case_started(_id, _test_case)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/cli_formatter.ex#L25" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="suite_finished/3">
+    <strong>suite_finished(id, run_us, load_us)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/cli_formatter.ex#L21" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="suite_started/1">
+    <strong>suite_started(_opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/cli_formatter.ex#L16" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="test_finished/2">
+    <strong>test_finished(id, test)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/cli_formatter.ex#L37" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="test_started/2">
+    <strong>test_started(_id, _test)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/cli_formatter.ex#L33" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ExUnit.Callbacks.html b/docs/master/ExUnit.Callbacks.html
new file mode 100644
index 000000000..293a34e16
--- /dev/null
+++ b/docs/master/ExUnit.Callbacks.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.Callbacks</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.Callbacks
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module defines four callbacks: <code>setup_all</code>, <code>teardown_all</code>,
+<code>setup</code> and <code>teardown</code>. Those callbacks are defined via macros
+and receives a keyword list of metadata. The callback may
+optionally define extra data which will be available in the test
+cases.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule AssertionTest do
+  use ExUnit.Case, async: true
+
+  setup do
+    IO.puts &quot;This is a setup callback&quot;
+
+    # Returns extra metadata
+    { :ok, [hello: &quot;world&quot;] }
+  end
+
+  setup context do
+    # We can access the test name in the context
+    IO.puts &quot;Setting up: #{context[:test]}&quot;
+
+    # The metadata returned by the previous setup as well
+    assert context[:hello] == &quot;world&quot;
+
+    # No metadata
+    :ok
+  end
+
+  test &quot;always pass&quot; do
+    assert true
+  end
+end
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/callbacks.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#setup/2">setup/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#setup_all/2">setup_all/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#teardown/2">teardown/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#teardown_all/2">teardown_all/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="setup/2">
+    <strong>setup(var // quote() do
+  _
+end, block)</strong>
+  </p>
+  <div class="docstring"><p>Called before the start of each test.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/callbacks.ex#L85" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="setup_all/2">
+    <strong>setup_all(var // quote() do
+  _
+end, block)</strong>
+  </p>
+  <div class="docstring"><p>Called before the start of a case.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/callbacks.ex#L108" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="teardown/2">
+    <strong>teardown(var // quote() do
+  _
+end, block)</strong>
+  </p>
+  <div class="docstring"><p>Called after the finish of each test. Note that, if the test crasches with an exit
+message <code>teardown</code> will not be run.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/callbacks.ex#L97" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="teardown_all/2">
+    <strong>teardown_all(var // quote() do
+  _
+end, block)</strong>
+  </p>
+  <div class="docstring"><p>Called after the finish of each case.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/callbacks.ex#L119" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ExUnit.CaptureIO.html b/docs/master/ExUnit.CaptureIO.html
new file mode 100644
index 000000000..ff90b72b5
--- /dev/null
+++ b/docs/master/ExUnit.CaptureIO.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.CaptureIO</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.CaptureIO
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module provides functionality to capture IO to test it.
+The way to use this module is to import them into your module.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule AssertionTest do
+  use ExUnit.Case
+
+  import ExUnit.CaptureIO
+
+  test :example do
+    assert capture_io(fn -&gt;
+      IO.puts &quot;a&quot;
+    end) == &quot;a\n&quot;
+  end
+end
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/capture_io.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#capture_io/1">capture_io/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#capture_io/2">capture_io/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#capture_io/3">capture_io/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="capture_io/1">
+    <strong>capture_io(fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/capture_io.ex#L61" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="capture_io/2">
+    <strong>capture_io(device, fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/capture_io.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="capture_io/3">
+    <strong>capture_io(device, input, fun)</strong>
+  </p>
+  <div class="docstring"><p>Captures IO. Returns nil in case of no output,
+otherwise returns the binary which is captured outputs.</p>
+
+<p>By default, capture<em>io replaces the group</em>leader (<code>:stdio</code>)
+for the current process. However, the capturing of any other
+named device like <code>:stderr</code> is also possible globally by
+giving the registered device name explicitly as argument.</p>
+
+<p>A developer can set a string as an input. The default
+input is <code>:eof</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; capture_io(fn -&gt; IO.write &quot;josé&quot; end) == &quot;josé&quot;
+true
+iex&gt; capture_io(fn -&gt; :ok end) == nil
+true
+iex&gt; capture_io(:stderr, fn -&gt; IO.write(:stderr, &quot;josé&quot;) end) == &quot;josé&quot;
+true
+iex&gt; capture_io(&quot;this is input&quot;, fn-&gt;
+...&gt;   input = IO.gets &quot;&quot;
+...&gt;   IO.write input
+...&gt; end) == &quot;this is input&quot;
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/capture_io.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ExUnit.Case.html b/docs/master/ExUnit.Case.html
new file mode 100644
index 000000000..bd666abb5
--- /dev/null
+++ b/docs/master/ExUnit.Case.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.Case</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.Case
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module is meant to be used in other modules
+as a way to configure and prepare them for testing.</p>
+
+<p>When used, it allows the following options:</p>
+
+<ul>
+<li>:async - configure Elixir to run that specific test case
+       in parallel with others. Must be used for performance
+       when your test cases do not change any global state;</li>
+</ul>
+
+<p>This module automatically includes all callbacks defined
+in <code>ExUnit.Callbacks</code>. Read it for more information.</p>
+
+<h2>Examples</h2>
+
+<p>defmodule AssertionTest do
+     use ExUnit.Case, async: true</p>
+
+<pre><code> def test_always_pass
+   assert true
+ end
+</code></pre>
+
+<p>end</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/case.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#test/3">test/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="test/3">
+    <strong>test(message, var // quote() do
+  _
+end, contents)</strong>
+  </p>
+  <div class="docstring"><p>Provides a convenient macro that allows a test to be
+defined with a string. This macro automatically inserts
+the atom :ok as the last line of the test. That said,
+a passing test always returns :ok, but, more important,
+it forces Elixir to not tail call optimize the test and
+therefore avoiding hiding lines from the backtrace.</p>
+
+<h2>Examples</h2>
+
+<pre><code>test &quot;true is equal to true&quot; do
+  assert true == true
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/case.ex#L67" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ExUnit.CaseTemplate.html b/docs/master/ExUnit.CaseTemplate.html
new file mode 100644
index 000000000..03e7211ed
--- /dev/null
+++ b/docs/master/ExUnit.CaseTemplate.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.CaseTemplate</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.CaseTemplate
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module allows a developer to define a test case
+template to be used throughout his tests. This is useful
+when there are a set of functions that should be shared
+between tests or a set of setup/teardown callbacks.</p>
+
+<p>By using this module, the callbacks and assertions
+available for regular test cases will also be available.</p>
+
+<h2>Example</h2>
+
+<pre><code>defmodule MyCase do
+  use ExUnit.CaseTemplate
+
+  setup do
+    IO.puts &quot;This will run before each test that uses this case&quot;
+  end
+end
+
+defmodule MyTest do
+  use MyCase, async: true
+
+  test &quot;truth&quot; do
+    assert true
+  end
+end
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/case_template.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#using/2">using/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="using/2">
+    <strong>using(var // quote() do
+  _
+end, list2)</strong>
+  </p>
+  <div class="docstring"><p>Allows a developer to code to be invoked when
+this module is used.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/case_template.ex#L60" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ExUnit.DocTest.Error.html b/docs/master/ExUnit.DocTest.Error.html
new file mode 100644
index 000000000..cbed12b10
--- /dev/null
+++ b/docs/master/ExUnit.DocTest.Error.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.DocTest.Error</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.DocTest.Error
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/doc_test.ex#L102" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ExUnit.DocTest.html b/docs/master/ExUnit.DocTest.html
new file mode 100644
index 000000000..6aae6c934
--- /dev/null
+++ b/docs/master/ExUnit.DocTest.html
@@ -0,0 +1,207 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.DocTest</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.DocTest
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>ExUnit.DocTest implements functionality similar to <a href="http://docs.python.org/2/library/doctest.html">Python&#39;s
+doctest</a>.</p>
+
+<p>In a nutshell, it allows us to generate tests from the code
+examples existing in module/function/macro&#39;s documentation.
+In order to do that, one needs to invoke <code>doctest/1</code> macro
+from their test case and write their examples according
+to some guidelines.</p>
+
+<p>The syntax for examples is as follows. Every new test starts
+on a new line, with an &quot;iex&gt;&quot; prefix. Multiline expressions
+can be employed if the following lines start with either
+&quot;...&gt;&quot; (recommended) or &quot;iex&gt;&quot; prefix.</p>
+
+<p>The expected result should start at the next line after &quot;iex&gt;&quot;
+or &quot;...&gt;&quot; line(s) and is terminated either by a newline, new
+&quot;iex&gt;&quot; prefix or end of the string literal.</p>
+
+<h2>Examples</h2>
+
+<p>Currently, the only way to run doctests is to include them into
+an ExUnit case with a <code>doctest</code> macro:</p>
+
+<pre><code>defmodule MyModule.Test do
+  use ExUnit.Case, async: true
+  doctest MyModule
+end
+</code></pre>
+
+<p>The <code>doctest</code> macro is going to loop through all functions and
+macros defined in <code>MyModule</code>, parsing their documentation in
+search for code examples.</p>
+
+<p>A very basic example is:</p>
+
+<pre><code>iex&gt; 1+1
+2
+</code></pre>
+
+<p>Expressions on multiple lines are also supported:</p>
+
+<pre><code>iex&gt; Enum.map [1,2,3], fn(x) -&gt;
+...&gt;   x * 2
+...&gt; end
+[2,4,6]
+</code></pre>
+
+<p>Multiple results can be checked within the same test:</p>
+
+<pre><code>iex&gt; a = 1
+1
+iex&gt; a + 1
+2
+</code></pre>
+
+<p>If you want to keep any two tests separate from each other,
+add an empty line between them:</p>
+
+<pre><code>iex&gt; a = 1
+1
+
+iex&gt; a + 1  # will fail with a &quot;function a/0 undefined&quot; error
+2
+</code></pre>
+
+<p>Similarly to iex you can use numbers in your &quot;prompts&quot;:</p>
+
+<pre><code>iex(1)&gt; [1+2,
+...(1)&gt;  3]
+[3,3]
+</code></pre>
+
+<p>This is useful in two use cases:</p>
+
+<ul>
+<li>Being able to refer to specific numbered scenarios</li>
+<li>Copy-pasting examples from an actual iex sessions</li>
+</ul>
+
+<p>We also allow you to select or skip some functions when calling
+<code>doctest</code>. See its documentation for more info.</p>
+
+<h2>Exceptions</h2>
+
+<p>You can also showcase expressions raising an exception, for example:</p>
+
+<pre><code>iex(1)&gt; binary_to_atom((fn() -&gt; 1 end).())
+** (ArgumentError) argument error
+</code></pre>
+
+<p>What DocTest will be looking for is a line starting with &quot;** (&quot; and it
+will parse it accordingly to extract the exception name and the message.
+At this moment, the exception parser would make the parser treat the next
+line as a start of a completely new expression (if it is prefixed with iex&gt;)
+or a no-op line with documentation. Thus, multiline messages are not
+supported.</p>
+
+<h2>When not to use doctest</h2>
+
+<p>In general, doctests are not recommended when your code examples contain
+side effects. For example, if a doctest prints to standard output, doctest
+will not try to capture the output.</p>
+
+<p>Similarly, doctest does not run in any kind of sandbox. So any module
+defined in a code example is going to linger throughout the whole test suite
+run.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/doc_test.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#doctest/2">doctest/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="doctest/2">
+    <strong>doctest(mod, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>This macro is used to generate ExUnit test cases for doctests.</p>
+
+<p>Calling <code>doctest(Module)</code> will generate tests for all doctests found
+in the module <code>Module</code></p>
+
+<p>Options can also be supplied:</p>
+
+<ul>
+<li><p><code>:except</code> — generate tests for all functions except those listed
+          (list of <code>{function, arity}</code> tuples)</p></li>
+<li><p><code>:only</code>   — generate tests only forfunctions listed
+          (list of <code>{function, arity}</code> tuples)</p></li>
+<li><p><code>:import</code> — when true, one can test a function defined in the module
+          without referring to the module name. However, this is not
+          feasible when there is a clash with a number module like
+          Kernel. In these cases, <code>import</code> should be set to <code>false</code>
+          and a full <code>M.f</code> construct should be used.</p></li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>doctest MyModule, except: [trick_fun: 1]
+</code></pre>
+
+<p>This macro is auto-imported with every <code>ExUnit.Case</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/doc_test.ex#L132" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ExUnit.ExpectationError.html b/docs/master/ExUnit.ExpectationError.html
new file mode 100644
index 000000000..840b43356
--- /dev/null
+++ b/docs/master/ExUnit.ExpectationError.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.ExpectationError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.ExpectationError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L3" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>expected:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>actual:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>reason:</strong> ""
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>negation:</strong> false
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>prelude:</strong> "Expected"
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>description:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#full_reason/1">full_reason/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="full_reason/1">
+    <strong>full_reason(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L15" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L5" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ExUnit.Formatter.html b/docs/master/ExUnit.Formatter.html
new file mode 100644
index 000000000..ae02679a5
--- /dev/null
+++ b/docs/master/ExUnit.Formatter.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.Formatter</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.Formatter
+        
+          <small>behaviour</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module simply defines the callbacks
+expected by an ExUnit.Formatter.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/formatter.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+        <h2 id="callbacks_summary">Callbacks summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#test_finished/2">test_finished/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#test_started/2">test_started/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#case_finished/2">case_finished/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#case_started/2">case_started/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#suite_finished/3">suite_finished/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#suite_started/1">suite_started/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="callbacks_details" class="details_list">
+          <h2>Callbacks</h2>
+          <div class="detail">
+  <p class="signature" id="test_finished/2">
+    <strong>test_finished(id(), test())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/formatter.ex#L23" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="test_started/2">
+    <strong>test_started(id(), test())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/formatter.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="case_finished/2">
+    <strong>case_finished(id(), test_case())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/formatter.ex#L20" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="case_started/2">
+    <strong>case_started(id(), test_case())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/formatter.ex#L19" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="suite_finished/3">
+    <strong>suite_finished(id(), run_us(), load_us())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/formatter.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="suite_started/1">
+    <strong>suite_started(opts :: [])</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/formatter.ex#L16" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ExUnit.Test.html b/docs/master/ExUnit.Test.html
new file mode 100644
index 000000000..880c03415
--- /dev/null
+++ b/docs/master/ExUnit.Test.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.Test</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.Test
+        
+          <small>record</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A record that keeps information about the test.
+It is received by formatters and also accessible
+in the metadata under the key <code>:test</code>.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit.ex#L2" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>name:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>case:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>failure:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>invalid:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ExUnit.TestCase.html b/docs/master/ExUnit.TestCase.html
new file mode 100644
index 000000000..7b2214eee
--- /dev/null
+++ b/docs/master/ExUnit.TestCase.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.TestCase</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.TestCase
+        
+          <small>record</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A record that keeps information about the test case.
+It is received by formatters and also accessible
+in the metadata under the key <code>:case</code>.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit.ex#L10" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>name:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>failure:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ExUnit.html b/docs/master/ExUnit.html
new file mode 100644
index 000000000..17f1bc95a
--- /dev/null
+++ b/docs/master/ExUnit.html
@@ -0,0 +1,168 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Basic unit test structure for Elixir.</p>
+
+<h2>Example</h2>
+
+<p>A basic setup for ExUnit is shown below:</p>
+
+<pre><code># File: assertion_test.exs
+
+# 1) Start ExUnit. You can pass some options as argument (list below)
+ExUnit.start
+
+# 2) Next we create a new TestCase and use ExUnit.Case
+defmodule AssertionTest do
+  # 3) Notice we pass async: true, this runs the test case
+  #    concurrently with other test cases
+  use ExUnit.Case, async: true
+
+  # 4) A test is a function whose name starts with
+  #    test and receives a context
+  def test_always_pass(_) do
+    assert true
+  end
+
+  # 5) It is recommended to use the test macro instead of def
+  test &quot;the truth&quot; do
+    assert true
+  end
+end
+</code></pre>
+
+<p>To run the test above, all you need to to is to run the file
+using elixir from command line. Assuming you named your file
+assertion_test.exs, you can run it as:</p>
+
+<pre><code>bin/elixir assertion_test.exs
+</code></pre>
+
+<h2>Case, callbacks and assertions</h2>
+
+<p>Check <code>ExUnit.Case</code> and <code>ExUnit.Callbacks</code> for more information about
+defining test cases.</p>
+
+<p>The <code>ExUnit.Assertions</code> module contains a set of macros to easily
+generate assertions with appropriate error messages.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#configure/1">configure/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#run/0">run/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#start/1">start/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="configure/1">
+    <strong>configure(options)</strong>
+  </p>
+  <div class="docstring"><p>Configures ExUnit.</p>
+
+<h2>Options</h2>
+
+<p>ExUnit supports the following options given to start:</p>
+
+<ul>
+<li><p><code>:formatter</code> - The formatter that will print results.
+             Defaults to <code>ExUnit.CLIFormatter</code>;</p></li>
+<li><p><code>:max_cases</code> - Maximum number of cases to run in parallel.
+             Defaults to <code>:erlang.system_info(:schedulers_online)</code>;</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit.ex#L111" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="run/0">
+    <strong>run()</strong>
+  </p>
+  <div class="docstring"><p>API used to run the tests. It is invoked automatically
+if ExUnit is started via <code>ExUnit.start</code>.</p>
+
+<p>Returns the number of failures.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit.ex#L121" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="start/1">
+    <strong>start(options // [])</strong>
+  </p>
+  <div class="docstring"><p>Starts up ExUnit and automatically set it up to run
+tests at the VM exit. It accepts a set of options to
+configure <code>ExUnit</code> (the same ones accepted by <code>configure/1</code>).</p>
+
+<p>In case you want to run tests manually, skip calling this
+function and rely on <code>configure/1</code> and <code>run/0</code> instead.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit.ex#L79" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Exception.html b/docs/master/Exception.html
new file mode 100644
index 000000000..e6c0189d1
--- /dev/null
+++ b/docs/master/Exception.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Exception</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Exception
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Several convenience functions to work and pretty print
+exceptions and stacktraces.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L92" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#format_file_line/3">format_file_line/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#format_stacktrace/1">format_stacktrace/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#format_stacktrace_entry/2">format_stacktrace_entry/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#normalize/1">normalize/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#print_stacktrace/1">print_stacktrace/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="format_file_line/3">
+    <strong>format_file_line(file, line, cwd)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L254" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="format_stacktrace/1">
+    <strong>format_stacktrace(trace // nil)</strong>
+  </p>
+  <div class="docstring"><p>Formats the stacktrace.</p>
+
+<p>A stacktrace must be given as argument. If not, this function
+calculates the current stacktrace and formats it. As consequence,
+the value of <code>System.stacktrace</code> is changed.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L190" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="format_stacktrace_entry/2">
+    <strong>format_stacktrace_entry(entry, cwd // nil)</strong>
+  </p>
+  <div class="docstring"><p>Receives a tuple representing a stacktrace entry and formats it.
+The current working directory may be given as argument, which
+is used to prettify the stacktrace.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L158" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="normalize/1">
+    <strong>normalize(exception)</strong>
+  </p>
+  <div class="docstring"><p>Normalizes an exception converting Erlang exceptions
+to Elixir exceptions. Useful when interfacing Erlang
+code with Elixir code.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L103" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="print_stacktrace/1">
+    <strong>print_stacktrace(trace // nil)</strong>
+  </p>
+  <div class="docstring"><p>Prints the current stacktrace to standard output.</p>
+
+<p>A stacktrace must be given as argument. If not, this function
+calculates the current stacktrace and formats it. As consequence,
+the value of <code>System.stacktrace</code> is changed.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L212" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/File.CopyError.html b/docs/master/File.CopyError.html
new file mode 100644
index 000000000..f21e56bd8
--- /dev/null
+++ b/docs/master/File.CopyError.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>File.CopyError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        File.CopyError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L41" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>reason:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>action:</strong> ""
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>source:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>destination:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L42" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/File.Error.html b/docs/master/File.Error.html
new file mode 100644
index 000000000..e6c6eb7e8
--- /dev/null
+++ b/docs/master/File.Error.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>File.Error</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        File.Error
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L34" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>reason:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>action:</strong> ""
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>path:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L35" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/File.IteratorError.html b/docs/master/File.IteratorError.html
new file mode 100644
index 000000000..b7e952cd6
--- /dev/null
+++ b/docs/master/File.IteratorError.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>File.IteratorError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        File.IteratorError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L48" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>reason:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/File.Stat.html b/docs/master/File.Stat.html
new file mode 100644
index 000000000..375a0e9f4
--- /dev/null
+++ b/docs/master/File.Stat.html
@@ -0,0 +1,168 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>File.Stat</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        File.Stat
+        
+          <small>record</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A record responsible to hold file information. Its fields are:</p>
+
+<ul>
+<li><code>size</code> - Size of file in bytes.</li>
+<li><code>type</code> - <code>:device</code>, <code>:directory</code>, <code>:regular</code>, <code>:other</code>. The type of the file.</li>
+<li><code>access</code> - <code>:read</code>, <code>:write</code>, <code>:read_write</code>, <code>:none</code>. The current system access to
+          the file.</li>
+<li><code>atime</code> - The last time the file was read.</li>
+<li><code>mtime</code> - The last time the file was written.</li>
+<li><code>ctime</code> - The interpretation of this time field depends on the operating
+        system. On Unix, it is the last time the file or the inode was
+        changed. In Windows, it is the create time.</li>
+<li><code>mode</code> - The file permissions.</li>
+<li><code>links</code> - The number of links to this file. This is always 1 for file
+        systems which have no concept of links.</li>
+<li><code>major_device</code> - Identifies the file system where the file is located.
+               In windows, the number indicates a drive as follows:
+               0 means A:, 1 means B:, and so on.</li>
+<li><code>minor_device</code> - Only valid for character devices on Unix. In all other
+               cases, this field is zero.</li>
+<li><code>inode</code> - Gives the inode number. On non-Unix file systems, this field
+        will be zero.</li>
+<li><code>uid</code> - Indicates the owner of the file.</li>
+<li><code>gid</code> - Gives the group that the owner of the file belongs to. Will be
+      zero for non-Unix file systems.</li>
+</ul>
+
+<p>The time type returned in <code>atime</code>, <code>mtime</code>, and <code>ctime</code> is dependent on the
+time type set in options. <code>{:time, type}</code> where type can be <code>:local</code>,
+<code>:universal</code>, or <code>:posix</code>. Default is <code>:local</code>.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>size:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>type:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>access:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>atime:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>mtime:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>ctime:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>mode:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>links:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>major_device:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>minor_device:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>inode:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>uid:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>gid:</strong> :undefined
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/File.html b/docs/master/File.html
new file mode 100644
index 000000000..1b0f654b5
--- /dev/null
+++ b/docs/master/File.html
@@ -0,0 +1,1066 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>File</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        File
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module contains function to manipulate files.
+Many of the functions that interact with the filesystem
+have their naming based on its UNIX variants. For
+example, deleting a file is done with <code>File.rm</code>.
+Getting its stats with <code>File.stat</code>.</p>
+
+<p>In order to write and read files, one must use the
+functions in the IO module. By default, a file is
+opened in binary mode which requires the functions
+<code>IO.binread</code>, <code>IO.binwrite</code> and <code>IO.binreadline</code> to
+interact with the file. A developer may pass <code>:utf8</code>
+as an option when opening the file and then all other
+functions from IO are available, since they work directly
+with Unicode data.</p>
+
+<p>Most of the functions in this module return <code>:ok</code>
+or <code>{ :ok, result }</code> in case of success, <code>{ :error, reason }</code>
+otherwise. Those function are also followed by
+a variant that ends with <code>!</code> which returns the
+result (without the <code>{ :ok, result }</code> tuple) in
+case of success or raises an exception in case it
+fails. For example:</p>
+
+<pre><code>File.read(&quot;hello.txt&quot;)
+#=&gt; { :ok, &quot;World&quot; }
+
+File.read(&quot;invalid.txt&quot;)
+#=&gt; { :error, :enoent }
+
+File.read!(&quot;hello.txt&quot;)
+#=&gt; &quot;World&quot;
+
+File.read!(&quot;invalid.txt&quot;)
+#=&gt; raises File.Error
+</code></pre>
+
+<p>In general, a developer should use the former in case
+he wants to react in the fie does not exist. The latter
+should be used when the developer expects his software
+to fail in case the file cannot be read (i.e. it is
+literally an exception).</p>
+
+<p>Finally, the functions in this module accept either
+a char lists or a binary. When manipulating paths, a char
+list is returned if one is given as argument. However,
+when reading files, binaries are always returned.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L55" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#biniterator/1">biniterator/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#biniterator!/2">biniterator!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cd/1">cd/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cd!/1">cd!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cd!/2">cd!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#close/1">close/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#copy/3">copy/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#copy!/3">copy!/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cp/3">cp/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cp!/3">cp!/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cp_r/3">cp_r/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cp_r!/3">cp_r!/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cwd/0">cwd/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cwd!/0">cwd!/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#dir?/1">dir?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#exists?/1">exists?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#iterator/1">iterator/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#iterator!/2">iterator!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ls/1">ls/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ls!/1">ls!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#mkdir/1">mkdir/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#mkdir!/1">mkdir!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#mkdir_p/1">mkdir_p/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#mkdir_p!/1">mkdir_p!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#open/2">open/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#open/3">open/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#open!/2">open!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#open!/3">open!/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#read/1">read/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#read!/1">read!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#regular?/1">regular?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rm/1">rm/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rm!/1">rm!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rm_rf/1">rm_rf/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rm_rf!/1">rm_rf!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rmdir/1">rmdir/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rmdir!/1">rmdir!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#stat/2">stat/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#stat!/2">stat!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#touch/2">touch/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#touch!/2">touch!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#write/3">write/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#write!/3">write!/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#write_stat/3">write_stat/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#write_stat!/3">write_stat!/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="biniterator/1">
+    <strong>biniterator(device)</strong>
+  </p>
+  <div class="docstring"><p>Converts the file device into an iterator that can
+be passed into <code>Enum</code> to iterate line by line as a
+binary. Check <code>iterator/1</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L988" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="biniterator!/2">
+    <strong>biniterator!(file, mode // [])</strong>
+  </p>
+  <div class="docstring"><p>Opens the given <code>file</code> with the given <code>mode</code> and
+returns its biniterator. The returned iterator will
+fail for the same reasons as <code>File.open!</code>. Note
+that the file is opened when the iteration begins.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L1000" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cd/1">
+    <strong>cd(path)</strong>
+  </p>
+  <div class="docstring"><p>Sets the current working directory. Returns <code>:ok</code> if successful,
+<code>{ :error, reason }</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L867" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cd!/1">
+    <strong>cd!(path)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>cd/0</code>, but raises an exception if it fails.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L874" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cd!/2">
+    <strong>cd!(path, function)</strong>
+  </p>
+  <div class="docstring"><p>Changes the current directory to the given <code>path</code>,
+executes the given function and then revert back
+to the previous path regardless if there is an exception.</p>
+
+<p>Raises an error if retrieving or changing the current
+directory fails.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L890" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="close/1">
+    <strong>close(io_device)</strong>
+  </p>
+  <div class="docstring"><p>Closes the file referenced by <code>io_device</code>. It mostly returns <code>:ok</code>, except
+for some severe errors such as out of memory.</p>
+
+<p>Note that if the option <code>:delayed_write</code> was used when opening the file,
+<code>close/1</code> might return an old write error and not even try to close the file.
+See <code>open/2</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L933" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="copy/3">
+    <strong>copy(source, destination, bytes_count // :infinity)</strong>
+  </p>
+  <div class="docstring"><p>Copies the contents of <code>source</code> to <code>destination</code>. Both
+parameters can be a filename or an io device opened with <code>File.open</code>.
+<code>bytes_count</code> specifies the number of bytes to count, the default
+being <code>:infinity</code>.</p>
+
+<p>If file <code>destination</code> already exists, it is overriden
+by the contents in <code>source</code>.</p>
+
+<p>Returns <code>{ :ok, bytes_copied }</code> if successful,
+<code>{ :error, reason }</code> otherwise.</p>
+
+<p>Typical error reasons are the same as in <code>open/2</code>,
+<code>read/1</code> and <code>write/2</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L327" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="copy!/3">
+    <strong>copy!(source, destination, bytes_count // :infinity)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>copy/3</code> but raises an File.CopyError if it fails.
+Returns the <code>bytes_copied</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L335" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cp/3">
+    <strong>cp(source, destination, callback // fn _, _ -&gt; true end)</strong>
+  </p>
+  <div class="docstring"><p>Copies the contents in <code>source</code> to <code>destination</code>.
+Similar to the command <code>cp -r</code> in Unix systems,
+this function behaves differently depending
+if <code>source</code> and <code>destination</code> are a file or a directory.</p>
+
+<p>If both are files, it simply copies <code>source</code> to
+<code>destination</code>. However, if <code>destination</code> is a directory,
+it copies the contents of <code>source</code> to <code>destination/source</code>
+recursively.</p>
+
+<p>If a file already exists in the destination,
+it invokes a callback which should return
+true if the existing file should be overriden,
+false otherwise. It defaults to return true.</p>
+
+<p>It returns <code>:ok</code> in case of success, returns
+<code>{ :error, reason }</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L363" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cp!/3">
+    <strong>cp!(source, destination, callback // fn _, _ -&gt; true end)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>cp/3</code>, but raises File.CopyError if it fails.
+Returns the list of copied files otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L386" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cp_r/3">
+    <strong>cp_r(source, destination, callback // fn _, _ -&gt; true end)</strong>
+  </p>
+  <div class="docstring"><p>Copies the contents in source to destination.
+Similar to the command <code>cp -r</code> in Unix systems,
+this function behaves differently depending
+if <code>source</code> and <code>destination</code> are a file or a directory.</p>
+
+<p>If both are files, it simply copies <code>source</code> to
+<code>destination</code>. However, if <code>destination</code> is a directory,
+it copies the contents of <code>source</code> to <code>destination/source</code>
+recursively.</p>
+
+<p>If a file already exists in the destination,
+it invokes a callback which should return
+true if the existing file should be overriden,
+false otherwise. It defaults to return true.</p>
+
+<p>If a directory already exists in the destination
+where a file is meant to be (or otherwise), this
+function will fail.</p>
+
+<p>This function may fail while copying files,
+in such cases, it will leave the destination
+directory in a dirty state, where already
+copied files won&#39;t be removed.</p>
+
+<p>It returns <code>{ :ok, files_and_directories }</code> in case of
+success with all files and directories copied in no
+specific order, <code>{ :error, reason }</code> otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code># Copies &quot;a.txt&quot; to &quot;tmp/a.txt&quot;
+File.cp_r &quot;a.txt&quot;, &quot;tmp&quot;
+
+# Copies all files in &quot;samples&quot; to &quot;tmp/samples&quot;
+File.cp_r &quot;samples&quot;, &quot;tmp&quot;
+
+# Copies all files in &quot;samples&quot; to &quot;tmp&quot;
+File.cp_r &quot;samples/.&quot;, &quot;tmp&quot;
+
+# Same as before, but asks the user how to proceed in case of conflicts
+File.cp_r &quot;samples/.&quot;, &quot;tmp&quot;, fn(source, destination) -&gt;
+  IO.gets(&quot;Overriding #{destination} by #{source}. Type y to confirm.&quot;) == &quot;y&quot;
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L441" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cp_r!/3">
+    <strong>cp_r!(source, destination, callback // fn _, _ -&gt; true end)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>cp_r/3</code>, but raises File.CopyError if it fails.
+Returns the list of copied files otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L460" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cwd/0">
+    <strong>cwd()</strong>
+  </p>
+  <div class="docstring"><p>Gets the current working directory. In rare circumstances, this function can
+fail on Unix. It may happen if read permission does not exist for the parent
+directories of the current directory. For this reason, returns <code>{ :ok, cwd }</code>
+in case of success, <code>{ :error, reason }</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L845" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cwd!/0">
+    <strong>cwd!()</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>cwd/0</code>, but raises an exception if it fails.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L855" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="dir?/1">
+    <strong>dir?(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the path is a directory.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L123" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="exists?/1">
+    <strong>exists?(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the given argument exists.
+It can be regular file, directory, socket,
+symbolic link, named pipe or device file.</p>
+
+<h2>Examples</h2>
+
+<pre><code>File.exists?(&quot;test/&quot;)
+#=&gt; true
+
+File.exists?(&quot;missing.txt&quot;)
+#=&gt; false
+
+File.exists?(&quot;/dev/null&quot;)
+#=&gt; true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L144" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="iterator/1">
+    <strong>iterator(device)</strong>
+  </p>
+  <div class="docstring"><p>Converts the file device into an iterator that can be
+passed into <code>Enum</code>. The device is iterated line
+by line, at the end of iteration the file is closed.</p>
+
+<p>This reads the file as utf-8. CHeck out <code>File.biniterator</code>
+to handle the file as a raw binary.</p>
+
+<h2>Examples</h2>
+
+<p>An example that lazily iterates a file replacing all double
+quotes per single quotes and write each line to a target file
+is shown below:</p>
+
+<pre><code>{ :ok, device } = File.open(&quot;README.md&quot;)
+source = File.iterator(device)
+File.open &quot;NEWREADME.md&quot;, [:write], fn(target) -&gt;
+  Enum.each source, fn(line) -&gt;
+    IO.write target, Regex.replace(%r/&quot;/, line, &quot;&#39;&quot;)
+  end
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L960" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="iterator!/2">
+    <strong>iterator!(file, mode // [])</strong>
+  </p>
+  <div class="docstring"><p>Opens the given <code>file</code> with the given <code>mode</code> and
+returns its iterator. The returned iterator will
+fail for the same reasons as <code>File.open!</code>. Note
+that the file is opened when the iteration begins.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L972" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ls/1">
+    <strong>ls(path // &quot;.&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Returns list of files in the given directory.</p>
+
+<p>It returns <code>{ :ok, [files] }</code> in case of success,
+<code>{ :error, reason }</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L906" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ls!/1">
+    <strong>ls!(dir // &quot;.&quot;)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>ls/1</code> but raises <code>File.Error</code>
+in case of an error.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L917" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="mkdir/1">
+    <strong>mkdir(path)</strong>
+  </p>
+  <div class="docstring"><p>Tries to create the directory <code>path</code>. Missing parent directories are not created.
+Returns <code>:ok</code> if successful, or <code>{:error, reason}</code> if an error occurs.</p>
+
+<p>Typical error reasons are:</p>
+
+<ul>
+<li>:eacces  - Missing search or write permissions for the parent directories of <code>path</code>.</li>
+<li>:eexist  - There is already a file or directory named <code>path</code>.</li>
+<li>:enoent  - A component of <code>path</code> does not exist.</li>
+<li>:enospc  - There is a no space left on the device.</li>
+<li>:enotdir - A component of <code>path</code> is not a directory
+         On some platforms, <code>:enoent</code> is returned instead.</li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L161" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="mkdir!/1">
+    <strong>mkdir!(path)</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>mkdir</code>, but raises an exception in case of failure. Otherwise <code>:ok</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L168" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="mkdir_p/1">
+    <strong>mkdir_p(path)</strong>
+  </p>
+  <div class="docstring"><p>Tries to create the directory <code>path</code>. Missing parent directories are created.
+Returns <code>:ok</code> if successful, or <code>{:error, reason}</code> if an error occurs.</p>
+
+<p>Typical error reasons are:</p>
+
+<ul>
+<li>:eacces  - Missing search or write permissions for the parent directories of <code>path</code>.</li>
+<li>:enospc  - There is a no space left on the device.</li>
+<li>:enotdir - A component of <code>path</code> is not a directory.</li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L186" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="mkdir_p!/1">
+    <strong>mkdir_p!(path)</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>mkdir_p</code>, but raises an exception in case of failure. Otherwise <code>:ok</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L193" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="open/2">
+    <strong>open(path, modes // [])</strong>
+  </p>
+  <div class="docstring"><p>Opens the given <code>path</code> according to the given list of modes.</p>
+
+<p>In order to write and read files, one must use the functions
+in the IO module. By default, a file is opened in binary mode
+which requires the functions <code>IO.binread</code>, <code>IO.binwrite</code> and
+<code>IO.binreadline</code> to interact with the file. A developer may pass
+<code>:utf8</code> as an option when opening the file and then all other
+functions from IO are available, since they work directly with
+Unicode data.</p>
+
+<p>The allowed modes:</p>
+
+<ul>
+<li><p><code>:read</code> - The file, which must exist, is opened for reading.</p></li>
+<li><p><code>:write</code> -  The file is opened for writing. It is created if it does not exist.
+          If the file exists, and if write is not combined with read, the file will be truncated.</p></li>
+<li><p><code>:append</code> - The file will be opened for writing, and it will be created if it does not exist.
+          Every write operation to a file opened with append will take place at the end of the file.</p></li>
+<li><p><code>:exclusive</code> - The file, when opened for writing, is created if it does not exist.
+             If the file exists, open will return { :error, :eexist }.</p></li>
+<li><p><code>:charlist</code> - When this term is given, read operations on the file will return char lists rather than binaries;</p></li>
+<li><p><code>:compressed</code> -  Makes it possible to read or write gzip compressed files.
+               The compressed option must be combined with either read or write, but not both.
+               Note that the file size obtained with <code>stat/1</code> will most probably not
+               match the number of bytes that can be read from a compressed file.</p></li>
+<li><p><code>:utf8</code> - This option denotes how data is actually stored in the disk file and
+        makes the file perform automatic translation of characters to and from utf-8.
+        If data is sent to a file in a format that cannot be converted to the utf-8
+        or if data is read by a function that returns data in a format that cannot cope
+        with the character range of the data, an error occurs and the file will be closed.</p></li>
+</ul>
+
+<p>If a function is given to modes (instead of a list), it dispatches to <code>open/3</code>.</p>
+
+<p>Check <code>http://www.erlang.org/doc/man/file.html#open-2</code> for more information about
+other options as <code>read_ahead</code> and <code>delayed_write</code>.</p>
+
+<p>This function returns:</p>
+
+<ul>
+<li><p>{ :ok, io<em>device } - The file has been opened in the requested mode.
+                   <code>io_device</code> is actually the pid of the process which handles the file.
+                   This process is linked to the process which originally opened the file.
+                   If any process to which the io</em>device is linked terminates, the file will
+                   be closed and the process itself will be terminated. An io_device returned
+                   from this call can be used as an argument to the <code>IO</code> module functions.</p></li>
+<li><p>{ :error, reason } - The file could not be opened.</p></li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>{ :ok, file } = File.open(&quot;foo.tar.gz&quot;, [:read, :compressed])
+IO.readline(file)
+File.close(file)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L772" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="open/3">
+    <strong>open(path, modes, function)</strong>
+  </p>
+  <div class="docstring"><p>Similar to <code>open/2</code> but expects a function as last argument.</p>
+
+<p>The file is opened, given to the function as argument and
+automatically closed after the function returns, regardless
+if there was an error or not.</p>
+
+<p>It returns <code>{ :ok, function_result }</code> in case of success,
+<code>{ :error, reason }</code> otherwise.</p>
+
+<p>Do not use this function with :delayed_write option
+since automatically closing the file may fail
+(as writes are delayed).</p>
+
+<h2>Examples</h2>
+
+<pre><code>File.open(&quot;file.txt&quot;, [:read, :write], fn(file) -&gt;
+  IO.readline(file)
+end)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L803" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="open!/2">
+    <strong>open!(path, modes // [])</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>open/2</code> but raises an error if file could not be opened.
+Returns the <code>io_device</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L819" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="open!/3">
+    <strong>open!(path, modes, function)</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>open/3</code> but raises an error if file could not be opened.
+Returns the function result otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L831" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="read/1">
+    <strong>read(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns <code>{:ok, binary}</code>, where <code>binary</code> is a binary data object that contains the contents
+of <code>path</code>, or <code>{:error, reason}</code> if an error occurs.</p>
+
+<p>Typical error reasons:</p>
+
+<ul>
+<li>:enoent  - The file does not exist.</li>
+<li>:eacces  - Missing permission for reading the file,
+         or for searching one of the parent directories.</li>
+<li>:eisdir  - The named file is a directory.</li>
+<li>:enotdir - A component of the file name is not a directory.
+         On some platforms, <code>:enoent</code> is returned instead.</li>
+<li>:enomem  - There is not enough memory for the contents of the file.</li>
+</ul>
+
+<p>You can use <code>:file.format_error(reason)</code> to get a descriptive string of the error.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L217" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="read!/1">
+    <strong>read!(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns binary with the contents of the given filename or raises
+File.Error if an error occurs.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L225" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="regular?/1">
+    <strong>regular?(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the path is a regular file.</p>
+
+<h2>Examples</h2>
+
+<pre><code>File.regular? __FILE__ #=&gt; true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L116" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rm/1">
+    <strong>rm(path)</strong>
+  </p>
+  <div class="docstring"><p>Tries to delete the file <code>path</code>.
+Returns <code>:ok</code> if successful, or <code>{:error, reason}</code> if an error occurs.</p>
+
+<p>Typical error reasons are:</p>
+
+<ul>
+<li>:enoent  - The file does not exist.</li>
+<li>:eacces  - Missing permission for the file or one of its parents.</li>
+<li>:eperm   - The file is a directory and user is not super-user.</li>
+<li>:enotdir - A component of the file name is not a directory.
+         On some platforms, enoent is returned instead.</li>
+<li>:einval  - Filename had an improper type, such as tuple.</li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>File.rm(&#39;file.txt&#39;)
+#=&gt; :ok
+
+File.rm(&#39;tmp_dir/&#39;)
+#=&gt; {:error, :eperm}
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L596" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rm!/1">
+    <strong>rm!(path)</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>rm</code>, but raises an exception in case of failure. Otherwise <code>:ok</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L603" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rm_rf/1">
+    <strong>rm_rf(path)</strong>
+  </p>
+  <div class="docstring"><p>Remove files and directories recursively at the given <code>path</code>.
+Symlinks are not followed but simply removed, non existing
+files are simply ignored (i.e. doesn&#39;t make this function fail).</p>
+
+<p>Returns <code>{ :ok, files_and_directories }</code> with all files and
+directories removed in no specific order, <code>{ :error, reason }</code>
+otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>File.rm_rf &quot;samples&quot;
+#=&gt; { :ok, [&quot;samples&quot;, &quot;samples/1.txt&quot;] }
+
+File.rm_rf &quot;unknown&quot;
+#=&gt; { :ok, [] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L657" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rm_rf!/1">
+    <strong>rm_rf!(path)</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>rm_rf/1</code> but raises <code>File.Error</code> in case of failures,
+otherwise the list of files or directories removed.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L704" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rmdir/1">
+    <strong>rmdir(path)</strong>
+  </p>
+  <div class="docstring"><p>Tries to delete the dir at <code>path</code>.
+Returns <code>:ok</code> if successful, or <code>{:error, reason}</code> if an error occurs.</p>
+
+<h2>Examples</h2>
+
+<pre><code>File.rddir(&#39;tmp_dir&#39;)
+#=&gt; :ok
+
+File.rmdir(&#39;file.txt&#39;)
+#=&gt; {:error, :enotdir}
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L624" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rmdir!/1">
+    <strong>rmdir!(path)</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>rmdir/1</code>, but raises an exception in case of failure. Otherwise <code>:ok</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L631" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="stat/2">
+    <strong>stat(path, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Returns information about the <code>path</code>. If it exists, it
+returns a <code>{ :ok, info }</code> tuple, where info is  as a
+<code>File.Info</code> record. Retuns <code>{ :error, reason }</code> with
+the same reasons as <code>File.read</code> if a failure occurs.</p>
+
+<h2>Options</h2>
+
+<p>The accepted options are:</p>
+
+<ul>
+<li><code>:time</code> if the time should be local, universal or posix.
+Default is local.</li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L248" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="stat!/2">
+    <strong>stat!(path, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>stat</code> but returns the <code>File.Stat</code> directly and
+throws <code>File.Error</code> if an error is returned.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L261" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="touch/2">
+    <strong>touch(path, time // :calendar.local_time())</strong>
+  </p>
+  <div class="docstring"><p>Updates modification time (mtime) and access time (atime) of
+the given file. File is created if it doesn’t exist.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L293" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="touch!/2">
+    <strong>touch!(path, time // :calendar.local_time())</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>touch/1</code> but raises an exception if it fails.
+Returns <code>:ok</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L304" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="write/3">
+    <strong>write(path, content, modes // [])</strong>
+  </p>
+  <div class="docstring"><p>Writes <code>content</code> to the file <code>path</code>. The file is created if it
+does not exist. If it exists, the previous contents are overwritten.
+Returns <code>:ok</code> if successful, or <code>{:error, reason}</code> if an error occurs.</p>
+
+<p>Typical error reasons are:</p>
+
+<ul>
+<li>:enoent - A component of the file name does not exist.</li>
+<li>:enotdir - A component of the file name is not a directory.
+         On some platforms, enoent is returned instead.</li>
+<li>:enospc - There is a no space left on the device.</li>
+<li>:eacces - Missing permission for writing the file or searching one of the parent directories.</li>
+<li>:eisdir - The named file is a directory.</li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L559" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="write!/3">
+    <strong>write!(path, content, modes // [])</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>write/3</code> but raises an exception if it fails, returns <code>:ok</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L566" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="write_stat/3">
+    <strong>write_stat(path, stat, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Writes the given <code>File.Stat</code> back to the filesystem at the given
+path. Returns <code>:ok</code> or <code>{ :error, reason }</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L273" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="write_stat!/3">
+    <strong>write_stat!(path, stat, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>write_stat/3</code> but raises an exception if it fails.
+Returns <code>:ok</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L281" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/FunctionClauseError.html b/docs/master/FunctionClauseError.html
new file mode 100644
index 000000000..95d9c1ebe
--- /dev/null
+++ b/docs/master/FunctionClauseError.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>FunctionClauseError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        FunctionClauseError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L59" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>module:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>function:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>arity:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L60" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/GenEvent.Behaviour.html b/docs/master/GenEvent.Behaviour.html
new file mode 100644
index 000000000..80b9988c0
--- /dev/null
+++ b/docs/master/GenEvent.Behaviour.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>GenEvent.Behaviour</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        GenEvent.Behaviour
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module is a convenience to define GenEvent callbacks in Elixir.</p>
+
+<p>GenEvent is an OTP behaviour that encapsulates event handling functionality.</p>
+
+<h2>Example</h2>
+
+<p>Bellow follows an example of a GenEvent that stores notifications
+until they are fetched:</p>
+
+<pre><code>defmodule MyEventHandler do
+  use GenEvent.Behaviour
+
+  # Callbacks
+
+  def init(_) do
+    { :ok, [] }
+  end
+
+  def handle_event({:notification, x}, notifications) do
+    { :ok, [x|notifications] }
+  end
+
+  def handle_call(:notifications, notifications) do
+    {:ok, Enum.reverse(notifications), []}
+  end
+
+end
+
+{ :ok, pid } = :gen_event.start_link
+
+:gen_event.add_handler(pid, MyEventHandler, [])
+
+:gen_event.notify(pid, {:notification, 1})
+:gen_event.notify(pid, {:notification, 2})
+
+:gen_event.call(pid, MyEventHandler, :notifications)
+#=&gt; [1, 2]
+
+:gen_event.call(pid, MyEventHandler, :notifications)
+#=&gt; []
+</code></pre>
+
+<p>Notice we never call the server callbacks directly, they are called
+by OTP whenever we interact with the server. </p>
+
+<p>Starting and sending messages to gen_event is done
+via Erlang&#39;s <code>:gen_event</code> module. For more information,
+please refer to the following:</p>
+
+<p><a href="http://www.erlang.org/doc/man/gen_event.html">http://www.erlang.org/doc/man/gen_event.html</a>
+<a href="http://learnyousomeerlang.com/event-handlers">http://learnyousomeerlang.com/event-handlers</a></p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/gen_event/behaviour.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/GenServer.Behaviour.html b/docs/master/GenServer.Behaviour.html
new file mode 100644
index 000000000..750e4c643
--- /dev/null
+++ b/docs/master/GenServer.Behaviour.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>GenServer.Behaviour</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        GenServer.Behaviour
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module is a convenience to define GenServer callbacks in Elixir.</p>
+
+<p>A server is responsible to react to messages received from client
+and a GenServer is an OTP behaviour that encapsulates common server
+functionalities.</p>
+
+<h2>Example</h2>
+
+<p>Bellow follows an example of a GenServer that push and pop items
+into a stack:</p>
+
+<pre><code>defmodule MyServer do
+  use GenServer.Behaviour
+
+  # Callbacks
+
+  def handle_call(:pop, _from, [h|t]) do
+    { :reply, h, t }
+  end
+
+  def handle_call(_request, _from, _config) do
+    # Call the default implementation from GenServer.Behaviour
+    super
+  end
+
+  def handle_cast({ :push, item }, config) do
+    { :noreply, [item|config] }
+  end
+
+  def handle_cast(_request, _config) do
+    super
+  end
+end
+
+{ :ok, pid } = :gen_server.start_link(MyServer, [:hello], [])
+
+:gen_server.call(pid, :pop)
+#=&gt; :hello
+
+:gen_server.cast(pid, { :push, :world })
+#=&gt; :ok
+
+:gen_server.call(pid, :pop)
+#=&gt; :world
+</code></pre>
+
+<p>Notice we never call the server callbacks directly, they are called
+by OTP whenever we interact with the server. <strong>cast</strong> messages are
+asynchronous while <strong>call</strong> ones are synchronous.  In the case of
+GenServer&#39;s, there are 8 different values a callback such as
+<code>handle_call</code> or <code>handle_cast</code> can return:</p>
+
+<pre><code>{ :reply, reply, new_state }
+{ :reply, reply, new_state, timeout }
+{ :reply, reply, new_state, :hibernate }
+{ :noreply, new_state }
+{ :noreply, new_state, timeout }
+{ :noreply, new_state, :hibernate }
+{ :stop, reason, new_state }
+{ :stop, reason, reply, new_state }
+</code></pre>
+
+<p>There are 6 callbacks required to be implemented in a GenServer. The
+<code>GenServer.Behaviour</code> module defines all of them automatically, but
+allows us to customize the ones we need. The list of callbacks are:</p>
+
+<ul>
+<li><code>init(args)</code> - invoked when the server is started;</li>
+<li><code>handle_call(msg, from, state)</code> - invoked to handle call messages;</li>
+<li><code>handle_cast(msg, state)</code> - invoked to handle cast messages;</li>
+<li><code>handle_info(msg, state)</code> - handle all other messages which are
+normally received by processes;</li>
+<li><code>terminate(reason, state)</code> - called when the server is about to
+terminate, useful for cleaning up;</li>
+<li><code>code_change(old_vsn, state, extra)</code> - called when the application
+code is being upgraded live (hot code swap);</li>
+</ul>
+
+<p>Starting and sending messages to the gen_server is done
+via Erlang&#39;s <code>:gen_server</code> module. For more information,
+please refer to the following:</p>
+
+<p><a href="http://www.erlang.org/doc/man/gen_server.html">http://www.erlang.org/doc/man/gen_server.html</a>
+<a href="http://www.erlang.org/doc/design_principles/gen_server_concepts.html">http://www.erlang.org/doc/design_principles/gen_server_concepts.html</a>
+<a href="http://learnyousomeerlang.com/clients-and-servers">http://learnyousomeerlang.com/clients-and-servers</a></p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/gen_server/behaviour.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/HashDict.html b/docs/master/HashDict.html
new file mode 100644
index 000000000..1d7b45950
--- /dev/null
+++ b/docs/master/HashDict.html
@@ -0,0 +1,426 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>HashDict</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        HashDict
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A key-value store.</p>
+
+<p>The <code>HashDict</code> is meant to work well with both small and
+large set of keys and it is an implementation of the <code>Dict</code>
+behaviour. For more information about the functions and
+their APIs, please consult the <code>Dict</code> module.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#delete/2">delete/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#drop/2">drop/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#empty/1">empty/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#equal?/2">equal?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch/2">fetch/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch!/2">fetch!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/3">get/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#has_key?/2">has_key?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keys/1">keys/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#merge/3">merge/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/0">new/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/1">new/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/2">new/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#pop/3">pop/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put/3">put/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_new/3">put_new/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/3">reduce/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#size/1">size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/2">split/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#take/2">take/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_list/1">to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/3">update/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/4">update/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#values/1">values/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="delete/2">
+    <strong>delete(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Deletes a value from the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L193" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="drop/2">
+    <strong>drop(dict, list2)</strong>
+  </p>
+  <div class="docstring"><p>Returns a new dict with only the entries
+which key is not in keys</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L321" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="empty/1">
+    <strong>empty(_)</strong>
+  </p>
+  <div class="docstring"><p>Returns an empty dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L208" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="equal?/2">
+    <strong>equal?(a, b)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L212" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch/2">
+    <strong>fetch(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Fetches the value under key from the dict
+and return it in a tagged tuple.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L158" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch!/2">
+    <strong>fetch!(dict, key)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L165" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/3">
+    <strong>get(dict, key, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Gets the value under key from the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L147" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="has_key?/2">
+    <strong>has_key?(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the dict has the given key.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L176" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keys/1">
+    <strong>keys(dict)</strong>
+  </p>
+  <div class="docstring"><p>Get all keys in the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L246" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="merge/3">
+    <strong>merge(dict, enum, callback // fn _k, _v1, v2 -&gt; v2 end)</strong>
+  </p>
+  <div class="docstring"><p>Merges two dictionaries.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L260" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/0">
+    <strong>new()</strong>
+  </p>
+  <div class="docstring"><p>Creates a new empty dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L66" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/1">
+    <strong>new(pairs)</strong>
+  </p>
+  <div class="docstring"><p>Creates a new dict from the given enumerable.</p>
+
+<h2>Examples</h2>
+
+<pre><code>HashDict.new [{:b,1},{:a,2}]
+#=&gt; #HashDict&lt;[a: 2, b: 1]&gt;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L80" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/2">
+    <strong>new(list, transform)</strong>
+  </p>
+  <div class="docstring"><p>Creates a new dict from the enumerable with the
+help of the transformation function.</p>
+
+<h2>Examples</h2>
+
+<pre><code>HashDict.new [&quot;a&quot;, &quot;b&quot;], fn x -&gt; {x, x} end
+#=&gt; #HashDict&lt;[{&quot;a&quot;,&quot;a&quot;},{&quot;b&quot;,&quot;b&quot;}]&gt;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L97" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="pop/3">
+    <strong>pop(dict, key, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value under key from the dict as well as the dict without key.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L183" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put/3">
+    <strong>put(dict, key, value)</strong>
+  </p>
+  <div class="docstring"><p>Puts the given key and value in the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L107" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_new/3">
+    <strong>put_new(dict, key, value)</strong>
+  </p>
+  <div class="docstring"><p>Puts the given value under key in the dictionary
+only if one does not exist yet.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L116" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/3">
+    <strong>reduce(dict, acc, fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L327" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="size/1">
+    <strong>size(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns the dict size.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L201" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/2">
+    <strong>split(dict, keys)</strong>
+  </p>
+  <div class="docstring"><p>Splits a dict into two dicts,
+one containing entries with key in the keys list,
+and another containing entries with key not in keys.
+Returns a 2-tuple of the new dicts.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L286" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="take/2">
+    <strong>take(dict, keys)</strong>
+  </p>
+  <div class="docstring"><p>Returns a new dict with only the entries
+which key is in keys.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L305" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_list/1">
+    <strong>to_list(dict)</strong>
+  </p>
+  <div class="docstring"><p>Converts the dict to a list.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L235" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/3">
+    <strong>update(dict, key, fun)</strong>
+  </p>
+  <div class="docstring"><p>Updates the key in the dictionary according
+to the given function. Raises if the key does
+not exist in the dictionary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L125" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/4">
+    <strong>update(dict, key, initial, fun)</strong>
+  </p>
+  <div class="docstring"><p>Updates the key in the dictionary according
+to the given function. Adds initial value if
+the key does not exist in the dicionary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L139" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="values/1">
+    <strong>values(dict)</strong>
+  </p>
+  <div class="docstring"><p>Get all values in the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L253" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/IEx.Autocomplete.html b/docs/master/IEx.Autocomplete.html
new file mode 100644
index 000000000..a0c9dea64
--- /dev/null
+++ b/docs/master/IEx.Autocomplete.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>IEx.Autocomplete</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        IEx.Autocomplete
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Autocompletion for the Elixir shell.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/autocomplete.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#expand/1">expand/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="expand/1">
+    <strong>expand(expr)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/autocomplete.ex#L48" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/IEx.Helpers.html b/docs/master/IEx.Helpers.html
new file mode 100644
index 000000000..78afd46f4
--- /dev/null
+++ b/docs/master/IEx.Helpers.html
@@ -0,0 +1,416 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>IEx.Helpers</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        IEx.Helpers
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Welcome to Interactive Elixir. You are currently
+seeing the documentation for the module IEx.Helpers
+which provides many helpers to make Elixir&#39;s shell
+more joyful to work with.</p>
+
+<p>This message was triggered by invoking the helper
+<code>h()</code>, usually referred to as <code>h/0</code> (since it expects 0
+arguments).</p>
+
+<p>There are many other helpers available:</p>
+
+<ul>
+<li><code>c/2</code> - compiles a file in the given path</li>
+<li><code>ls/0</code> - list the contents of the current directory</li>
+<li><code>ls/1</code> - list the contents of the specified directory</li>
+<li><code>cd/1</code> - changes the current directory</li>
+<li><code>flush/0</code> — flush all messages sent to the shell</li>
+<li><code>h/0</code>, <code>h/1</code> - prints help/documentation</li>
+<li><code>l/1</code> - loads given module beam code by purging the current version</li>
+<li><code>m/0</code> - prints loaded modules</li>
+<li><code>pwd/0</code> - prints the current working directory</li>
+<li><code>r/0</code>, <code>r/1</code> - recompiles and reloads the given module&#39;s source file</li>
+<li><code>s/1</code> — prints spec information</li>
+<li><code>t/1</code> — prints type information</li>
+<li><code>v/0</code> - prints all commands and values</li>
+<li><code>v/1</code> - retrieves nth value from console</li>
+<li><code>import_file/1</code> - evaluate the given file in the shell&#39;s context</li>
+</ul>
+
+<p>Help for functions in this module can be consulted
+directly from the command line, as an example, try:</p>
+
+<pre><code>h(c/2)
+</code></pre>
+
+<p>You can also retrieve the documentation for any module
+or function. Try these:</p>
+
+<pre><code>h(Enum)
+h(Enum.reverse/1)
+</code></pre>
+
+<p>To learn more about IEx as a whole, just type <code>h(IEx)</code>.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#c/2">c/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cd/1">cd/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#flush/0">flush/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#h/0">h/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#l/1">l/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ls/1">ls/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#m/0">m/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#pwd/0">pwd/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#r/0">r/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#r/1">r/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#v/0">v/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#v/1">v/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#h/1">h/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#import_file/1">import_file/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#s/1">s/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#t/1">t/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="c/2">
+    <strong>c(files, path // &quot;.&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Expects a list of files to compile and a path
+to write their object code to. It returns the name
+of the compiled modules.</p>
+
+<p>When compiling one file, there is no need to wrap it in a list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>c [&quot;foo.ex&quot;, &quot;bar.ex&quot;], &quot;ebin&quot;
+#=&gt; [Foo,Bar]
+
+c &quot;baz.ex&quot;
+#=&gt; [Baz]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L59" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cd/1">
+    <strong>cd(directory)</strong>
+  </p>
+  <div class="docstring"><p>Changes the current working directory to the given path.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L303" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="flush/0">
+    <strong>flush()</strong>
+  </p>
+  <div class="docstring"><p>Flushes all messages sent to the shell and prints them out.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L265" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="h/0">
+    <strong>h()</strong>
+  </p>
+  <div class="docstring"><p>Prints the documentation for <code>IEx.Helpers</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L82" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="l/1">
+    <strong>l(module)</strong>
+  </p>
+  <div class="docstring"><p>Purges and reloads specified module.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L257" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ls/1">
+    <strong>ls(path // &quot;.&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Produces a simple list of a directory&#39;s contents.
+If <code>path</code> points to a file, prints its full path.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L315" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="m/0">
+    <strong>m()</strong>
+  </p>
+  <div class="docstring"><p>Prints the list of all loaded modules with paths to their corresponding .beam
+files.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L68" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="pwd/0">
+    <strong>pwd()</strong>
+  </p>
+  <div class="docstring"><p>Prints the current working directory.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L296" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="r/0">
+    <strong>r()</strong>
+  </p>
+  <div class="docstring"><p>Reloads all modules that have already been reloaded with <code>r/1</code> at any point
+in the current IEx session.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L235" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="r/1">
+    <strong>r(module)</strong>
+  </p>
+  <div class="docstring"><p>Recompiles and reloads the specified module&#39;s source file.</p>
+
+<p>Please note that all the modules defined in the same file as <code>module</code>
+are recompiled and reloaded.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L245" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="v/0">
+    <strong>v()</strong>
+  </p>
+  <div class="docstring"><p>Prints the history of expressions evaluated during the session along with
+their results.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L211" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="v/1">
+    <strong>v(n)</strong>
+  </p>
+  <div class="docstring"><p>Retrieves nth expression&#39;s value from the history.</p>
+
+<p>Use negative values to lookup expression values relative to the current one.
+For instance, v(-1) returns the result of the last evaluated expression.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L227" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="h/1">
+    <strong>h(other)</strong>
+  </p>
+  <div class="docstring"><p>Prints the documentation for the given module
+or for the given function/arity pair.</p>
+
+<h2>Examples</h2>
+
+<pre><code>h(Enum)
+#=&gt; Prints documentation for Enum
+</code></pre>
+
+<p>It also accepts functions in the format <code>fun/arity</code>
+and <code>module.fun/arity</code>, for example:</p>
+
+<pre><code>h receive/1
+h Enum.all?/2
+h Enum.all?
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L102" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="import_file/1">
+    <strong>import_file(path)</strong>
+  </p>
+  <div class="docstring"><p>Evaluates the contents of file at <code>path</code> as if it were directly typed into
+the shell. <code>path</code> has to be a literal binary.</p>
+
+<p>Leading <code>~</code> in <code>path</code> is automatically expanded.</p>
+
+<h2>Examples</h2>
+
+<pre><code># ~/file.exs
+value = 13
+
+# in the shell
+iex(1)&gt; import_file &quot;~/file.exs&quot;
+13
+iex(2)&gt; value
+13
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L393" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="s/1">
+    <strong>s(module)</strong>
+  </p>
+  <div class="docstring"><p>Similar to <code>t/1</code>, only for specs.</p>
+
+<p>When given a module, prints the list of all specs defined in the module.</p>
+
+<p>When given a particular spec name (with optional arity), prints its spec.</p>
+
+<h2>Examples</h2>
+
+<pre><code>s(Enum)
+s(Enum.all?)
+s(Enum.all?/2)
+s(list_to_atom)
+s(list_to_atom/1)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L177" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="t/1">
+    <strong>t(module)</strong>
+  </p>
+  <div class="docstring"><p>When given a module, prints specifications (or simply specs) for all the
+types defined in it.</p>
+
+<p>When given a particular type name, prints its spec.</p>
+
+<h2>Examples</h2>
+
+<pre><code>t(Enum)
+t(Enum.t/0)
+t(Enum.t)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L144" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/IEx.Options.html b/docs/master/IEx.Options.html
new file mode 100644
index 000000000..8374748dd
--- /dev/null
+++ b/docs/master/IEx.Options.html
@@ -0,0 +1,277 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>IEx.Options</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        IEx.Options
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Provides an interface for adjusting options of the running IEx session.</p>
+
+<p>Changing options is usually done inside an IEx session or in your .iex file.
+See <code>h(IEx)</code> for more info on the latter.</p>
+
+<p>If the value of an option is a keyword list, only those keys that are
+mentioned will be changed. The rest of the sub-options will keep their
+current values. Any extraneous keys are filtered out, i.e. not used.</p>
+
+<p>To get the list of all supported options, use <code>list/0</code>. You can also get an
+option&#39;s description using <code>print_help/1</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex(1)&gt; ArgumentError[]
+ArgumentError[message: &quot;argument error&quot;]
+
+iex(2)&gt; IEx.Options.set :inspect, raw: true
+[limit: 50, raw: false]
+
+iex(3)&gt; ArgumentError[]
+{ArgumentError,:__exception__,&quot;argument error&quot;}
+
+iex(4)&gt; IEx.Options.list
+[:colors,:inspect]
+
+iex(5)&gt; IEx.Options.print_help :colors
+This is an aggregate option that encapsulates all color settings used
+by the shell.
+... # omitted content
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#colors/0">colors/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/0">get/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/1">get/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#help/1">help/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#history_size/0">history_size/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#inspect/0">inspect/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list/0">list/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#print_help/1">print_help/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#set/1">set/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#set/2">set/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="colors/0">
+    <strong>colors()</strong>
+  </p>
+  <div class="docstring"><p><strong>NOTE</strong>: This is just a stub for documentation purposes. Use
+<code>IEx.Options.get</code> and <code>IEx.Options.set</code> to query and change the option&#39;s
+value.</p>
+
+<p>This is an aggregate option that encapsulates all color settings used by the
+shell. See documentation for the <code>IO.ANSI</code> module for the list of supported
+colors and attributes.</p>
+
+<p>The value is a keyword list. List of supported keys:</p>
+
+<ul>
+<li><p>enabled     -- boolean value that allows for switching the coloring
+               on and off</p></li>
+<li><p>eval_result -- color for an expression&#39;s resulting value</p></li>
+<li><p>error       -- color for error messages</p></li>
+<li><p>info        -- color for various informational messages</p></li>
+<li><p>directory   -- color for directory entries (ls helper)</p></li>
+<li><p>device      -- color for device entries (ls helper)</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L189" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/0">
+    <strong>get()</strong>
+  </p>
+  <div class="docstring"><p>Returns all supported IEx options with their respective values as a keyword
+list.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L46" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/1">
+    <strong>get(name)</strong>
+  </p>
+  <div class="docstring"><p>Get current value of the option <code>name</code>. Raises ArgumentError if name is not a
+known option.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L56" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="help/1">
+    <strong>help(name)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string with the option&#39;s description. Raises if <code>name</code> is not a
+known option.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L138" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="history_size/0">
+    <strong>history_size()</strong>
+  </p>
+  <div class="docstring"><p><strong>NOTE</strong>: This is just a stub for documentation purposes. Use
+<code>IEx.Options.get</code> and <code>IEx.Options.set</code> to query and change the option&#39;s
+value.</p>
+
+<p>Number of expressions and their results to keep in the history.</p>
+
+<p>The value is an integer. When it is negative, the history is unlimited.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L216" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="inspect/0">
+    <strong>inspect()</strong>
+  </p>
+  <div class="docstring"><p><strong>NOTE</strong>: This is just a stub for documentation purposes. Use
+<code>IEx.Options.get</code> and <code>IEx.Options.set</code> to query and change the option&#39;s
+value.</p>
+
+<p>Inspect options used by the shell when printing results of expression
+evaluation.</p>
+
+<p>The value is a keyword list.</p>
+
+<p>See <code>Kernel.inspect/2</code> for the full list of options.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L204" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list/0">
+    <strong>list()</strong>
+  </p>
+  <div class="docstring"><p>Returns all supported options as a list of names.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L164" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="print_help/1">
+    <strong>print_help(name)</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>help/1</code> but instead of returning a string, prints it.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L157" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="set/1">
+    <strong>set(opts)</strong>
+  </p>
+  <div class="docstring"><p>Set all options at once by providing a keyword list with option names and
+their corresponding values. This is generally obtained from <code>get/0</code>.</p>
+
+<p>Returns a keyword list of old option values.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L83" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="set/2">
+    <strong>set(name, value)</strong>
+  </p>
+  <div class="docstring"><p>Sets the value for the option <code>name</code> to <code>value</code>.</p>
+
+<p>Returns option&#39;s previous value in the case of success.</p>
+
+<p>Raises if <code>name</code> is not a known option or if the value is invalid.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L96" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/IEx.html b/docs/master/IEx.html
new file mode 100644
index 000000000..e9bf16e27
--- /dev/null
+++ b/docs/master/IEx.html
@@ -0,0 +1,299 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>IEx</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        IEx
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Welcome to IEx.</p>
+
+<p>This module is the main entry point for Interactive Elixir and
+in this documentation we will talk a bit about how IEx works.</p>
+
+<p>Notice some of the functionality described here will be available
+depending on your terminal. In particular, if you get a message
+saying that the smart terminal could not be run, some of the
+features described here won&#39;t work.</p>
+
+<h2>The Break command</h2>
+
+<p>Inside IEx, hitting Ctrl+C will open up the BREAK menu. In this
+menu you can quit the shell, see process and ets tables information
+and much more.</p>
+
+<h2>The User Switch command</h2>
+
+<p>Besides the break command, one can type Ctrl+G to get to the
+user switch command menu. When reached, you can type <code>h</code> to
+get more information.</p>
+
+<p>In this menu, developers are able to start new shells and
+alternate in between them. Let&#39;s give it a try:</p>
+
+<pre><code>User switch command
+ --&gt; s &#39;Elixir.IEx&#39;
+ --&gt; c
+</code></pre>
+
+<p>The command above will start a new shell and connect to it.
+Create a new variable called hello and assign some value to it:</p>
+
+<pre><code>hello = :world
+</code></pre>
+
+<p>Now, let&#39;s roll back to the first shell:</p>
+
+<pre><code>User switch command
+ --&gt; c 1
+</code></pre>
+
+<p>Now, try to access the hello variable again:</p>
+
+<pre><code>hello
+** (UndefinedFunctionError) undefined function: IEx.Helpers.hello/0
+</code></pre>
+
+<p>The command above fails because we have switched the shells.
+Since shells are isolated from each other, you can&#39;t access the
+variables defined in one shell from the other one.</p>
+
+<p>The user switch command menu also allows developers to connect to remote
+shells using the &quot;r&quot; command. Keep in mind that you can&#39;t connect to a
+remote node if you haven&#39;t given a name to the current node
+(i.e. Process.is_alive? must return true).</p>
+
+<h2>The .iex file</h2>
+
+<p>When starting IEx, it will look for a local .iex file (located in the current
+working directory), then a global one (located at ~/.iex) and will load the
+first one it finds (if any). The code in the chosen .iex file will be
+evaluated in the shell&#39;s context. So, for instance, any modules that are
+loaded or variables that are bound in the .iex file will be available in the
+shell after it has booted.</p>
+
+<p>Sample contents of a local .iex file:</p>
+
+<pre><code># source another .iex file
+import_file &quot;~/.iex&quot;
+
+# print something before the shell starts
+IO.puts &quot;hello world&quot;
+
+# bind a variable that&#39;ll be accessible in the shell
+value = 13
+</code></pre>
+
+<p>Running the shell in the directory where the above .iex file is located
+results in</p>
+
+<pre><code>$ iex
+Erlang R15B03 (erts-5.9.3.1) [...]
+
+hello world
+Interactive Elixir (0.8.3.dev) - press Ctrl+C to exit (type h() ENTER for help)
+iex(1)&gt; value
+13
+</code></pre>
+
+<p>It is possible to override the default loading sequence for .iex file by
+supplying the --dot-iex option to iex. See <code>iex --help</code>.</p>
+
+<h2>Configuring the shell</h2>
+
+<p>There is a number of customization options provided by the shell. Take a look
+at the docs for the <code>IEx.Options</code> module.</p>
+
+<p>The main functions there are <code>IEx.Options.get/1</code> and <code>IEx.Options.set/2</code>. One
+can also use <code>IEx.Options.list/0</code> to get the list of all supported options.
+<code>IEx.Options.print_help/1</code> will print documentation for the given option.</p>
+
+<p>In particular, it might be convenient to customize those options inside your
+.iex file like this:</p>
+
+<pre><code># .iex
+IEx.Options.set :inspect, limit: 3
+
+### now run the shell ###
+
+$ iex
+Erlang R16B (erts-5.10.1) [...]
+
+Interactive Elixir (0.9.1.dev) - press Ctrl+C to exit (type h() ENTER for help)
+iex(1)&gt; [1,2,3,4,5]
+[1,2,3,...]
+</code></pre>
+
+<h2>Expressions in IEx</h2>
+
+<p>As an interactive shell, IEx evaluates expressions. This has some
+interesting consequences that are worth discussing.</p>
+
+<p>The first one is that the code is truly evaluated and not compiled.
+This means that any benchmarking done in the shell is going to have
+skewed results. So never run any profiling nor benchmarks in the shell.</p>
+
+<p>Second of all, IEx alows you to break an expression into many lines,
+since this is common in Elixir. For example:</p>
+
+<pre><code>iex(1)&gt; &quot;ab
+...(1)&gt; c&quot;
+&quot;ab\nc&quot;
+</code></pre>
+
+<p>In the example above, the shell will be expecting more input until it
+finds the closing quote. Sometimes it is not obvious which character
+the shell is expecting, and the user may find themselves trapped in
+the state of incomplete expression with no ability to terminate it other
+than by exiting the shell.</p>
+
+<p>For such cases, there is a special break-trigger (&quot;#iex:break&quot;) that when
+encountered on a line by itself will force the shell to break out of any
+pending expression and return to its normal state:</p>
+
+<pre><code>iex(1)&gt; [&quot;ab
+...(1)&gt; c&quot;
+...(1)&gt; &quot;
+...(1)&gt; ]
+...(1)&gt; #iex:break
+** (TokenMissingError) iex:1: incomplete expression
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex.ex#L4" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#after_spawn/0">after_spawn/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#after_spawn/1">after_spawn/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#color/2">color/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#color_fragment/1">color_fragment/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#color_reset/0">color_reset/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#started?/0">started?/0</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="after_spawn/0">
+    <strong>after_spawn()</strong>
+  </p>
+  <div class="docstring"><p>Returns registered after spawn callbacks.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex.ex#L162" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="after_spawn/1">
+    <strong>after_spawn(fun)</strong>
+  </p>
+  <div class="docstring"><p>Registers a function to be invoked after IEx process is spawned.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex.ex#L155" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="color/2">
+    <strong>color(color_name, string)</strong>
+  </p>
+  <div class="docstring"><p>Returns <code>string</code> escaped using the specified color.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex.ex#L249" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="color_fragment/1">
+    <strong>color_fragment(color_name)</strong>
+  </p>
+  <div class="docstring"><p>Returns an escaped fragment using the specified color.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex.ex#L257" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="color_reset/0">
+    <strong>color_reset()</strong>
+  </p>
+  <div class="docstring"><p>Returns an escaped fragment that resets colors and attributes.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex.ex#L265" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="started?/0">
+    <strong>started?()</strong>
+  </p>
+  <div class="docstring"><p>Returns true if IEx was properly started.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex.ex#L170" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/IO.ANSI.html b/docs/master/IO.ANSI.html
new file mode 100644
index 000000000..0861730f5
--- /dev/null
+++ b/docs/master/IO.ANSI.html
@@ -0,0 +1,815 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>IO.ANSI</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        IO.ANSI
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module provides functionality to render ANSI escape sequences
+(<a href="http://en.wikipedia.org/wiki/ANSI_escape_code">http://en.wikipedia.org/wiki/ANSI_escape_code</a>) —  characters embedded
+in the text used to control formatting, color, and other output options
+on video text terminals.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L21" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#black/0">black/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#black_background/0">black_background/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#blink_off/0">blink_off/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#blink_rapid/0">blink_rapid/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#blink_slow/0">blink_slow/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#blue/0">blue/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#blue_background/0">blue_background/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bright/0">bright/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#conceal/0">conceal/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#crossed_out/0">crossed_out/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cyan/0">cyan/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cyan_background/0">cyan_background/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#default_background/0">default_background/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#default_color/0">default_color/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#encircled/0">encircled/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#escape/2">escape/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#escape_fragment/2">escape_fragment/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#faint/0">faint/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_1/0">font_1/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_2/0">font_2/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_3/0">font_3/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_4/0">font_4/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_5/0">font_5/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_6/0">font_6/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_7/0">font_7/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_8/0">font_8/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_9/0">font_9/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#framed/0">framed/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#green/0">green/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#green_background/0">green_background/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#inverse/0">inverse/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#italic/0">italic/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#magenta/0">magenta/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#magenta_background/0">magenta_background/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#no_underline/0">no_underline/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#normal/0">normal/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#not_framed_encircled/0">not_framed_encircled/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#not_italic/0">not_italic/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#not_overlined/0">not_overlined/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#overlined/0">overlined/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#primary_font/0">primary_font/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#red/0">red/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#red_background/0">red_background/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reset/0">reset/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reverse/0">reverse/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#terminal?/1">terminal?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#underline/0">underline/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#white/0">white/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#white_background/0">white_background/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#yellow/0">yellow/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#yellow_background/0">yellow_background/0</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="black/0">
+    <strong>black()</strong>
+  </p>
+  <div class="docstring"><p>Sets foreground color to black</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="black_background/0">
+    <strong>black_background()</strong>
+  </p>
+  <div class="docstring"><p>Sets background color to black</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="blink_off/0">
+    <strong>blink_off()</strong>
+  </p>
+  <div class="docstring"><p>Blink: off</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L94" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="blink_rapid/0">
+    <strong>blink_rapid()</strong>
+  </p>
+  <div class="docstring"><p>Blink: Rapid. MS-DOS ANSI.SYS; 150 per minute or more; not widely supported</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L62" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="blink_slow/0">
+    <strong>blink_slow()</strong>
+  </p>
+  <div class="docstring"><p>Blink: Slow. Less than 150 per minute</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L59" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="blue/0">
+    <strong>blue()</strong>
+  </p>
+  <div class="docstring"><p>Sets foreground color to blue</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="blue_background/0">
+    <strong>blue_background()</strong>
+  </p>
+  <div class="docstring"><p>Sets background color to blue</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bright/0">
+    <strong>bright()</strong>
+  </p>
+  <div class="docstring"><p>Bright (increased intensity) or Bold</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L47" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="conceal/0">
+    <strong>conceal()</strong>
+  </p>
+  <div class="docstring"><p>Conceal. Not widely supported</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L71" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="crossed_out/0">
+    <strong>crossed_out()</strong>
+  </p>
+  <div class="docstring"><p>Crossed-out. Characters legible, but marked for deletion. Not widely supported.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L74" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cyan/0">
+    <strong>cyan()</strong>
+  </p>
+  <div class="docstring"><p>Sets foreground color to cyan</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cyan_background/0">
+    <strong>cyan_background()</strong>
+  </p>
+  <div class="docstring"><p>Sets background color to cyan</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="default_background/0">
+    <strong>default_background()</strong>
+  </p>
+  <div class="docstring"><p>Default background color</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L111" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="default_color/0">
+    <strong>default_color()</strong>
+  </p>
+  <div class="docstring"><p>Default text color</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L108" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="encircled/0">
+    <strong>encircled()</strong>
+  </p>
+  <div class="docstring"><p>Encircled</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L117" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="escape/2">
+    <strong>escape(string, emit // terminal?())</strong>
+  </p>
+  <div class="docstring"><p>Escapes a string by converting named ANSI sequences into actual ANSI codes.</p>
+
+<p>The format for referring to sequences is <code>%{red}</code> and <code>%{red,bright}</code> (for
+multiple sequences).</p>
+
+<p>It will also append a %{reset} to the string. If you don&#39;t want this
+behaviour, use <code>escape_fragment/1</code> and <code>escape_fragment/2</code>.</p>
+
+<p>An optional boolean parameter can be passed to enable or disable
+emitting actual ANSI codes. When false, no ANSI codes will emitted.
+By default, standard output will be checked if it is a terminal capable
+of handling these sequences (using <code>terminal?/0</code> function)</p>
+
+<h2>Example</h2>
+
+<p>iex&gt; IO.ANSI.escape(&quot;Hello %{red,bright,green}yes&quot;)
+  &quot;Hello \e[31m\e[1m\e[32myes\e[0m&quot;</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L158" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="escape_fragment/2">
+    <strong>escape_fragment(string, emit // terminal?())</strong>
+  </p>
+  <div class="docstring"><p>Escapes a string by converting named ANSI sequences into actual ANSI codes.</p>
+
+<p>The format for referring to sequences is <code>%{red}</code> and <code>%{red,bright}</code> (for
+multiple sequences).</p>
+
+<p>An optional boolean parameter can be passed to enable or disable
+emitting actual ANSI codes. When false, no ANSI codes will emitted.
+By default, standard output will be checked if it is a terminal capable
+of handling these sequences (using <code>terminal?/0</code> function)</p>
+
+<h2>Example</h2>
+
+<p>iex&gt; IO.ANSI.escape<em>fragment(&quot;Hello %{red,bright,green}yes&quot;)
+  &quot;Hello \e[31m\e[1m\e[32myes&quot;
+  iex&gt; IO.ANSI.escape</em>fragment(&quot;%{reset}bye&quot;)
+  &quot;\e[0mbye&quot;</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L187" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="faint/0">
+    <strong>faint()</strong>
+  </p>
+  <div class="docstring"><p>Faint (decreased intensity), not widely supported</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L50" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_1/0">
+    <strong>font_1()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 1</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_2/0">
+    <strong>font_2()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 2</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_3/0">
+    <strong>font_3()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 3</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_4/0">
+    <strong>font_4()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 4</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_5/0">
+    <strong>font_5()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 5</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_6/0">
+    <strong>font_6()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 6</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_7/0">
+    <strong>font_7()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 7</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_8/0">
+    <strong>font_8()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 8</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_9/0">
+    <strong>font_9()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 9</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="framed/0">
+    <strong>framed()</strong>
+  </p>
+  <div class="docstring"><p>Framed</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L114" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="green/0">
+    <strong>green()</strong>
+  </p>
+  <div class="docstring"><p>Sets foreground color to green</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="green_background/0">
+    <strong>green_background()</strong>
+  </p>
+  <div class="docstring"><p>Sets background color to green</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="inverse/0">
+    <strong>inverse()</strong>
+  </p>
+  <div class="docstring"><p>Image: Negative. Swap foreground and background</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L65" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="italic/0">
+    <strong>italic()</strong>
+  </p>
+  <div class="docstring"><p>Italic: on. Not widely supported. Sometimes treated as inverse.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="magenta/0">
+    <strong>magenta()</strong>
+  </p>
+  <div class="docstring"><p>Sets foreground color to magenta</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="magenta_background/0">
+    <strong>magenta_background()</strong>
+  </p>
+  <div class="docstring"><p>Sets background color to magenta</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="no_underline/0">
+    <strong>no_underline()</strong>
+  </p>
+  <div class="docstring"><p>Underline: None</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L91" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="normal/0">
+    <strong>normal()</strong>
+  </p>
+  <div class="docstring"><p>Normal color or intensity</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L85" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="not_framed_encircled/0">
+    <strong>not_framed_encircled()</strong>
+  </p>
+  <div class="docstring"><p>Not framed or encircled</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L123" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="not_italic/0">
+    <strong>not_italic()</strong>
+  </p>
+  <div class="docstring"><p>Not italic</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L88" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="not_overlined/0">
+    <strong>not_overlined()</strong>
+  </p>
+  <div class="docstring"><p>Not overlined</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L126" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="overlined/0">
+    <strong>overlined()</strong>
+  </p>
+  <div class="docstring"><p>Overlined</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L120" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="primary_font/0">
+    <strong>primary_font()</strong>
+  </p>
+  <div class="docstring"><p>Sets primary (default) font</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L77" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="red/0">
+    <strong>red()</strong>
+  </p>
+  <div class="docstring"><p>Sets foreground color to red</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="red_background/0">
+    <strong>red_background()</strong>
+  </p>
+  <div class="docstring"><p>Sets background color to red</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reset/0">
+    <strong>reset()</strong>
+  </p>
+  <div class="docstring"><p>Resets all attributes</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L44" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reverse/0">
+    <strong>reverse()</strong>
+  </p>
+  <div class="docstring"><p>Image: Negative. Swap foreground and background</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L68" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="terminal?/1">
+    <strong>terminal?(device // :erlang.group_leader())</strong>
+  </p>
+  <div class="docstring"><p>Checks whether the default I/O device is a terminal or a file.</p>
+
+<p>Used to identify whether printing ANSI escape sequences will likely
+be printed as intended.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="underline/0">
+    <strong>underline()</strong>
+  </p>
+  <div class="docstring"><p>Underline: Single</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L56" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="white/0">
+    <strong>white()</strong>
+  </p>
+  <div class="docstring"><p>Sets foreground color to white</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="white_background/0">
+    <strong>white_background()</strong>
+  </p>
+  <div class="docstring"><p>Sets background color to white</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="yellow/0">
+    <strong>yellow()</strong>
+  </p>
+  <div class="docstring"><p>Sets foreground color to yellow</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="yellow_background/0">
+    <strong>yellow_background()</strong>
+  </p>
+  <div class="docstring"><p>Sets background color to yellow</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/IO.html b/docs/master/IO.html
new file mode 100644
index 000000000..23dc12d35
--- /dev/null
+++ b/docs/master/IO.html
@@ -0,0 +1,323 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>IO</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        IO
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Module responsible for doing IO. Many functions in this
+module expects an IO device and an io data encoded in UTF-8.</p>
+
+<p>An IO device must be a pid or an atom representing a process.
+For convenience, Elixir provides <code>:stdio</code> and <code>:stderr</code> as
+shortcut to Erlang&#39;s <code>:standard_io</code> and <code>:standard_error</code>.</p>
+
+<p>An io data can be:</p>
+
+<ul>
+<li><p>A list of integers representing a string. Any unicode
+character must be represented with one entry in the list,
+this entry being an integer with the codepoint value;</p></li>
+<li><p>A binary in which unicode characters are represented
+with many bytes (Elixir&#39;s default representation);</p></li>
+<li><p>A list of binaries or a list of char lists (as described above);</p></li>
+<li><p>If none of the above, <code>to_binary</code> is invoked in the
+given argument;</p></li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#binread/2">binread/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binreadline/1">binreadline/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binwrite/2">binwrite/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#getn/2">getn/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#getn/3">getn/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#gets/2">gets/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#inspect/3">inspect/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#puts/2">puts/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#read/2">read/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#readline/1">readline/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#write/2">write/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="binread/2">
+    <strong>binread(device // group_leader(), count)</strong>
+  </p>
+  <div class="docstring"><p>Reads <code>count</code> bytes from the IO device as binary,
+no unicode conversion happens.</p>
+
+<p>Check <code>read/2</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binreadline/1">
+    <strong>binreadline(device // group_leader())</strong>
+  </p>
+  <div class="docstring"><p>Reads a line from the IO device as binary,
+no unicode conversion happens.</p>
+
+<p>Check <code>readline/1</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L80" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binwrite/2">
+    <strong>binwrite(device // group_leader(), item)</strong>
+  </p>
+  <div class="docstring"><p>Writes the given argument to the given device
+as a binary, no unicode conversion happens.</p>
+
+<p>Check <code>write/2</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L114" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="getn/2">
+    <strong>getn(prompt, count // 1)</strong>
+  </p>
+  <div class="docstring"><p>Gets a number of bytes from the io device. If the
+io device is a unicode device, count implies
+the number of unicode codepoints to be retrieved.
+Otherwise, the number of raw bytes. It returns:</p>
+
+<ul>
+<li><p><code>data</code> - The input characters.</p></li>
+<li><p>:eof - End of file was encountered.</p></li>
+<li><p>{:error, reason} - Other (rare) error condition,
+for instance {:error, :estale} if reading from an
+NFS file system.</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L163" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="getn/3">
+    <strong>getn(device, prompt, count)</strong>
+  </p>
+  <div class="docstring"><p>Gets a number of bytes from the io device. If the
+io device is a unicode device, count implies
+the number of unicode codepoints to be retrieved.
+Otherwise, the number of raw bytes.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L179" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="gets/2">
+    <strong>gets(device // group_leader(), prompt)</strong>
+  </p>
+  <div class="docstring"><p>Reads a line from the IO device. It returns:</p>
+
+<ul>
+<li><p><code>data</code> - The characters in the line terminated
+by a LF (or end of file).</p></li>
+<li><p>:eof - End of file was encountered.</p></li>
+<li><p>{:error, reason} - Other (rare) error condition,
+for instance {:error, :estale} if reading from an
+NFS file system.</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L195" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(item, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Inspects and writes the given argument to the device
+followed by a new line. A set of options can be given.</p>
+
+<h2>Examples</h2>
+
+<pre><code>IO.inspect Process.list
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L137" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="inspect/3">
+    <strong>inspect(device, item, opts)</strong>
+  </p>
+  <div class="docstring"><p>Inspects the item with options using the given device.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L144" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="puts/2">
+    <strong>puts(device // group_leader(), item)</strong>
+  </p>
+  <div class="docstring"><p>Writes the argument to the device, similarly to write
+but adds a new line at the end. The argument is expected
+to be a chardata.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L123" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="read/2">
+    <strong>read(device // group_leader(), count)</strong>
+  </p>
+  <div class="docstring"><p>Reads <code>count</code> bytes from the IO device. It returns:</p>
+
+<ul>
+<li><p><code>data</code> - The input characters.</p></li>
+<li><p>:eof - End of file was encountered.</p></li>
+<li><p>{:error, reason} - Other (rare) error condition,
+for instance {:error, :estale} if reading from an
+NFS file system.</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="readline/1">
+    <strong>readline(device // group_leader())</strong>
+  </p>
+  <div class="docstring"><p>Reads a line from the IO device. It returns:</p>
+
+<ul>
+<li><p><code>data</code> - The input characters.</p></li>
+<li><p>:eof - End of file was encountered.</p></li>
+<li><p>{:error, reason} - Other (rare) error condition,
+for instance {:error, :estale} if reading from an
+NFS file system.</p></li>
+</ul>
+
+<p>This function does the same as <code>gets/2</code>,
+except the prompt is not required as argument.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L70" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="write/2">
+    <strong>write(device // group_leader(), item)</strong>
+  </p>
+  <div class="docstring"><p>Writes the given argument to the given device.
+By default the device is the standard output.
+The argument is expected to be a chardata (i.e.
+a char list or an unicode binary).</p>
+
+<p>It returns <code>:ok</code> if it succeeds.</p>
+
+<h2>Examples</h2>
+
+<pre><code>IO.write &quot;sample&quot;
+#=&gt; &quot;sample&quot;
+
+IO.write :stderr, &quot;error&quot;
+#=&gt; &quot;error&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Kernel.CLI.html b/docs/master/Kernel.CLI.html
new file mode 100644
index 000000000..fb26b8f9d
--- /dev/null
+++ b/docs/master/Kernel.CLI.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Kernel.CLI</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Kernel.CLI
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Module responsible for controlling Elixir&#39;s CLI</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/cli.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/2">run/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/2">
+    <strong>run(fun, halt // true)</strong>
+  </p>
+  <div class="docstring"><p>Runs the given function by catching any failure
+and printing them to stdout. <code>at_exit</code> hooks are
+also invoked before exiting.</p>
+
+<p>This function is used by Elixir&#39;s CLI and also
+by escripts generated by Elixir.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/cli.ex#L37" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Kernel.ParallelCompiler.html b/docs/master/Kernel.ParallelCompiler.html
new file mode 100644
index 000000000..c2ecc43d0
--- /dev/null
+++ b/docs/master/Kernel.ParallelCompiler.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Kernel.ParallelCompiler</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Kernel.ParallelCompiler
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A module responsible for compiling files in parallel.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/parallel_compiler.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#files/2">files/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#files_to_path/3">files_to_path/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="files/2">
+    <strong>files(files, callback // default_callback)</strong>
+  </p>
+  <div class="docstring"><p>Compiles the given files.</p>
+
+<p>Those files are compiled in parallel and can automatically
+detect dependencies between them. Once a dependency is found,
+the current file stops being compiled until the dependency is
+resolved.</p>
+
+<p>A callback that is invoked every time a file is compiled
+with its name can be optionally given as argument.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/parallel_compiler.ex#L21" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="files_to_path/3">
+    <strong>files_to_path(files, path, callback // default_callback)</strong>
+  </p>
+  <div class="docstring"><p>Compiles the given files to the given path.
+Read files/2 for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/parallel_compiler.ex#L29" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Kernel.ParallelRequire.html b/docs/master/Kernel.ParallelRequire.html
new file mode 100644
index 000000000..4ddaca4a0
--- /dev/null
+++ b/docs/master/Kernel.ParallelRequire.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Kernel.ParallelRequire</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Kernel.ParallelRequire
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A module responsible for requiring files in parallel.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/parallel_require.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#files/2">files/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="files/2">
+    <strong>files(files, callback // default_callback)</strong>
+  </p>
+  <div class="docstring"><p>Requires the given files.</p>
+
+<p>A callback that is invoked every time a file is required
+can be optionally given as argument.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/parallel_require.ex#L14" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Kernel.SpecialForms.html b/docs/master/Kernel.SpecialForms.html
new file mode 100644
index 000000000..c2670322b
--- /dev/null
+++ b/docs/master/Kernel.SpecialForms.html
@@ -0,0 +1,1107 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Kernel.SpecialForms</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Kernel.SpecialForms
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>In this module we define Elixir special forms. Special forms
+cannot be overriden by the developer and are the basic
+building blocks of Elixir code.</p>
+
+<p>Some of those forms are lexical (like <code>alias</code>, <code>import</code>, etc).
+The macros <code>{}</code>, <code>[]</code> and <code>&lt;&lt;&gt;&gt;</code> are also special forms used
+to define data structures, respectively tuples, lists and binaries.</p>
+
+<p>This module also documents Elixir&#39;s pseudo variables (<code>__MODULE__</code>,
+<code>__FILE__</code>, <code>__ENV__</code> and <code>__CALLER__</code>). Pseudo variables return
+information about Elixir&#39;s compilation environment and can only
+be read, never assigned to.</p>
+
+<p>Finally, it also documents 3 special forms (<code>__block__</code>,
+<code>__scope__</code> and <code>__aliases__</code>), which are not intended to be
+called directly by the developer but they appear in quoted
+contents since they are essential in Elixir&#39;s constructions.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#&lt;&lt;&gt;&gt;/1">&lt;&lt;&gt;&gt;/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#[]/1">[]/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__DIR__/0">__DIR__/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__ENV__/0">__ENV__/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__FILE__/0">__FILE__/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__MODULE__/0">__MODULE__/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__aliases__/1">__aliases__/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__block__/1">__block__/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__scope__/2">__scope__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#alias/2">alias/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#alias!/1">alias!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bc/1">bc/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#import/2">import/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#lc/1">lc/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#quote/2">quote/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#require/2">require/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unquote/1">unquote/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unquote_splicing/1">unquote_splicing/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#var!/1">var!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#var!/2">var!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#{}/1">{}/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="&lt;&lt;&gt;&gt;/1">
+    <strong>&lt;&lt;args&gt;&gt;</strong>
+  </p>
+  <div class="docstring"><p>Defines a new bitstring.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; &lt;&lt; 1, 2, 3 &gt;&gt;
+&lt;&lt; 1, 2, 3 &gt;&gt;
+</code></pre>
+
+<h2>Bitstring types</h2>
+
+<p>A bitstring may contain many parts and those may have
+specific types. Most of the time, Elixir will figure out
+the part&#39;s type and won&#39;t require any work from you:</p>
+
+<pre><code>iex&gt; &lt;&lt;102, &quot;oo&quot;&gt;&gt;
+&quot;foo&quot;
+</code></pre>
+
+<p>Above we have two parts: the first is an integer and the
+second is a binary. If we use any other Elixir expression,
+Elixir can no longer guess the type:</p>
+
+<pre><code>iex&gt; rest = &quot;oo&quot;
+...&gt; &lt;&lt;102, rest&gt;&gt;
+** (ArgumentError) argument error
+</code></pre>
+
+<p>When a variable or expression is given as a binary part,
+Elixir defaults the type of that part to an unsigned
+little-endian integer. In the example above, since we haven&#39;t
+specified a type, Elixir expected an integer but we passed a
+binary, resulting in <code>ArgumentError</code>. We can solve this by
+explicitly tagging it as a binary:</p>
+
+<pre><code>&lt;&lt;102, rest :: binary&gt;&gt;
+</code></pre>
+
+<p>The type can be integer, float, binary, bytes, bitstring,
+bits, utf8, utf16 or utf32, e.g.:</p>
+
+<pre><code>&lt;&lt;102 :: float, rest :: binary&gt;&gt;
+</code></pre>
+
+<p>Integer can be any arbitrary precision integer. A float is an
+IEEE 754 binary32 or binary64 floating point number. A bitstring
+is an arbitrary series of bits. A binary is a special case of
+bitstring that has a total size divisible by 8.</p>
+
+<p>The utf8, utf16, and utf32 types are for UTF code points.</p>
+
+<p>The bits type is an alias for bitstring. The bytes type is an
+alias for binary.</p>
+
+<p>The signedness can also be given as signed or unsigned. The
+signedness only matters for matching. If unspecified, it
+defaults to unsigned. Example:</p>
+
+<pre><code>iex&gt; &lt;&lt;-100 :: signed, _rest :: binary&gt;&gt; = &lt;&lt;-100, &quot;foo&quot;&gt;&gt;
+&lt;&lt;156,102,111,111&gt;&gt;
+</code></pre>
+
+<p>This match would have failed if we did not specify that the
+value -100 is signed. If we&#39;re matching into a variable instead
+of a value, the signedness won&#39;t be checked; rather, the number
+will simply be interpreted as having the given (or implied)
+signedness, e.g.:</p>
+
+<pre><code>iex&gt; &lt;&lt;val, _rest :: binary&gt;&gt; = &lt;&lt;-100, &quot;foo&quot;&gt;&gt;
+...&gt; val
+156
+</code></pre>
+
+<p>Here, <code>val</code> is interpreted as unsigned.</p>
+
+<p>Signedness is only relevant on integers.</p>
+
+<p>The endianness of a part can be big, little or native (the
+latter meaning it will be resolved at VM load time). Passing
+many options can be done by giving a list:</p>
+
+<pre><code>&lt;&lt;102 :: [integer, native], rest :: binary&gt;&gt;
+</code></pre>
+
+<p>Or:</p>
+
+<pre><code>&lt;&lt;102 :: [unsigned, big, integer], rest :: binary&gt;&gt;
+</code></pre>
+
+<p>And so on.</p>
+
+<p>Endianness only makes sense for integers and some UTF code
+point types (utf16 and utf32).</p>
+
+<p>Finally, we can also specify size and unit for each part. The
+unit is multiplied by the size to give the effective size of
+the part:</p>
+
+<pre><code>iex&gt; &lt;&lt;102, _rest :: [size(2), unit(8)]&gt;&gt; = &quot;foo&quot;
+&quot;foo&quot;
+
+iex&gt; &lt;&lt;102, _rest :: size(16)&gt;&gt; = &quot;foo&quot;
+&quot;foo&quot;
+
+iex&gt; &lt;&lt;102, _rest :: size(32)&gt;&gt; = &quot;foo&quot;
+** (MatchError) no match of right hand side value: &quot;foo&quot;
+</code></pre>
+
+<p>In the example above, the first two expressions matches
+because the string &quot;foo&quot; takes 24 bits and we are matching
+against a part of 24 bits as well, 8 of which are taken by
+the integer 102 and the remaining 16 bits are specified on
+the rest. On the last example, we expect a rest with size 32,
+which won&#39;t match.</p>
+
+<p>Size and unit are not applicable to utf8, utf16, and utf32.</p>
+
+<p>The default size for integers is 8. For floats, it is 64. For
+binaries, it is the size of the binary. Only the last binary
+in a binary match can use the default size (all others must
+have their size specified explicitly). Bitstrings do not have
+a default size.</p>
+
+<p>Size can also be specified using a syntax shortcut. Instead of
+writing <code>size(8)</code>, one can write just <code>8</code> and it will be interpreted
+as <code>size(8)</code></p>
+
+<pre><code>iex&gt; &lt;&lt; 1 :: 3 &gt;&gt; == &lt;&lt; 1 :: size(3) &gt;&gt;
+true
+</code></pre>
+
+<p>The default unit for integers, floats, and bitstrings is 1. For
+binaries, it is 8.</p>
+
+<p>For floats, unit * size must result in 32 or 64, corresponding
+to binary32 and binary64, respectively.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L170" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="[]/1">
+    <strong>[args]</strong>
+  </p>
+  <div class="docstring"><p>Defines a new list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>:[].(1,2,3)
+[ 1, 2, 3 ]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L42" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__DIR__/0">
+    <strong>__DIR__()</strong>
+  </p>
+  <div class="docstring"><p>Returns the current directory as a binary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L354" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__ENV__/0">
+    <strong>__ENV__()</strong>
+  </p>
+  <div class="docstring"><p>Returns the current environment information as a <code>Macro.Env</code>
+record. In the environment you can access the current filename,
+line numbers, set up aliases, the current function and others.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L335" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__FILE__/0">
+    <strong>__FILE__()</strong>
+  </p>
+  <div class="docstring"><p>Returns the current file name as a binary.
+Although the file can be accessed in the <strong>ENV</strong>, this macro
+is a convenient shortcut.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L349" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__MODULE__/0">
+    <strong>__MODULE__()</strong>
+  </p>
+  <div class="docstring"><p>Returns the current module name as an atom or nil otherwise.
+Although the module can be accessed in the <strong>ENV</strong>, this macro
+is a convenient shortcut.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L342" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__aliases__/1">
+    <strong>args</strong>
+  </p>
+  <div class="docstring"><p>This is the special form used to hold aliases information.
+It is usually compiled to an atom:</p>
+
+<pre><code>quote do: Foo.Bar #=&gt;
+{ :__aliases__, [], [:Foo,:Bar] }
+</code></pre>
+
+<p>Elixir represents <code>Foo.Bar</code> as <code>__aliases__</code> so calls can be
+unambiguously identified by the operator <code>:.</code>. For example:</p>
+
+<pre><code>quote do: Foo.bar #=&gt;
+{{:.,[],[{:__aliases__,[],[:Foo]},:bar]},[],[]}
+</code></pre>
+
+<p>Whenever an expression iterator sees a <code>:.</code> as the tuple key,
+it can be sure that it represents a call and the second argument
+is the list is an atom.</p>
+
+<p>On the other hand, aliases holds some properties:</p>
+
+<p>1) The head element of aliases can be any term;</p>
+
+<p>2) The tail elements of aliases are guaranteed to always be atoms;</p>
+
+<p>3) When the head element of aliases is the atom :Elixir, no expansion happen;</p>
+
+<p>4) When the head element of aliases is not an atom, it is expanded at runtime:</p>
+
+<pre><code>  quote do: some_var.Foo
+  {:__aliases__,[],[{:some_var,[],:quoted},:Bar]}
+</code></pre>
+
+<p>Since <code>some_var</code> is not available at compilation time, the compiler
+   expands such expression to:</p>
+
+<pre><code>  Module.concat [some_var, Foo]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L812" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__block__/1">
+    <strong>args</strong>
+  </p>
+  <div class="docstring"><p>This is the special form used whenever we have a block
+of expressions in Elixir. This special form is private
+and should not be invoked directly:</p>
+
+<pre><code>iex&gt; quote do: (1; 2; 3)
+{ :__block__, [], [1,2,3] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L761" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__scope__/2">
+    <strong>__scope__(opts, args)</strong>
+  </p>
+  <div class="docstring"><p>This is the special form used whenever we have to temporarily
+change the scope information of a block. Used when <code>quote</code> is
+invoked with <code>location: :keep</code> to execute a given block as if
+it belonged to another file.</p>
+
+<pre><code>quote location: :keep, do: 1
+#=&gt; { :__scope__, [line: 1], [[file: &quot;iex&quot;],[do: 1]] }
+</code></pre>
+
+<p>Check <code>quote/1</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L774" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="alias/2">
+    <strong>alias(module, opts)</strong>
+  </p>
+  <div class="docstring"><p><code>alias</code> is used to setup atom aliases, often useful with modules names.</p>
+
+<h2>Examples</h2>
+
+<p><code>alias</code> can be used to setup an alias for any module:</p>
+
+<pre><code>defmodule Math do
+  alias MyKeyword, as: Keyword
+end
+</code></pre>
+
+<p>In the example above, we have set up <code>MyKeyword</code> to be alias
+as <code>Keyword</code>. So now, any reference to <code>Keyword</code> will be
+automatically replaced by <code>MyKeyword</code>.</p>
+
+<p>In case one wants to access the original <code>Keyword</code>, it can be done
+by accessing Elixir:</p>
+
+<pre><code>Keyword.values   #=&gt; uses MyKeyword.values
+Elixir.Keyword.values #=&gt; uses Keyword.values
+</code></pre>
+
+<p>Notice that calling <code>alias</code> without the <code>as:</code> option automatically
+sets an alias based on the last part of the module. For example:</p>
+
+<pre><code>alias Foo.Bar.Baz
+</code></pre>
+
+<p>Is the same as:</p>
+
+<pre><code>alias Foo.Bar.Baz, as: Baz
+</code></pre>
+
+<h2>Lexical scope</h2>
+
+<p><code>import</code>, <code>require</code> and <code>alias</code> are called directives and all
+have lexical scope. This means you can set up aliases inside
+specific functions and it won&#39;t affect the overall scope.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L208" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="alias!/1">
+    <strong>alias!(alias)</strong>
+  </p>
+  <div class="docstring"><p>When used inside quoting, marks that the alias should not
+be hygienezed. This means the alias will be expanded when
+the macro is expanded.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L655" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bc/1">
+    <strong>bc(args)</strong>
+  </p>
+  <div class="docstring"><p>Defines a bit comprehension. It follows the same syntax as
+a list comprehension but expects each element returned to
+be a bitstring. For example, here is how to remove all
+spaces from a string:</p>
+
+<pre><code>iex&gt; bc &lt;&lt;c&gt;&gt; inbits &quot; hello world &quot;, c != ? , do: &lt;&lt;c&gt;&gt;
+&quot;helloworld&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L750" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="import/2">
+    <strong>import(module, opts)</strong>
+  </p>
+  <div class="docstring"><p><code>import</code> allows one to easily access functions or macros from
+others modules without using the qualified name.</p>
+
+<h2>Examples</h2>
+
+<p>If you are using several functions from a given module, you can
+import those functions and reference them as local functions,
+for example:</p>
+
+<pre><code>iex&gt; import List
+...&gt; flatten([1,[2],3])
+[1,2,3]
+</code></pre>
+
+<h2>Selector</h2>
+
+<p>By default, Elixir imports functions and macros from the given
+module, except the ones starting with underscore (which are
+usually callbacks):</p>
+
+<pre><code>import List
+</code></pre>
+
+<p>A developer can change this behavior to include all macros and
+functions, regardless if it starts with underscore, by passing
+<code>:all</code> as first argument:</p>
+
+<pre><code>import :all, List
+</code></pre>
+
+<p>It can also be customized to import only all functions or
+all macros:</p>
+
+<pre><code>import :functions, List
+import :macros, List
+</code></pre>
+
+<p>Alternatively, Elixir allows a developer to specify <code>:only</code>
+or <code>:except</code> as a fine grained control on what to import (or
+not):</p>
+
+<pre><code>import List, only: [flatten: 1]
+</code></pre>
+
+<h2>Lexical scope</h2>
+
+<p>It is important to notice that <code>import</code> is lexical. This means you
+can import specific macros inside specific functions:</p>
+
+<pre><code>defmodule Math do
+  def some_function do
+    # 1) Disable `if/2` from Kernel
+    import Kernel, except: [if: 2]
+
+    # 2) Require the new `if` macro from MyMacros
+    import MyMacros
+
+    # 3) Use the new macro
+    if do_something, it_works
+  end
+end
+</code></pre>
+
+<p>In the example above, we imported macros from <code>MyMacros</code>,
+replacing the original <code>if/2</code> implementation by our own
+during that specific function. All other functions in that
+module will still be able to use the original one.</p>
+
+<h2>Alias/Require shortcut</h2>
+
+<p>All imported modules are also required by default. <code>import</code>
+also accepts <code>as:</code> as an option so it automatically sets up
+an alias. Please check <code>alias</code> for more information.</p>
+
+<h2>Warnings</h2>
+
+<p>If you import a module and you don&#39;t use any of the imported
+functions or macros from this module, Elixir is going to issue
+a warning implying the import is not being used.</p>
+
+<p>In case the import is generated automatically by a macro,
+Elixir won&#39;t emit any warnings though, since the import
+was not explicitly defined.</p>
+
+<p>Both warning behaviors could be changed by explicitily
+setting the <code>:warn</code> option to true or false.</p>
+
+<h2>Ambiguous function/macro names</h2>
+
+<p>If two modules <code>A</code> and <code>B</code> are imported and they both contain
+a <code>foo</code> function with an arity of <code>1</code>, an error is only emitted
+if an ambiguous call to <code>foo/1</code> is actually made; that is, the
+errors are emitted lazily, not eagerly.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L328" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="lc/1">
+    <strong>lc(args)</strong>
+  </p>
+  <div class="docstring"><p>List comprehensions allow you to quickly build a list from another list:</p>
+
+<pre><code>iex&gt; lc n inlist [1,2,3,4], do: n * 2
+[2,4,6,8]
+</code></pre>
+
+<p>A comprehension accepts many generators and also filters. Generators
+are defined using both <code>inlist</code> and <code>inbits</code> operators, allowing you
+to loop lists and bitstrings:</p>
+
+<pre><code># A list generator:
+iex&gt; lc n inlist [1,2,3,4], do: n * 2
+[2,4,6,8]
+
+# A bit string generator:
+iex&gt; lc &lt;&lt;n&gt;&gt; inbits &lt;&lt;1,2,3,4&gt;&gt;, do: n * 2
+[2,4,6,8]
+
+# A generator from a variable:
+iex&gt; list = [1,2,3,4]
+...&gt; lc n inlist list, do: n * 2
+[2,4,6,8]
+
+# A comprehension with two generators
+iex&gt; lc x inlist [1,2], y inlist [2,3], do: x*y
+[2,3,4,6]
+</code></pre>
+
+<p>Filters can also be given:</p>
+
+<pre><code># A comprehension with a generator and a filter
+iex&gt; lc n inlist [1,2,3,4,5,6], rem(n, 2) == 0, do: n
+[2,4,6]
+</code></pre>
+
+<p>Bit string generators are quite useful when you need to
+organize bit string streams:</p>
+
+<pre><code>iex&gt; pixels = &lt;&lt;213,45,132,64,76,32,76,0,0,234,32,15&gt;&gt;
+iex&gt; lc &lt;&lt;r::8,g::8,b::8&gt;&gt; inbits pixels, do: {r,g,b}
+[{213,45,132},{64,76,32},{76,0,0},{234,32,15}]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L738" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="quote/2">
+    <strong>quote(opts, block)</strong>
+  </p>
+  <div class="docstring"><p>Allows you to get the representation of any expression.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; quote do: sum(1, 2, 3)
+{ :sum, [], [1, 2, 3] }
+</code></pre>
+
+<h2>Explanation</h2>
+
+<p>Any Elixir code can be represented using Elixir data structures.
+The building block of Elixir macros is a tuple with three elements,
+for example:</p>
+
+<pre><code>{ :sum, [], [1, 2, 3] }
+</code></pre>
+
+<p>The tuple above represents a function call to sum passing 1, 2 and
+3 as arguments. The tuple elements are:</p>
+
+<ul>
+<li>The first element of the tuple is always an atom or
+another tuple in the same representation;</li>
+<li>The second element of the tuple represents metadata;</li>
+<li>The third element of the tuple are the arguments for the
+function call. The third argument may be an atom, which is
+usually a variable (or a local call);</li>
+</ul>
+
+<h2>Options</h2>
+
+<ul>
+<li><code>:unquote</code> - When false, disables unquoting. Useful when you have a quote
+           inside another quote and want to control which quote is
+           able to unquote;</li>
+<li><code>:location</code> - When set to <code>:keep</code>, keeps the current line and file on quotes.
+            Read the Stacktrace information section below for more information;</li>
+<li><code>:hygiene</code> - Allows a developer to disable hygiene selectively;</li>
+<li><code>:context</code> - Sets the context resolution happens at;</li>
+</ul>
+
+<h2>Macro literals</h2>
+
+<p>Besides the tuple described above, Elixir has a few literals that
+when quoted return themselves. They are:</p>
+
+<pre><code>:sum         #=&gt; Atoms
+1            #=&gt; Integers
+2.0          #=&gt; Floats
+[1,2]        #=&gt; Lists
+&quot;binaries&quot;   #=&gt; Binaries
+{key, value} #=&gt; Tuple with two elements
+</code></pre>
+
+<h2>Hygiene and context</h2>
+
+<p>Elixir macros are hygienic via means of deferred resolution.
+This means variables, aliases and imports defined inside the
+quoted refer to the context that defined the macro and not
+the context where the macro is expanded.</p>
+
+<p>For this mechanism to work, every quoted code is attached
+to a context. Consider the following example:</p>
+
+<pre><code>defmodule ContextSample do
+  def hello do
+    quote do: world
+  end
+end
+
+ContextSample.hello
+#=&gt; {:world,[],ContextSample}
+</code></pre>
+
+<p>Notice how the third element of the returned tuple is the
+module name. This means that the variable is associated to the
+ContextSample module and only code generated by this module
+will be able to access that particular <code>world</code> variable.
+While this means macros from the same module could have
+conflicting variables, it also allows different quotes from
+the same module to access them.</p>
+
+<p>The context can be disabled or changed by explicitly setting
+the context option. All hygiene mechanisms are based on such
+context and we are going to explore each of them in the following
+subsections.</p>
+
+<h3>Hygiene in variables</h3>
+
+<p>Consider the following example:</p>
+
+<pre><code>defmodule Hygiene do
+  defmacro no_interference do
+    quote do: a = 1
+  end
+end
+
+require Hygiene
+
+a = 10
+Hygiene.no_interference
+a #=&gt; 10
+</code></pre>
+
+<p>In the example above, <code>a</code> returns 10 even if the macro
+is apparently setting it to 1 because variables defined
+in the macro does not affect the context the macro is executed.
+If you want to set or get a variable in the user context, you
+can do it with the help of the <code>var!</code> macro:</p>
+
+<pre><code>defmodule NoHygiene do
+  defmacro interference do
+    quote do: var!(a) = 1
+  end
+end
+
+require NoHygiene
+
+a = 10
+NoHygiene.interference
+a #=&gt; 1
+</code></pre>
+
+<p>It is important to understand that quoted variables are scoped
+to the module they are defined. That said, even if two modules
+define the same quoted variable <code>a</code>, their values are going
+to be independent:</p>
+
+<pre><code>defmodule Hygiene1 do
+  defmacro var1 do
+    quote do: a = 1
+  end
+end
+
+defmodule Hygiene2 do
+  defmacro var2 do
+    quote do: a = 2
+  end
+end
+</code></pre>
+
+<p>Calling macros <code>var1</code> and <code>var2</code> are not going to change their
+each other values for <code>a</code>. This is useful because quoted
+variables from different modules cannot conflict. If you desire
+to explicitly access a variable from another module, we can once
+again use <code>var!</code> macro, but explicitly passing a second argument:</p>
+
+<pre><code># Access the variable a from Hygiene1
+quote do: var!(a, Hygiene1) = 2
+</code></pre>
+
+<p>Hygiene for variables can be disabled overall as:</p>
+
+<pre><code>quote hygiene: [vars: false], do: x
+</code></pre>
+
+<h3>Hygiene in aliases</h3>
+
+<p>Aliases inside quote are hygienic by default.
+Consider the following example:</p>
+
+<pre><code>defmodule Hygiene do
+  alias HashDict, as: D
+
+  defmacro no_interference do
+    quote do: D.new
+  end
+end
+
+require Hygiene
+Hygiene.no_interference #=&gt; #HashDict&lt;[]&gt;
+</code></pre>
+
+<p>Notice that, even though the alias <code>D</code> is not available
+in the context the macro is expanded, the code above works
+because <code>D</code> still expands to <code>HashDict</code>.</p>
+
+<p>In some particular cases you may want to access an alias
+or a module defined in the caller. In such scenarios, you
+can access it by disabling hygiene with <code>hygiene: [aliases: false]</code>
+or by using the <code>alias!</code> macro inside the quote:</p>
+
+<pre><code>defmodule Hygiene do
+  # This will expand to Elixir.Nested.hello
+  defmacro no_interference do
+    quote do: Nested.hello
+  end
+
+  # This will expand to Nested.hello for
+  # whatever is Nested in the caller
+  defmacro interference do
+    quote do: alias!(Nested).hello
+  end
+end
+
+defmodule Parent do
+  defmodule Nested do
+    def hello, do: &quot;world&quot;
+  end
+
+  require Hygiene
+  Hygiene.no_interference
+  #=&gt; ** (UndefinedFunctionError) ...
+
+  Hygiene.interference
+  #=&gt; &quot;world&quot;
+end
+</code></pre>
+
+<h2>Hygiene in imports</h2>
+
+<p>Similar to aliases, imports in Elixir hygienic. Consider the
+following code:</p>
+
+<pre><code>defmodule Hygiene do
+  defmacrop get_size do
+    quote do
+      size(&quot;hello&quot;)
+    end
+  end
+
+  def return_size do
+    import Kernel, except: [size: 1]
+    get_size
+  end
+end
+
+Hygiene.return_size #=&gt; 5
+</code></pre>
+
+<p>Notice how <code>return_size</code> returns 5 even though the <code>size/1</code>
+function is not imported.</p>
+
+<p>Elixir is smart enough to delay the resolution to the latest
+moment possible. So, if you call <code>size(&quot;hello&quot;)</code> inside quote,
+but no <code>size/1</code> function is available, it is then expanded on
+the caller:</p>
+
+<pre><code>defmodule Lazy do
+  defmacrop get_size do
+    import Kernel, except: [size: 1]
+
+    quote do
+      size([a: 1, b: 2])
+    end
+  end
+
+  def return_size do
+    import Kernel, except: [size: 1]
+    import Dict, only: [size: 1]
+    get_size
+  end
+end
+
+Lazy.return_size #=&gt; 2
+</code></pre>
+
+<p>As in aliases, imports expansion can be explicitly disabled
+via the <code>hygiene: [imports: false]</code> option.</p>
+
+<h2>Stacktrace information</h2>
+
+<p>One of Elixir goals is to provide proper stacktrace whenever there is an
+exception. In order to work properly with macros, the default behavior
+in quote is to not set a line. When a macro is invoked and the quoted
+expressions is expanded, the call site line is inserted.</p>
+
+<p>This is a good behavior for the majority of the cases, except if the macro
+is defining new functions. Consider this example:</p>
+
+<pre><code>defmodule MyServer do
+  use GenServer.Behaviour
+end
+</code></pre>
+
+<p><code>GenServer.Behaviour</code> defines new functions in our <code>MyServer</code> module.
+However, if there is an exception in any of these functions, we want
+the stacktrace to point to the <code>GenServer.Behaviour</code> and not the line
+that calls <code>use GenServer.Behaviour</code>. For this reason, there is an
+option called <code>:location</code> that when set to <code>:keep</code> keeps the original
+line and file lines instead of setting them to 0:</p>
+
+<pre><code>quote location: :keep do
+  def handle_call(request, _from, state) do
+    { :reply, :undef, state }
+  end
+end
+</code></pre>
+
+<p>It is important to warn though that <code>location: :keep</code> evaluates the
+code as if it was defined inside <code>GenServer.Behaviour</code> file, in
+particular, the macro <code>__FILE__</code> and exceptions happening inside
+the quote will always point to <code>GenServer.Behaviour</code> file.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L633" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="require/2">
+    <strong>require(module, opts)</strong>
+  </p>
+  <div class="docstring"><p><code>require</code> is used to require the presence of external
+modules so macros can be invoked.</p>
+
+<h2>Examples</h2>
+
+<p>Notice that usually modules should not be required before usage,
+the only exception is if you want to use the macros from a module.
+In such cases, you need to explicitly require them.</p>
+
+<p>Let&#39;s suppose you created your own <code>if</code> implementation in the module
+<code>MyMacros</code>. If you want to invoke it, you need to first explicitly
+require the <code>MyMacros</code>:</p>
+
+<pre><code>defmodule Math do
+  require MyMacros
+  MyMacros.if do_something, it_works
+end
+</code></pre>
+
+<p>An attempt to call a macro that was not loaded will raise an error.</p>
+
+<h2>Alias shortcut</h2>
+
+<p><code>require</code> also accepts <code>as:</code> as an option so it automatically sets
+up an alias. Please check <code>alias</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L237" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unquote/1">
+    <strong>unquote(expr)</strong>
+  </p>
+  <div class="docstring"><p>Unquotes the given expression from inside a macro.</p>
+
+<h2>Examples</h2>
+
+<p>Imagine the situation you have a variable <code>name</code> and
+you want to inject it inside some quote. The first attempt
+would be:</p>
+
+<pre><code>value = 13
+quote do: sum(1, value, 3)
+</code></pre>
+
+<p>Which would then return:</p>
+
+<pre><code>{ :sum, [], [1, { :value, [], quoted }, 3] }
+</code></pre>
+
+<p>Which is not the expected result. For this, we use unquote:</p>
+
+<pre><code>value = 13
+quote do: sum(1, unquote(value), 3)
+#=&gt; { :sum, [], [1, 13, 3] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L681" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unquote_splicing/1">
+    <strong>unquote_splicing(expr)</strong>
+  </p>
+  <div class="docstring"><p>Unquotes the given list expanding its arguments. Similar
+to unquote.</p>
+
+<h2>Examples</h2>
+
+<pre><code>values = [2,3,4]
+quote do: sum(1, unquote_splicing(values), 5)
+#=&gt; { :sum, [], [1, 2, 3, 4, 5] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L695" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="var!/1">
+    <strong>var!(var)</strong>
+  </p>
+  <div class="docstring"><p>When used inside quoting, marks that the variable should
+not be hygienized. The argument can be either a variable
+node (i.e. a tuple with three elements where the last
+one is an atom) or an atom representing the variable name.
+Check <code>quote/2</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L642" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="var!/2">
+    <strong>var!(var, context)</strong>
+  </p>
+  <div class="docstring"><p>Defines a variable in the given context.
+Check <code>quote/2</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L648" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="{}/1">
+    <strong>{args}</strong>
+  </p>
+  <div class="docstring"><p>Defines a new tuple.</p>
+
+<h2>Examples</h2>
+
+<pre><code>:{}.(1,2,3)
+{ 1, 2, 3 }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L31" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Kernel.Typespec.html b/docs/master/Kernel.Typespec.html
new file mode 100644
index 000000000..6b3fec7e7
--- /dev/null
+++ b/docs/master/Kernel.Typespec.html
@@ -0,0 +1,437 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Kernel.Typespec</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Kernel.Typespec
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Holds macros and functions for working with typespecs.</p>
+
+<p>The attributes <code>@type</code>, <code>@opaque</code>, <code>@typep</code>, <code>@spec</code> and
+<code>@callback</code> available in modules are handled by the equivalent
+macros defined by this module.</p>
+
+<h2>Defining a type</h2>
+
+<p>@type type<em>name :: type
+@typep type</em>name :: type
+@opaque type_name :: type</p>
+
+<p>For more details, see documentation for deftype, deftypep and defopaque in
+Kernel.Typespec</p>
+
+<h2>Defining a specification</h2>
+
+<p>@spec function<em>name(type, type) :: type
+@callback function</em>name(type, type) :: type</p>
+
+<p>For more details, see documentation for defspec and defcallback in
+Kernel.Typespec</p>
+
+<h2>Types</h2>
+
+<p>The type syntax provided by Elixir is fairly similar to the one
+in Erlang.</p>
+
+<p>Most of the built-in types provided in Erlang (for example, <code>pid()</code>)
+are expressed the same way: <code>pid()</code> or simply <code>pid</code>. Parametrized types
+are also supported: <code>list(integer())</code> and so are remote types: <code>Enum.t</code>.</p>
+
+<p>Certain data type shortcuts ([...], &lt;&lt;&gt;&gt; and {...}) are supported as well.</p>
+
+<p>Main differences lie in how bit strings and functions are defined:</p>
+
+<h3>Bit Strings</h3>
+
+<p>Bit string with a base size of 3:</p>
+
+<pre><code>&lt;&lt;_ :: 3&gt;&gt;
+</code></pre>
+
+<p>Bit string with a unit size of 8:</p>
+
+<pre><code>&lt;&lt;_ :: _ * 8&gt;&gt;
+</code></pre>
+
+<h3>Anonymous functions</h3>
+
+<p>Any anonymous function:</p>
+
+<pre><code>(fun(...) -&gt; any)
+or
+((...) -&gt; any)
+or
+(... -&gt; any)
+</code></pre>
+
+<p>Anonymous function with arity of zero:</p>
+
+<pre><code>(fun() -&gt; type)
+or
+(() -&gt; type)
+</code></pre>
+
+<p>Anonymous function with some arity:</p>
+
+<pre><code>(fun(type, type) -&gt; type)
+or
+((type, type) -&gt; type)
+or
+(type, type -&gt; type)
+</code></pre>
+
+<h2>Notes</h2>
+
+<p>Elixir discourages the use of type <code>string()</code> as it might be confused
+with binaries which are referred to as &quot;strings&quot; in Elixir (as opposed to
+character lists). In order to use the type that is called <code>string()</code> in Erlang,
+one has to use the <code>char_list()</code> type which is a synonym for <code>string()</code>. If you
+use <code>string()</code>, you&#39;ll get a warning from the compiler.</p>
+
+<p>If you want to refer to the &quot;string&quot; type (the one operated by functions in the
+String module), use <code>String.t()</code> type instead.</p>
+
+<p>See <a href="http://www.erlang.org/doc/reference_manual/typespec.html">http://www.erlang.org/doc/reference_manual/typespec.html</a>
+for more information.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#beam_callbacks/1">beam_callbacks/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#beam_specs/1">beam_specs/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#beam_types/1">beam_types/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#define_callback/3">define_callback/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#define_spec/3">define_spec/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#define_type/3">define_type/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defines_callback?/3">defines_callback?/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defines_spec?/3">defines_spec?/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defines_type?/3">defines_type?/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spec_to_ast/2">spec_to_ast/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#type_to_ast/1">type_to_ast/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#defcallback/1">defcallback/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defopaque/1">defopaque/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defspec/1">defspec/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#deftype/1">deftype/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#deftypep/1">deftypep/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="beam_callbacks/1">
+    <strong>beam_callbacks(module)</strong>
+  </p>
+  <div class="docstring"><p>Returns all callbacks available from the beam.</p>
+
+<p>It is returned as a list of tuples where the first
+element is spec name and arity and the second is the spec.</p>
+
+<p>The module has to have a corresponding beam file
+on the file system.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L313" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="beam_specs/1">
+    <strong>beam_specs(module)</strong>
+  </p>
+  <div class="docstring"><p>Returns all specs available from the beam.</p>
+
+<p>It is returned as a list of tuples where the first
+element is spec name and arity and the second is the spec.</p>
+
+<p>The module has to have a corresponding beam file
+on the file system.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L300" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="beam_types/1">
+    <strong>beam_types(module)</strong>
+  </p>
+  <div class="docstring"><p>Returns all types available from the beam.</p>
+
+<p>It is returned as a list of tuples where the first
+element is the type (<code>:typep</code>, <code>:type</code> and <code>:opaque</code>).</p>
+
+<p>The module has to have a corresponding beam file
+on the file system.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L273" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="define_callback/3">
+    <strong>define_callback(module, tuple, definition)</strong>
+  </p>
+  <div class="docstring"><p>Defines a <code>callback</code> by receiving Erlang&#39;s typespec.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L192" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="define_spec/3">
+    <strong>define_spec(module, tuple, definition)</strong>
+  </p>
+  <div class="docstring"><p>Defines a <code>spec</code> by receiving Erlang&#39;s typespec.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L185" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="define_type/3">
+    <strong>define_type(module, kind, type)</strong>
+  </p>
+  <div class="docstring"><p>Defines a <code>type</code>, <code>typep</code> or <code>opaque</code> by receiving Erlang&#39;s typespec.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L168" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defines_callback?/3">
+    <strong>defines_callback?(module, name, arity)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the current module defines a callback.
+This function is only available for modules being compiled.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L220" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defines_spec?/3">
+    <strong>defines_spec?(module, name, arity)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the current module defines a given spec.
+This function is only available for modules being compiled.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L211" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defines_type?/3">
+    <strong>defines_type?(module, name, arity)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the current module defines a given type
+(private, opaque or not). This function is only available
+for modules being compiled.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L201" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spec_to_ast/2">
+    <strong>spec_to_ast(name, arg2)</strong>
+  </p>
+  <div class="docstring"><p>Converts a spec clause back to Elixir AST.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L228" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="type_to_ast/1">
+    <strong>type_to_ast(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Converts a type clause back to Elixir AST.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L252" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="defcallback/1">
+    <strong>defcallback(spec)</strong>
+  </p>
+  <div class="docstring"><p>Defines a callback.
+This macro is the one responsible to handle the attribute @callback.</p>
+
+<h2>Examples</h2>
+
+<pre><code>@callback add(number, number) :: number
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L157" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defopaque/1">
+    <strong>defopaque(type)</strong>
+  </p>
+  <div class="docstring"><p>Defines an opaque type.
+This macro is the one responsible to handle the attribute @opaque.</p>
+
+<h2>Examples</h2>
+
+<pre><code>@opaque my_type :: atom
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L112" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defspec/1">
+    <strong>defspec(spec)</strong>
+  </p>
+  <div class="docstring"><p>Defines a spec.
+This macro is the one responsible to handle the attribute @spec.</p>
+
+<h2>Examples</h2>
+
+<pre><code>@spec add(number, number) :: number
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L142" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="deftype/1">
+    <strong>deftype(type)</strong>
+  </p>
+  <div class="docstring"><p>Defines a type.
+This macro is the one responsible to handle the attribute @type.</p>
+
+<h2>Examples</h2>
+
+<pre><code>@type my_type :: atom
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L97" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="deftypep/1">
+    <strong>deftypep(type)</strong>
+  </p>
+  <div class="docstring"><p>Defines a private type.
+This macro is the one responsible to handle the attribute @typep.</p>
+
+<h2>Examples</h2>
+
+<pre><code>@typep my_type :: atom
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L127" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Kernel.html b/docs/master/Kernel.html
new file mode 100644
index 000000000..0be9e10b6
--- /dev/null
+++ b/docs/master/Kernel.html
@@ -0,0 +1,4459 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Kernel</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Kernel
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p><code>Kernel</code> provides the default macros and functions
+Elixir imports into your environment. Those macros and functions
+can be skipped or cherry-picked via the <code>import</code> macro. For
+instance, if you want to tell Elixir to not import the <code>case</code>
+macro, you can do:</p>
+
+<pre><code>import Kernel, except: [case: 2]
+</code></pre>
+
+<p>Elixir also has special forms that are always imported and
+cannot be skipped. These are described in <code>Kernel.SpecialForms</code>.</p>
+
+<p>Some of the functions described in this module are simply
+a proxy to its Erlang counterpart. Although they are documented
+here for convenience, you can access their original documentation
+at <a href="http://www.erlang.org/doc/man/erlang.html">http://www.erlang.org/doc/man/erlang.html</a>.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#abs/1">abs/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#atom_to_binary/2">atom_to_binary/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#atom_to_list/1">atom_to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_part/3">binary_part/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_atom/2">binary_to_atom/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_existing_atom/2">binary_to_existing_atom/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_float/1">binary_to_float/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_integer/1">binary_to_integer/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_integer/2">binary_to_integer/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_list/1">binary_to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_list/3">binary_to_list/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_term/1">binary_to_term/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_term/2">binary_to_term/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bit_size/1">bit_size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bitstring_to_list/1">bitstring_to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#byte_size/1">byte_size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#exit/1">exit/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#float/1">float/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#float_to_binary/1">float_to_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#float_to_binary/2">float_to_binary/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#float_to_list/1">float_to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#float_to_list/2">float_to_list/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#function_exported?/3">function_exported?/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#hd/1">hd/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#integer_to_binary/1">integer_to_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#integer_to_binary/2">integer_to_binary/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#integer_to_list/1">integer_to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#integer_to_list/2">integer_to_list/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#iolist_size/1">iolist_size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#iolist_to_binary/1">iolist_to_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_alive/0">is_alive/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_atom/1">is_atom/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_binary/1">is_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_bitstring/1">is_bitstring/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_boolean/1">is_boolean/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_float/1">is_float/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_function/1">is_function/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_function/2">is_function/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_integer/1">is_integer/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_list/1">is_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_number/1">is_number/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_pid/1">is_pid/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_port/1">is_port/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_reference/1">is_reference/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_tuple/1">is_tuple/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#length/1">length/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_atom/1">list_to_atom/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_binary/1">list_to_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_bitstring/1">list_to_bitstring/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_existing_atom/1">list_to_existing_atom/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_float/1">list_to_float/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_integer/1">list_to_integer/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_integer/2">list_to_integer/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_pid/1">list_to_pid/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_tuple/1">list_to_tuple/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#macro_exported?/3">macro_exported?/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#make_ref/0">make_ref/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#max/2">max/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#min/2">min/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#node/0">node/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#node/1">node/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#pid_to_list/1">pid_to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#raise/1">raise/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#raise/2">raise/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#raise/3">raise/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#round/1">round/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#self/0">self/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#size/1">size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/1">spawn/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/3">spawn/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn_link/1">spawn_link/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn_link/3">spawn_link/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#term_to_binary/1">term_to_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#term_to_binary/2">term_to_binary/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#throw/1">throw/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#tl/1">tl/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#trunc/1">trunc/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#tuple_size/1">tuple_size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#tuple_to_list/1">tuple_to_list/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#!/1">!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#!=/2">!=/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#!==/2">!==/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&amp;&amp;/2">&amp;&amp;/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#*/2">*/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#+/2">+/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#++/2">++/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#-/2">-/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#--/2">--/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#../2">../2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#//2">//2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&lt;/2">&lt;/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&lt;-/2">&lt;-/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&lt;=/2">&lt;=/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&lt;&gt;/2">&lt;&gt;/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#==/2">==/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#===/2">===/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#=~/2">=~/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&gt;/2">&gt;/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&gt;=/2">&gt;=/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#@/1">@/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__B__/2">__B__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__C__/2">__C__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__R__/2">__R__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__W__/2">__W__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__b__/2">__b__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__c__/2">__c__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__r__/2">__r__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__w__/2">__w__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#access/2">access/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#and/2">and/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#apply/2">apply/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#apply/3">apply/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#atom_to_binary/1">atom_to_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_atom/1">binary_to_atom/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_existing_atom/1">binary_to_existing_atom/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#case/2">case/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cond/1">cond/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#def/2">def/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#def/4">def/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defdelegate/2">defdelegate/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defexception/4">defexception/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defimpl/3">defimpl/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defmacro/2">defmacro/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defmacro/4">defmacro/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defmacrop/2">defmacrop/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defmacrop/4">defmacrop/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defmodule/2">defmodule/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defoverridable/1">defoverridable/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defp/2">defp/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defp/4">defp/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defprotocol/2">defprotocol/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defrecord/3">defrecord/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defrecordp/2">defrecordp/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete_elem/2">delete_elem/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#destructure/2">destructure/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#div/2">div/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#elem/2">elem/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#function/1">function/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#function/3">function/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#if/2">if/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#in/2">in/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#insert_elem/3">insert_elem/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_exception/1">is_exception/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_range/1">is_range/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_record/1">is_record/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_record/2">is_record/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_regex/1">is_regex/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#match?/2">match?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#nil?/1">nil?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#not/1">not/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#or/2">or/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#receive/1">receive/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rem/2">rem/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#set_elem/3">set_elem/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_binary/1">to_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_char_list/1">to_char_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#try/1">try/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unless/2">unless/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#use/2">use/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#xor/2">xor/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#|&gt;/2">|&gt;/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#||/2">||/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="abs/1">
+    <strong>abs(number)</strong>
+  </p>
+  <div class="docstring"><p>Returns an integer or float which is the arithmetical absolute value of <code>number</code>.</p>
+
+<p>Allowed in guard tests.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; abs(-3.33)
+3.33
+iex&gt; abs(-3)
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L332" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="atom_to_binary/2">
+    <strong>atom_to_binary(atom, encoding)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which corresponds to the text representation of <code>atom</code>.
+If <code>encoding</code> is latin1, there will be one byte for each character in the text
+representation. If <code>encoding</code> is utf8 or unicode, the characters will be encoded
+using UTF-8 (meaning that characters from 16#80 up to 0xFF will be encoded in
+two bytes).</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; atom_to_binary(:elixir, :utf8)
+&quot;elixir&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L350" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="atom_to_list/1">
+    <strong>atom_to_list(atom)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string which corresponds to the text representation of <code>atom</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; atom_to_list(:elixir)
+&#39;elixir&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L364" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_part/3">
+    <strong>binary_part(binary, start, length)</strong>
+  </p>
+  <div class="docstring"><p>Extracts the part of the binary starting at <code>start</code> with length <code>length</code>.
+Binaries are zero-indexed.</p>
+
+<p>If start or length references in any way outside the binary, an
+<code>ArgumentError</code> exception is raised.</p>
+
+<p>Allowed in guard tests.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; binary_part(&quot;foo&quot;, 1, 2)
+&quot;oo&quot;
+</code></pre>
+
+<p>A negative length can be used to extract bytes at the end of a binary:</p>
+
+<pre><code>iex&gt; binary_part(&quot;foo&quot;, 3, -1)
+&quot;o&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L389" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_atom/2">
+    <strong>binary_to_atom(binary, encoding)</strong>
+  </p>
+  <div class="docstring"><p>Returns the atom whose text representation is <code>binary</code>. If <code>encoding</code> is latin1,
+no translation of bytes in the binary is done. If <code>encoding</code> is utf8 or unicode,
+the binary must contain valid UTF-8 sequences; furthermore, only Unicode
+characters up to 0xFF are allowed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; binary_to_atom(&quot;elixir&quot;, :utf8)
+:elixir
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L406" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_existing_atom/2">
+    <strong>binary_to_existing_atom(binary, encoding)</strong>
+  </p>
+  <div class="docstring"><p>Works like <code>binary_to_atom/2</code>, but the atom must already exist.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L414" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_float/1">
+    <strong>binary_to_float(some_binary)</strong>
+  </p>
+  <div class="docstring"><p>Returns a float whose text representation is <code>some_binary</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; binary_to_float(&quot;2.2017764e+0&quot;)
+2.2017764
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2645" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_integer/1">
+    <strong>binary_to_integer(some_binary)</strong>
+  </p>
+  <div class="docstring"><p>Returns a integer whose text representation is <code>some_binary</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; binary_to_integer(&quot;123&quot;)
+123
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2618" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_integer/2">
+    <strong>binary_to_integer(some_binary, base)</strong>
+  </p>
+  <div class="docstring"><p>Returns an integer whose text representation in base <code>base</code>
+is <code>some_binary</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; binary_to_integer(&quot;3FF&quot;, 16)
+1023
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2632" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_list/1">
+    <strong>binary_to_list(binary)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of integers which correspond to the bytes of <code>binary</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L422" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_list/3">
+    <strong>binary_to_list(binary, start, stop)</strong>
+  </p>
+  <div class="docstring"><p>Like binary<em>to</em>list/1, but returns a list of integers corresponding to the bytes
+from position <code>start</code> to position <code>stop</code> in <code>binary</code>. Positions in the binary
+are numbered starting from 1.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L432" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_term/1">
+    <strong>binary_to_term(binary)</strong>
+  </p>
+  <div class="docstring"><p>Returns an Erlang term which is the result of decoding the binary
+object <code>binary</code>, which must be encoded according to the Erlang external
+term format.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; binary_to_term(term_to_binary(&quot;foo&quot;))
+&quot;foo&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L448" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_term/2">
+    <strong>binary_to_term(binary, options)</strong>
+  </p>
+  <div class="docstring"><p>As <code>binary_to_term/1</code>, but accepts a safe option useful when receiving
+binaries from an untrusted source.</p>
+
+<p>When enabled, it prevents decoding data that may be used to attack the
+Erlang system. In the event of receiving unsafe data, decoding fails
+with a badarg error.</p>
+
+<p>Currently, this prevents creation of new atoms directly, creation of
+new atoms indirectly (as they are embedded in certain structures like pids,
+refs, funs, etc), and creation of new external function references. None
+of those resources are currently garbage collected, so unchecked creation
+of them can exhaust available memory.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; binary_to_term(term_to_binary(&quot;foo&quot;), [:safe])
+&quot;foo&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L473" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bit_size/1">
+    <strong>bit_size(bitstring)</strong>
+  </p>
+  <div class="docstring"><p>Returns an integer which is the size in bits of <code>bitstring</code>.</p>
+
+<p>Allowed in guard tests.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; bit_size(&lt;&lt;433::16,3::3&gt;&gt;)
+19
+iex&gt; bit_size(&lt;&lt;1,2,3&gt;&gt;)
+24
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L491" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bitstring_to_list/1">
+    <strong>bitstring_to_list(bitstring)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of integers which correspond to the bytes of <code>bitstring</code>. If the
+number of bits in the binary is not divisible by 8, the last element of the list will
+be a bitstring containing the remaining bits (1 up to 7 bits).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L501" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="byte_size/1">
+    <strong>byte_size(bitstring)</strong>
+  </p>
+  <div class="docstring"><p>Returns an integer which is the number of bytes needed to contain <code>bitstring</code>.
+(That is, if the number of bits in Bitstring is not divisible by 8, the resulting
+number of bytes will be rounded up.)</p>
+
+<p>Allowed in guard tests.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; byte_size(&lt;&lt;433::16,3::3&gt;&gt;)
+3
+iex&gt; byte_size(&lt;&lt;1,2,3&gt;&gt;)
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L521" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="exit/1">
+    <strong>exit(reason)</strong>
+  </p>
+  <div class="docstring"><p>Stops the execution of the calling process with the given reason.
+Since evaluating this function causes the process to terminate,
+it has no return value.</p>
+
+<h2>Examples</h2>
+
+<pre><code>exit(:normal)
+exit(:seems_bad)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L537" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="float/1">
+    <strong>float(number)</strong>
+  </p>
+  <div class="docstring"><p>Converts the given number to a float. Allowed in guard clauses.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L545" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="float_to_binary/1">
+    <strong>float_to_binary(some_float)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which corresponds to the text representation
+of <code>some_float</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; float_to_binary(7.0)
+&quot;7.00000000000000000000e+00&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2687" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="float_to_binary/2">
+    <strong>float_to_binary(float, options)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which corresponds to the text representation
+of <code>float</code>.</p>
+
+<h2>Options</h2>
+
+<ul>
+<li><code>:decimals</code> — number of decimal points to show</li>
+<li><code>:scientific</code> — number of decimal points to show, in scientific format</li>
+<li><code>:compact</code> — If true, use the most compact representation (ignored with the <code>scientific</code> option)</li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>float_to_binary 7.1, [decimals: 2, compact: true] #=&gt; &quot;7.1&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2706" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="float_to_list/1">
+    <strong>float_to_list(number)</strong>
+  </p>
+  <div class="docstring"><p>Returns a char list which corresponds to the text representation of the given float.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; float_to_list(7.0)
+&#39;7.00000000000000000000e+00&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L559" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="float_to_list/2">
+    <strong>float_to_list(float, options)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list which corresponds to the text representation
+of <code>float</code>.</p>
+
+<h2>Options</h2>
+
+<ul>
+<li><code>:decimals</code> — number of decimal points to show</li>
+<li><code>:scientific</code> — number of decimal points to show, in scientific format</li>
+<li><code>:compact</code> — If true, use the most compact representation (ignored with the <code>scientific</code> option)</li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>float_to_list 7.1, [decimals: 2, compact: true] #=&gt; &#39;7.1&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2725" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="function_exported?/3">
+    <strong>function_exported?(module, function, arity)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the <code>module</code> is loaded and contains a
+public <code>function</code> with the given <code>arity</code>, otherwise false.</p>
+
+<p>In case a tuple module is given, the <code>arity</code> is automatically
+increased by one.</p>
+
+<p>Notice that this function does not load the module in case
+it is not loaded. Check <code>Code.ensure_loaded/1</code> for more
+information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3088" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="hd/1">
+    <strong>hd(list)</strong>
+  </p>
+  <div class="docstring"><p>Returns the head of a list, raises badarg if the list is empty.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L567" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="integer_to_binary/1">
+    <strong>integer_to_binary(some_integer)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which corresponds to the text representation
+of <code>some_integer</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; integer_to_binary(123)
+&quot;123&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2659" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="integer_to_binary/2">
+    <strong>integer_to_binary(some_integer, base)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which corresponds to the text representation
+of <code>some_integer</code> in base <code>base</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; integer_to_binary(100, 16)
+&quot;64&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2673" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="integer_to_list/1">
+    <strong>integer_to_list(number)</strong>
+  </p>
+  <div class="docstring"><p>Returns a char list which corresponds to the text representation of the given integer.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; integer_to_list(7)
+&#39;7&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L581" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="integer_to_list/2">
+    <strong>integer_to_list(number, base)</strong>
+  </p>
+  <div class="docstring"><p>Returns a char list which corresponds to the text representation of the
+given integer in the given case.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; integer_to_list(1023, 16)
+&#39;3FF&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L596" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="iolist_size/1">
+    <strong>iolist_size(item)</strong>
+  </p>
+  <div class="docstring"><p>Returns the size of an iolist.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; iolist_size([1,2|&lt;&lt;3,4&gt;&gt;])
+4
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L610" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="iolist_to_binary/1">
+    <strong>iolist_to_binary(item)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which is made from the integers and binaries in iolist.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; bin1 = &lt;&lt;1,2,3&gt;&gt;
+...&gt; bin2 = &lt;&lt;4,5&gt;&gt;
+...&gt; bin3 = &lt;&lt;6&gt;&gt;
+...&gt; iolist_to_binary([bin1,1,[2,3,bin2],4|bin3])
+&lt;&lt;1,2,3,1,2,3,4,5,4,6&gt;&gt;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L627" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_alive/0">
+    <strong>is_alive()</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the local node is alive; that is,
+if the node can be part of a distributed system.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L636" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_atom/1">
+    <strong>is_atom(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is an atom; otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L646" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_binary/1">
+    <strong>is_binary(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a binary; otherwise returns false.</p>
+
+<p>A binary always contains a complete number of bytes.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L658" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_bitstring/1">
+    <strong>is_bitstring(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a bitstring (including a binary); otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L668" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_boolean/1">
+    <strong>is_boolean(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is either the atom <code>true</code> or the atom <code>false</code> (i.e. a boolean);
+otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L679" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_float/1">
+    <strong>is_float(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a floating point number; otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L689" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_function/1">
+    <strong>is_function(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a function; otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L699" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_function/2">
+    <strong>is_function(term, arity)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a function that can be applied with <code>arity</code> number of arguments;
+otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L710" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_integer/1">
+    <strong>is_integer(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is an integer; otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L720" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_list/1">
+    <strong>is_list(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a list with zero or more elements; otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L730" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_number/1">
+    <strong>is_number(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is either an integer or a floating point number;
+otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L741" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_pid/1">
+    <strong>is_pid(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a pid (process identifier); otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L751" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_port/1">
+    <strong>is_port(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a port identifier; otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L761" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_reference/1">
+    <strong>is_reference(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a reference; otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L771" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_tuple/1">
+    <strong>is_tuple(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a tuple; otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L781" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="length/1">
+    <strong>length(list)</strong>
+  </p>
+  <div class="docstring"><p>Returns the length of <code>list</code>.</p>
+
+<p>Allowed in guard tests.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; length([1,2,3,4,5,6,7,8,9])
+9
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L796" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_atom/1">
+    <strong>list_to_atom(char_list)</strong>
+  </p>
+  <div class="docstring"><p>Returns the atom whose text representation is <code>char_list</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; list_to_atom(&#39;elixir&#39;)
+:elixir
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L809" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_binary/1">
+    <strong>list_to_binary(char_list)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which is made from the content of <code>char_list</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; list_to_binary(&#39;Elixir&#39;)
+&quot;Elixir&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L822" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_bitstring/1">
+    <strong>list_to_bitstring(bitstring_list)</strong>
+  </p>
+  <div class="docstring"><p>Returns a bitstring which is made from the integers and bitstrings in <code>bitstring_list</code>.
+(the last tail in <code>bitstring_list</code> is allowed to be a bitstring.)</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; bin1 = &lt;&lt;1,2,3&gt;&gt;
+...&gt; bin2 = &lt;&lt;4,5&gt;&gt;
+...&gt; bin3 = &lt;&lt;6,7::4&gt;&gt;
+...&gt; list_to_bitstring([bin1,1,[2,3,bin2],4|bin3])
+&lt;&lt;1,2,3,1,2,3,4,5,4,6,7::size(4)&gt;&gt;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L840" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_existing_atom/1">
+    <strong>list_to_existing_atom(char_list)</strong>
+  </p>
+  <div class="docstring"><p>Returns the atom whose text representation is <code>char_list</code>, but only if there already
+exists such atom.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L849" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_float/1">
+    <strong>list_to_float(char_list)</strong>
+  </p>
+  <div class="docstring"><p>Returns the float whose text representation is <code>char_list</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; list_to_float(&#39;2.2017764e+0&#39;)
+2.2017764
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L862" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_integer/1">
+    <strong>list_to_integer(char_list)</strong>
+  </p>
+  <div class="docstring"><p>Returns an integer whose text representation is <code>char_list</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; list_to_integer(&#39;123&#39;)
+123
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L875" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_integer/2">
+    <strong>list_to_integer(char_list, base)</strong>
+  </p>
+  <div class="docstring"><p>Returns an integer whose text representation in base <code>base</code> is <code>char_list</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; list_to_integer(&#39;3FF&#39;, 16)
+1023
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L888" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_pid/1">
+    <strong>list_to_pid(char_list)</strong>
+  </p>
+  <div class="docstring"><p>Returns a pid whose text representation is <code>char_list</code>.</p>
+
+<h2>Warning:</h2>
+
+<p>This function is intended for debugging and for use in the Erlang
+operating system.</p>
+
+<p>It should not be used in application programs.</p>
+
+<h2>Examples</h2>
+
+<pre><code>list_to_pid(&#39;&lt;0.4.1&gt;&#39;) #=&gt; #PID&lt;0.4.1&gt;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L907" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_tuple/1">
+    <strong>list_to_tuple(list)</strong>
+  </p>
+  <div class="docstring"><p>Returns a tuple which corresponds to <code>list</code>. <code>list</code> can contain any Erlang terms.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; list_to_tuple([:share, [:elixir, 163]])
+{:share, [:elixir, 163]}
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L920" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="macro_exported?/3">
+    <strong>macro_exported?(module, macro, arity)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the <code>module</code> is loaded and contains a
+public <code>macro</code> with the given <code>arity</code>, otherwise false.</p>
+
+<p>Notice that this function does not load the module in case
+it is not loaded. Check <code>Code.ensure_loaded/1</code> for more
+information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3106" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="make_ref/0">
+    <strong>make_ref()</strong>
+  </p>
+  <div class="docstring"><p>Returns an almost unique reference.</p>
+
+<p>The returned reference will re-occur after approximately 2^82 calls;
+therefore it is unique enough for practical purposes.</p>
+
+<h2>Examples</h2>
+
+<pre><code>make_ref() #=&gt; #Reference&lt;0.0.0.135&gt;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L936" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="max/2">
+    <strong>max(first, second)</strong>
+  </p>
+  <div class="docstring"><p>Return the biggest of the two given terms according to
+Erlang&#39;s term ordering. If the terms compare equal, the
+first one is returned.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; max(1, 2)
+2
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L952" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="min/2">
+    <strong>min(first, second)</strong>
+  </p>
+  <div class="docstring"><p>Return the smallest of the two given terms according to
+Erlang&#39;s term ordering. If the terms compare equal, the
+first one is returned.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; min(1, 2)
+1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L968" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="node/0">
+    <strong>node()</strong>
+  </p>
+  <div class="docstring"><p>Returns an atom representing the name of the local node.
+If the node is not alive, nonode@nohost is returned instead.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L979" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="node/1">
+    <strong>node(arg)</strong>
+  </p>
+  <div class="docstring"><p>Returns the node where the given argument is located.
+The argument can be a pid, a reference, or a port.
+If the local node is not alive, nonode@nohost is returned.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L991" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="pid_to_list/1">
+    <strong>pid_to_list(pid)</strong>
+  </p>
+  <div class="docstring"><p>Returns a char list which corresponds to the text representation of pid.
+This function is intended for debugging and for use in the Erlang operating
+system. It should not be used in application programs.</p>
+
+<h2>Warning:</h2>
+
+<p>This function is intended for debugging and for use in the Erlang
+operating system.</p>
+
+<p>It should not be used in application programs.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1008" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="raise/1">
+    <strong>raise(msg)</strong>
+  </p>
+  <div class="docstring"><p>Raises an error.</p>
+
+<p>If the argument is a binary, it raises <code>RuntimeError</code>
+using the given argument as message.</p>
+
+<p>If anything else, becomes a call to <code>raise(argument, [])</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>raise &quot;Given values do not match&quot;
+
+try do
+  1 + :foo
+rescue
+  x in [ArithmeticError] -&gt;
+    IO.puts &quot;that was expected&quot;
+    raise x
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3019" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="raise/2">
+    <strong>raise(exception, args)</strong>
+  </p>
+  <div class="docstring"><p>Raises an error.</p>
+
+<p>It calls <code>.exception</code> on the given argument passing
+the args in order to retrieve the appropriate exception
+structure.</p>
+
+<p>Any module defined via <code>defexception</code> automatically
+defines both <code>exception(args)</code> and <code>exception(args, current)</code>
+that creates a new and updates the given exception.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; raise(ArgumentError, message: &quot;Sample&quot;)
+** (ArgumentError) Sample
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3045" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="raise/3">
+    <strong>raise(exception, args, stacktrace)</strong>
+  </p>
+  <div class="docstring"><p>Re-raises an exception with the given stacktrace.</p>
+
+<h2>Examples</h2>
+
+<pre><code>try do
+  raise &quot;Oops&quot;
+rescue
+  exception -&gt;
+    stacktrace = System.stacktrace
+    if exception.message == &quot;Oops&quot; do
+      raise exception, [], stacktrace
+    end
+end
+</code></pre>
+
+<p>Notice that <code>System.stacktrace</code> returns the stacktrace
+of the last exception. That said, it is common to assign
+the stacktrace as the first expression inside a <code>rescue</code>
+clause as any other exception potentially raised (and
+rescued) in between the rescue clause and the raise call
+may change the <code>System.stacktrace</code> value.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3072" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="round/1">
+    <strong>round(number)</strong>
+  </p>
+  <div class="docstring"><p>Returns an integer by rounding the given number.
+Allowed in guard tests.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; round(5.5)
+6
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1023" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="self/0">
+    <strong>self()</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid (process identifier) of the calling process.
+Allowed in guard clauses.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1032" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="size/1">
+    <strong>size(arg)</strong>
+  </p>
+  <div class="docstring"><p>Returns the size of the given argument, which must be a tuple
+or a binary. If possible, please use <code>tuple_size</code> or <code>binary_size</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1041" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/1">
+    <strong>spawn(fun)</strong>
+  </p>
+  <div class="docstring"><p>Spawns the given function and returns its pid.</p>
+
+<p>Check the modules <code>Process</code> and <code>Node</code> for other functions
+to handle processes, including spawning functions in nodes.</p>
+
+<h2>Examples</h2>
+
+<pre><code>current = Kernel.self
+child   = spawn(fn -&gt; current &lt;- { Kernel.self, 1 + 2 } end)
+
+receive do
+  { ^child, 3 } -&gt; IO.puts &quot;Received 3 back&quot;
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1062" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/3">
+    <strong>spawn(module, fun, args)</strong>
+  </p>
+  <div class="docstring"><p>Spawns the given module and function passing the given args
+and returns its pid.</p>
+
+<p>Check the modules <code>Process</code> and <code>Node</code> for other functions
+to handle processes, including spawning functions in nodes.</p>
+
+<h2>Examples</h2>
+
+<pre><code>spawn(SomeModule, :function, [1,2,3])
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1079" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn_link/1">
+    <strong>spawn_link(fun)</strong>
+  </p>
+  <div class="docstring"><p>Spawns the given function, links it to the current process and returns its pid.</p>
+
+<p>Check the modules <code>Process</code> and <code>Node</code> for other functions
+to handle processes, including spawning functions in nodes.</p>
+
+<h2>Examples</h2>
+
+<pre><code>current = Kernel.self
+child   = spawn_link(fn -&gt; current &lt;- { Kernel.self, 1 + 2 } end)
+
+receive do
+  { ^child, 3 } -&gt; IO.puts &quot;Received 3 back&quot;
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1100" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn_link/3">
+    <strong>spawn_link(module, fun, args)</strong>
+  </p>
+  <div class="docstring"><p>Spawns the given module and function passing the given args,
+links it to the current process and returns its pid.</p>
+
+<p>Check the modules <code>Process</code> and <code>Node</code> for other functions
+to handle processes, including spawning functions in nodes.</p>
+
+<h2>Examples</h2>
+
+<pre><code>spawn_link(SomeModule, :function, [1,2,3])
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1117" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="term_to_binary/1">
+    <strong>term_to_binary(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which is the result of encoding the given term
+according to the Erlang external term format.</p>
+
+<p>This can be used for a variety of purposes, for example, writing a term
+to a file in an efficient way, or sending an Erlang term to some type
+of communications channel not supported by distributed :</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1130" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="term_to_binary/2">
+    <strong>term_to_binary(term, opts)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>term_to_binary/1</code> but also supports two options:</p>
+
+<ul>
+<li><code>compressed</code>: the level of compression to be used from 0 to 9;</li>
+<li><code>minor_version</code>: used to control the details of encoding. Can be 0 or 1,
+please read <a href="http://www.erlang.org/doc/man/erlang.html#term_to_binary-2">http://www.erlang.org/doc/man/erlang.html#term_to_binary-2</a>
+for more details</li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1144" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="throw/1">
+    <strong>throw(term)</strong>
+  </p>
+  <div class="docstring"><p>A non-local return from a function. Check try/2 for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1152" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="tl/1">
+    <strong>tl(list)</strong>
+  </p>
+  <div class="docstring"><p>Returns the tail of a list. Raises ArgumentError if the list is empty.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1160" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="trunc/1">
+    <strong>trunc(number)</strong>
+  </p>
+  <div class="docstring"><p>Returns an integer by truncating the given number.
+Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; trunc(5.5)
+5
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1175" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="tuple_size/1">
+    <strong>tuple_size(tuple)</strong>
+  </p>
+  <div class="docstring"><p>Returns the size of a tuple.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1183" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="tuple_to_list/1">
+    <strong>tuple_to_list(tuple)</strong>
+  </p>
+  <div class="docstring"><p>Converts a tuple to a list.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1191" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="!/1">
+    <strong>!arg</strong>
+  </p>
+  <div class="docstring"><p>Receives any argument and returns true if it is false
+or nil. Returns false otherwise. Not allowed in guard
+clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; !1
+false
+iex&gt; ![1,2,3]
+false
+iex&gt; !false
+true
+iex&gt; !nil
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L180" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="!=/2">
+    <strong>left != right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the two items are not equal.</p>
+
+<p>This operator considers 1 and 1.0 to be equal. For strict
+comparison, use <code>!==</code> instead.</p>
+
+<p>Like Erlang, Elixir can compare any term. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 != 2
+true
+iex&gt; 1 != 1.0
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L265" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="!==/2">
+    <strong>left !== right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the two items are strictly not equal.
+Like Erlang, Elixir can compare any term. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 !== 2
+true
+
+iex&gt; 1 !== 1.0
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L295" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&amp;&amp;/2">
+    <strong>left &amp;&amp; right</strong>
+  </p>
+  <div class="docstring"><p>Provides a short-circuit operator that evaluates and returns
+the second expression only if the first one evaluates to true
+(i.e. it is not nil nor false). Returns the first expression
+otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; true &amp;&amp; true
+true
+iex&gt; nil &amp;&amp; true
+nil
+iex&gt; true &amp;&amp; 1
+1
+iex&gt; false &amp;&amp; throw(:bad)
+false
+</code></pre>
+
+<p>Notice that, differently from Erlang <code>and</code> operator,
+this operator accepts any expression as arguments,
+not only booleans, however it is not allowed in guards.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2842" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="*/2">
+    <strong>left * right</strong>
+  </p>
+  <div class="docstring"><p>Arithmetic multiplication. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 * 2
+2
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="+/2">
+    <strong>left + right</strong>
+  </p>
+  <div class="docstring"><p>Arithmetic plus. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 + 2
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L31" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="++/2">
+    <strong>left ++ right</strong>
+  </p>
+  <div class="docstring"><p>Concatenates two lists. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; [1] ++ [2,3]
+[1,2,3]
+
+iex&gt; &#39;foo&#39; ++ &#39;bar&#39;
+&#39;foobar&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L95" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="-/2">
+    <strong>left - right</strong>
+  </p>
+  <div class="docstring"><p>Arithmetic minus. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 - 2
+-1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L42" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="--/2">
+    <strong>left -- right</strong>
+  </p>
+  <div class="docstring"><p>Removes the first occorrence of an item on the left
+for each item on the right. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; [1,2,3] -- [1,2]
+[3]
+
+iex&gt; [1,2,3,2,1] -- [1,2,2]
+[3,1]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L110" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="../2">
+    <strong>first .. last</strong>
+  </p>
+  <div class="docstring"><p>Returns a range with the specified start and end.
+Includes both ends.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 0 in 1..3
+false
+iex&gt; 1 in 1..3
+true
+iex&gt; 2 in 1..3
+true
+iex&gt; 3 in 1..3
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2817" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="//2">
+    <strong>left / right</strong>
+  </p>
+  <div class="docstring"><p>Arithmetic division. Differently from other languages,
+the result is always a float. Use div and rem if you want
+a natural division or the remainder. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 / 2
+0.5
+iex&gt; 2 / 1
+2.0
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L68" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&lt;/2">
+    <strong>left &lt; right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if left is less than right.
+Like Erlang, Elixir can compare any term. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 &lt; 2
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L192" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&lt;-/2">
+    <strong>pid &lt;- msg</strong>
+  </p>
+  <div class="docstring"><p>Sends a message to the process identified on the left.
+A process can be identified bu its PID or, if it is registered,
+by an atom.</p>
+
+<h2>Examples</h2>
+
+<pre><code>process = Kernel.self
+process &lt;- { :ok, &quot;Sending myself a message&quot; }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&lt;=/2">
+    <strong>left &lt;= right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if left is less than or equal to right.
+Like Erlang, Elixir can compare any term. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 &lt;= 2
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L216" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&lt;&gt;/2">
+    <strong>left &lt;&gt; right</strong>
+  </p>
+  <div class="docstring"><p>Concatenates two binaries.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; &quot;foo&quot; &lt;&gt; &quot;bar&quot;
+&quot;foobar&quot;
+</code></pre>
+
+<p>The <code>&lt;&gt;</code> operator can also be used in guard clauses as
+long as the first part is a literal binary:</p>
+
+<pre><code>iex&gt; &quot;foo&quot; &lt;&gt; x = &quot;foobar&quot;
+...&gt; x
+&quot;bar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2796" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="==/2">
+    <strong>left == right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the two items are equal.</p>
+
+<p>This operator considers 1 and 1.0 to be equal. For strict
+comparison, use <code>===</code> instead.</p>
+
+<p>Like Erlang, Elixir can compare any term. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 == 2
+false
+
+iex&gt; 1 == 1.0
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L247" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="===/2">
+    <strong>left === right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the two items are strictly equal.
+Like Erlang, Elixir can compare any term. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 === 2
+false
+
+iex&gt; 1 === 1.0
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L280" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="=~/2">
+    <strong>left =~ right</strong>
+  </p>
+  <div class="docstring"><p>Matches the term on the left against the regular expression
+on the right. It returns nil if not match happened or the
+first match otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; &quot;abcd&quot; =~ %r/c(d)/
+2
+iex&gt; &quot;abcd&quot; =~ %r/e/
+nil
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2936" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&gt;/2">
+    <strong>left &gt; right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if left is more than right.
+Like Erlang, Elixir can compare any term. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 &gt; 2
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L204" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&gt;=/2">
+    <strong>left &gt;= right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if left is more than or equal to right.
+Like Erlang, Elixir can compare any term. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 &gt;= 2
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L228" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="@/1">
+    <strong>@expr</strong>
+  </p>
+  <div class="docstring"><p>This macro is a shortcut to read and add attributes to the module
+being compiled. Elixir module attributes are similar to Erlang&#39;s with
+some differences. The canonical example for attributes is annotating
+that a module implements the OTP behavior called <code>gen_server</code>:</p>
+
+<pre><code>defmodule MyServer do
+  @behavior :gen_server
+  # ... callbacks ...
+end
+</code></pre>
+
+<p>Elixir supports by default all Erlang module attributes but any developer
+can also add custom attributes:</p>
+
+<pre><code>defmodule MyServer do
+  @my_data 13
+  IO.inspect @my_data #=&gt; 13
+end
+</code></pre>
+
+<p>Differently from Erlang, such attributes are not stored in the module by
+default since it is common in Elixir to use such attributes to store
+temporary data. A developer can configure an attribute to behave closer
+to Erlang by calling <code>Module.register_attribute/2</code>.</p>
+
+<p>Finally notice that attributes can also be read inside functions:</p>
+
+<pre><code>defmodule MyServer do
+  @my_data 11
+  def first_data, do: @my_data
+  @my_data 13
+  def second_data, do: @my_data
+end
+
+MyServer.first_data #=&gt; 11
+MyServer.second_data #=&gt; 13
+</code></pre>
+
+<p>It is important to note that reading an attribute takes a snapshot of
+its current value. In other words, the value is read at compilation
+time and not at runtime. Check the module <code>Module</code> for other functions
+to manipulate module attributes.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2456" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__B__/2">
+    <strong>__B__(string, list2)</strong>
+  </p>
+  <div class="docstring"><p>Handles the sigil %B. It simples returns a binary
+without escaping characters and without interpolations.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; %B(foo)
+&quot;foo&quot;
+iex&gt; %B(f#{o}o)
+&quot;f\#{o}o&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3286" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__C__/2">
+    <strong>__C__(arg1, list2)</strong>
+  </p>
+  <div class="docstring"><p>Handles the sigil %C. It simply returns a char list
+without escaping characters and without interpolations.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; %C(foo)
+&#39;foo&#39;
+iex&gt; %C(f#{o}o)
+&#39;f\#{o}o&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3318" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__R__/2">
+    <strong>__R__(arg1, options)</strong>
+  </p>
+  <div class="docstring"><p>Handles the sigil %R. It returns a Regex pattern without escaping
+nor interpreting interpolations.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.match?(%R(f#{1,3}o), &quot;f#o&quot;)
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3376" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__W__/2">
+    <strong>__W__(arg1, modifiers)</strong>
+  </p>
+  <div class="docstring"><p>Handles the sigil %W. It returns a list of &quot;words&quot; split by whitespace
+without escaping nor interpreting interpolations.</p>
+
+<h2>Modifiers</h2>
+
+<ul>
+<li><code>b</code>: binaries (default)</li>
+<li><code>a</code>: atoms</li>
+<li><code>c</code>: char lists</li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; %W(foo #{bar} baz)
+[&quot;foo&quot;, &quot;\#{bar}&quot;, &quot;baz&quot;]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3426" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__b__/2">
+    <strong>__b__(arg1, list2)</strong>
+  </p>
+  <div class="docstring"><p>Handles the sigil %b. It returns a binary as if it was double quoted
+string, unescaping characters and replacing interpolations.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; %b(foo)
+&quot;foo&quot;
+iex&gt; %b(f#{:o}o)
+&quot;foo&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3302" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__c__/2">
+    <strong>__c__(arg1, list2)</strong>
+  </p>
+  <div class="docstring"><p>Handles the sigil %c. It returns a char list as if it was a single
+quoted string, unescaping characters and replacing interpolations.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; %c(foo)
+&#39;foo&#39;
+iex&gt; %c(f#{:o}o)
+&#39;foo&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3337" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__r__/2">
+    <strong>__r__(arg1, options)</strong>
+  </p>
+  <div class="docstring"><p>Handles the sigil %r. It returns a Regex pattern.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.match?(%r(foo), &quot;foo&quot;)
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3355" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__w__/2">
+    <strong>__w__(arg1, modifiers)</strong>
+  </p>
+  <div class="docstring"><p>Handles the sigil %w. It returns a list of &quot;words&quot; split by whitespace.</p>
+
+<h2>Modifiers</h2>
+
+<ul>
+<li><code>b</code>: binaries (default)</li>
+<li><code>a</code>: atoms</li>
+<li><code>c</code>: char lists</li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; %w(foo #{:bar} baz)
+[&quot;foo&quot;, &quot;bar&quot;, &quot;baz&quot;]
+iex&gt; %w(--source test/enum_test.exs)
+[&quot;--source&quot;, &quot;test/enum_test.exs&quot;]
+iex&gt; %w(foo bar baz)a
+[:foo, :bar, :baz]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3401" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="access/2">
+    <strong>access(element, args)</strong>
+  </p>
+  <div class="docstring"><p>Access the given element using the qualifier according
+to the <code>Access</code> protocol. All calls in the form <code>foo[bar]</code>
+are translated to <code>access(foo, bar)</code>.</p>
+
+<p>The usage of this protocol is to access a raw value in a
+keyword list.</p>
+
+<pre><code>sample = [a: 1, b: 2, c: 3]
+sample[:b] #=&gt; 2
+</code></pre>
+
+<h2>Atoms</h2>
+
+<p>Whenever invoked on an atom, the access protocol is expanded
+at compilation time rather than on runtime. This feature is used
+by records to allow a developer to match against an specific part
+of a record:</p>
+
+<pre><code>def increment(State[counter: counter, other: 13] = state) do
+  state.counter(counter + 1)
+end
+</code></pre>
+
+<p>In the example above, we use the Access protocol to match the
+counter field in the record <code>State</code>. Considering the record
+definition is as follows:</p>
+
+<pre><code>defrecord State, counter: 0, other: nil
+</code></pre>
+
+<p>The clause above is translated to:</p>
+
+<pre><code>def increment({ State, counter, 13 } = state) do
+  state.counter(counter + 1)
+end
+</code></pre>
+
+<p>The same pattern can be used to create a new record:</p>
+
+<pre><code>def new_state(counter) do
+  State[counter: counter]
+end
+</code></pre>
+
+<p>The example above is slightly faster than <code>State.new(counter: :counter)</code>
+because the record is expanded at compilation time and not at runtime.
+If a field is not specified on creation, it will have its default value.</p>
+
+<p>Finally, as in Erlang, Elixir also allows the following syntax:</p>
+
+<pre><code>new_uri = State[_: 1]
+</code></pre>
+
+<p>In this case <strong>all</strong> fields will be set to <code>1</code>. Notice that,
+as in Erlang, in case an expression is given, it will be
+evaluated multiple times:</p>
+
+<pre><code>new_uri = State[_: IO.puts &quot;Hello&quot;]
+</code></pre>
+
+<p>In this case, <code>&quot;Hello&quot;</code> will be printed twice (one per each field).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3167" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="and/2">
+    <strong>left and right</strong>
+  </p>
+  <div class="docstring"><p>Boolean and. Arguments must be booleans.
+Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; true and false
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L134" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="apply/2">
+    <strong>apply(fun, args)</strong>
+  </p>
+  <div class="docstring"><p>Invokes the given <code>fun</code> with the array of arguments <code>args</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; apply(fn x -&gt; x * 2 end, [2])
+4
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L306" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="apply/3">
+    <strong>apply(module, fun, args)</strong>
+  </p>
+  <div class="docstring"><p>Invokes the given <code>fun</code> from <code>module</code> with the array of arguments <code>args</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; apply(Enum, :reverse, [[1,2,3]])
+[3,2,1]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L317" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="atom_to_binary/1">
+    <strong>atom_to_binary(some_atom)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which corresponds to the text representation
+of <code>some_atom</code> in UTF8 encoding.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; atom_to_binary(:my_atom)
+&quot;my_atom&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2774" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_atom/1">
+    <strong>binary_to_atom(some_binary)</strong>
+  </p>
+  <div class="docstring"><p>Returns the atom whose text representation is
+<code>some_binary</code> in UTF8 encoding.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; binary_to_atom(&quot;my_atom&quot;)
+:my_atom
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2739" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_existing_atom/1">
+    <strong>binary_to_existing_atom(some_binary)</strong>
+  </p>
+  <div class="docstring"><p>Works like <code>binary_to_atom</code> but the atom must exist.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; :my_atom
+...&gt; binary_to_existing_atom(&quot;my_atom&quot;)
+:my_atom
+
+iex&gt; binary_to_existing_atom(&quot;this_atom_will_never_exist&quot;)
+** (ArgumentError) argument error
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2758" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="case/2">
+    <strong>case(condition, blocks)</strong>
+  </p>
+  <div class="docstring"><p>Matches the given expression against the match clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>case thing do
+  { :selector, i, value } when is_integer(i) -&gt;
+    value
+  value -&gt; value
+end
+</code></pre>
+
+<p>In the example above, we compare <code>thing</code> with each given match
+clause and evaluate the expression corresponding to the first clause
+that matches. If no clause matches, an error is raised.</p>
+
+<p>Since Elixir variables can be assigned more than once, variables
+in a match clause will always be assigned instead of matching with
+its previous values. For example:</p>
+
+<pre><code>i = 1
+case 10 do
+  i -&gt; i * 2
+end
+</code></pre>
+
+<p>The example above will return 20, because <code>i</code> is assigned to 10
+and then multiplied by 2. If you desire to match the value of <code>i</code>
+against the given condition, you need to use the <code>^</code> operator:</p>
+
+<pre><code>i = 1
+case 10 do
+  ^i -&gt; i * 2
+end
+</code></pre>
+
+<p>The example above will actually fail because 10 does not match 1.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2259" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cond/1">
+    <strong>cond(list1)</strong>
+  </p>
+  <div class="docstring"><p>Evaluates the expression corresponding to the first clause that
+evaluates to true. Raises an error if all conditions evaluate to
+to falsy values (nil or false).</p>
+
+<h2>Examples</h2>
+
+<pre><code>cond do
+  1 + 1 == 1 -&gt;
+    &quot;This will never match&quot;
+  2 * 2 != 4 -&gt;
+    &quot;Nor this&quot;
+  true -&gt;
+    &quot;This will&quot;
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2522" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="def/2">
+    <strong>def(name, list2)</strong>
+  </p>
+  <div class="docstring"><p>Defines a function with the given name and contents.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Foo do
+  def bar, do: :baz
+end
+
+Foo.bar #=&gt; :baz
+</code></pre>
+
+<p>A function that expects arguments can be defined as follow:</p>
+
+<pre><code>defmodule Foo do
+  def sum(a, b) do
+    a + b
+  end
+end
+</code></pre>
+
+<p>In the example above, we defined a function <code>sum</code> that receives
+two arguments and sum them.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1261" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="def/4">
+    <strong>def(name, args, guards, list4)</strong>
+  </p>
+  <div class="docstring"><p>This macro allows a function to be defined more explicitly
+by accepting the name, args and guards as different entries.</p>
+
+<p>Differently from <code>def/2</code>, the macro arguments are evaluated
+and therefore requires quoting.</p>
+
+<p>The <code>name</code> must be an atom, the <code>arguments</code> a list where each
+element represents another argument and <code>guards</code> a list of
+clauses, where each clause is disjunct.</p>
+
+<h2>Examples</h2>
+
+<p>The most common mistake when using this macro is to pass the
+arguments without quoting:</p>
+
+<pre><code>def :some_function, [first_arg, second_arg], is_list(first_arg) do
+  # ...
+end
+</code></pre>
+
+<p>However, the example above will fail because it will attempt to
+evaluate <code>[first_arg, second_arg]</code> and fail because the variable
+<code>first_arg</code> is not defined. Therefore, we need to use quote:</p>
+
+<pre><code>name   = :some_function
+args   = quote(do: [first_arg, second_arg])
+guards = quote(do: is_list(first_arg))
+exprs  = quote(do: ...)
+
+def name, args, guards, do: exprs
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1295" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defdelegate/2">
+    <strong>defdelegate(funs, opts)</strong>
+  </p>
+  <div class="docstring"><p>Defines the given functions in the current module that will
+delegate to the given <code>target</code>. Functions defined with
+<code>defdelegate</code> are public and are allowed to be invoked
+from external. If you find yourself wishing to define a
+delegation as private, you should likely use import
+instead.</p>
+
+<p>Delegation only works with functions, delegating to macros
+is not supported.</p>
+
+<h2>Options</h2>
+
+<ul>
+<li><p><code>:to</code> - The expression to delegate to. Any expression
+is allowed and its results will be calculated on runtime;</p></li>
+<li><p><code>:as</code> - The function to call on the target given in <code>:to</code>.
+This parameter is optional and defaults to the name being
+delegated.</p></li>
+<li><p><code>:append_first</code> - If true, when delegated, first argument
+passed to the delegate will be relocated to the end of the
+arguments when dispatched to the target. The motivation behind
+this is a disparity between conventions used in Elixir and :
+Elixir&#39;s convention is to pass the &quot;handle&quot; as a first argument,
+while in Erlang the convention is to pass it as the last argument</p></li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule MyList do
+  defdelegate reverse(list), to: :lists
+  defdelegate [reverse(list), map(callback, list)], to: :lists
+  defdelegate other_reverse(list), to: :lists, as: :reverse
+end
+
+MyList.reverse([1,2,3])
+#=&gt; [3,2,1]
+
+MyList.other_reverse([1,2,3])
+#=&gt; [3,2,1]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3244" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defexception/4">
+    <strong>defexception(name, fields, opts // [], do_block // [])</strong>
+  </p>
+  <div class="docstring"><p>Defines an exception.</p>
+
+<p>Exceptions are simply records and therefore <code>defexception/4</code> has
+the same API and similar behavior to <code>defrecord/4</code> with two notable
+differences:</p>
+
+<p>1) Differently from records, exceptions are documented by default;</p>
+
+<p>2) Exceptions <strong>must</strong> implement <code>message/1</code> as API that return a
+   binary as result;</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1578" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defimpl/3">
+    <strong>defimpl(name, opts, do_block // [])</strong>
+  </p>
+  <div class="docstring"><p>Defines an implementation for the given protocol. See
+<code>defprotocol/2</code> for examples.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1824" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defmacro/2">
+    <strong>defmacro(name, list2)</strong>
+  </p>
+  <div class="docstring"><p>Defines a macro with the given name and contents.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule MyLogic do
+  defmacro unless(expr, opts) do
+    quote do
+      if !unquote(expr), unquote(opts)
+    end
+  end
+end
+
+require MyLogic
+MyLogic.unless false do
+  IO.puts &quot;It works&quot;
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1342" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defmacro/4">
+    <strong>defmacro(name, args, guards, list4)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>def/4</code> but generates a macro.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1347" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defmacrop/2">
+    <strong>defmacrop(name, list2)</strong>
+  </p>
+  <div class="docstring"><p>Defines a macro that is private. Private macros
+can only be accessible from the same module it is defined.</p>
+
+<p>Check <code>defmacro/2</code> for more information</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1355" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defmacrop/4">
+    <strong>defmacrop(name, args, guards, list4)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>def/4</code> but generates a private macro.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1360" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defmodule/2">
+    <strong>defmodule(name, list2)</strong>
+  </p>
+  <div class="docstring"><p>Defines a module given by name with the given contents.</p>
+
+<p>It returns the module name, the module binary and the
+block contents result.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Foo do
+  def bar, do: :baz
+end
+
+Foo.bar #=&gt; :baz
+</code></pre>
+
+<h2>Nesting</h2>
+
+<p>Nesting a module inside the other affects its name:</p>
+
+<pre><code>defmodule Foo do
+  defmodule Bar do
+  end
+end
+</code></pre>
+
+<p>In the example above, two modules <code>Foo</code> and <code>Foo.Bar</code>. The
+second can be accessed as <code>Bar</code> inside <code>Foo</code> in the same
+lexical scope. If the module Bar is moved away to another
+file, it needs to be referenced via the full name or an
+alias need to be set with the help of <code>Kernel.SpecialForms.alias/2</code>.</p>
+
+<h2>Dynamic names</h2>
+
+<p>Elixir module names can be dynamically generated. This is very
+useful for macros. For instance, one could write:</p>
+
+<pre><code>defmodule binary_to_atom(&quot;Foo#{1}&quot;, :utf8) do
+  # contents ...
+end
+</code></pre>
+
+<p>Elixir will accept any module name as long as the expression
+returns an atom.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1236" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defoverridable/1">
+    <strong>defoverridable(tuples)</strong>
+  </p>
+  <div class="docstring"><p>Makes the given functions in the current module overridable.
+An overridable function is lazily defined, allowing a
+developer to customize it.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1835" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defp/2">
+    <strong>defp(name, list2)</strong>
+  </p>
+  <div class="docstring"><p>Defines a function that is private. Private functions
+can only be accessible from the same module it is defined.</p>
+
+<p>Check <code>def/2</code> for more information</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Foo do
+  def bar do
+    sum(1, 2)
+  end
+
+  defp sum(a, b), do: a + b
+end
+</code></pre>
+
+<p>In the example above, <code>sum</code> is private and accessing it
+through <code>Foo.sum</code> will raise an error.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1316" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defp/4">
+    <strong>defp(name, args, guards, list4)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>def/4</code> but generates a private function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1321" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defprotocol/2">
+    <strong>defprotocol(name, list2)</strong>
+  </p>
+  <div class="docstring"><p>Defines the current module as a protocol and specifies the API
+that should be implemented.</p>
+
+<h2>Examples</h2>
+
+<p>In Elixir, only <code>false</code> and <code>nil</code> are considered falsy values.
+Everything else evaluates to true in <code>if</code> clauses. Depending
+on the application, it may be important to specify a <code>blank?</code>
+protocol that returns a boolean for other data types that should
+be considered <code>blank?</code>. For instance, an empty list or an empty
+binary could be considered blanks.</p>
+
+<p>We could implement this protocol as follow:</p>
+
+<pre><code>defprotocol Blank do
+  @doc &quot;Returns true if data is considered blank/empty&quot;
+  def blank?(data)
+end
+</code></pre>
+
+<p>Now that the protocol is defined, we can implement it. We need
+to implement the protocol for each Elixir type. For example:</p>
+
+<pre><code># Numbers are never blank
+defimpl Blank, for: Number do
+  def blank?(number), do: false
+end
+
+# Just empty list is blank
+defimpl Blank, for: List do
+  def blank?([]), do: true
+  def blank?(_),  do: false
+end
+
+# Just the atoms false and nil are blank
+defimpl Blank, for: Atom do
+  def blank?(false), do: true
+  def blank?(nil),   do: true
+  def blank?(_),     do: false
+end
+</code></pre>
+
+<p>And we would have to define the implementation for all types.
+The types available are:</p>
+
+<ul>
+<li>Record</li>
+<li>Tuple</li>
+<li>Atom</li>
+<li>List</li>
+<li>BitString</li>
+<li>Number</li>
+<li>Function</li>
+<li>PID</li>
+<li>Port</li>
+<li>Reference</li>
+<li>Any</li>
+</ul>
+
+<h2>Selecting implementations</h2>
+
+<p>Implementing the protocol for all default types can be cumbersome.
+Even more, if you consider that Number, Function, PID, Port and
+Reference are never going to be blank, it would be easier if we
+could simply provide a default implementation.</p>
+
+<p>This can be achieved in Elixir as follows:</p>
+
+<pre><code>defprotocol Blank do
+  @only [Atom, Tuple, List, BitString, Any]
+  def blank?(data)
+end
+</code></pre>
+
+<p>If the protocol is invoked with a data type that is not an Atom,
+a Tuple, a List, or a BitString, Elixir will now dispatch to
+Any. That said, the default behavior could be implemented as:</p>
+
+<pre><code>defimpl Blank, for: Any do
+  def blank?(_), do: false
+end
+</code></pre>
+
+<p>Now, all data types that we have not specified will be
+automatically considered non blank.</p>
+
+<h2>Protocols + Records</h2>
+
+<p>The real benefit of protocols comes when mixed with records.
+For instance, imagine we have a module called <code>RedBlack</code> that
+provides an API to create and manipulate Red-Black trees. This
+module represents such trees via a record named <code>RedBlack.Tree</code>
+and we want this tree to be considered blank in case it has no
+items. To achieve this, the developer just needs to implement
+the protocol for <code>RedBlack.Tree</code>:</p>
+
+<pre><code>defimpl Blank, for: RedBlack.Tree do
+  def blank?(tree), do: RedBlack.empty?(tree)
+end
+</code></pre>
+
+<p>In the example above, we have implemented <code>blank?</code> for
+<code>RedBlack.Tree</code> that simply delegates to <code>RedBlack.empty?</code> passing
+the tree as argument. This implementation doesn&#39;t need to be defined
+inside the <code>RedBlack</code> tree or inside the record; it can be defined
+anywhere in the code.</p>
+
+<p>Finally, since records are simply tuples, one can add a default
+protocol implementation to any record by defining a default
+implementation for tuples.</p>
+
+<h2>Types</h2>
+
+<p>As in records, defining a protocol automatically defines a type
+named <code>t</code>, which can be used as:</p>
+
+<pre><code>@spec present?(Blank.t) :: boolean
+def present?(blank) do
+  not Blank.blank?(blank)
+end
+</code></pre>
+
+<p>The <code>@spec</code> above expresses that all types allowed to implement the
+given protocol are valid argument types for the given function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1816" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defrecord/3">
+    <strong>defrecord(name, fields, do_block // [])</strong>
+  </p>
+  <div class="docstring"><p>Defines a record.</p>
+
+<p>A record is a tagged tuple which contains one or more elements
+and the first element is a module. This macro defines a module
+that generates accessors to manipulate the record at both
+compilation and runtime.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defrecord FileInfo, atime: nil, accesses: 0
+</code></pre>
+
+<p>The line above will define a module named <code>FileInfo</code> which
+contains a function named <code>new</code> that returns a new record
+and other functions to read and set the values in the
+record:</p>
+
+<pre><code>file_info = FileInfo.new(atime: now())
+file_info.atime         #=&gt; Returns the value of atime
+file_info.atime(now())  #=&gt; Updates the value of atime
+</code></pre>
+
+<p>A record is simply a tuple where the first element is the record
+module name. We can get the record raw representation as follow:</p>
+
+<pre><code>inspect FileInfo.new, raw: true
+#=&gt; { FileInfo, nil, nil }
+</code></pre>
+
+<p>Besides defining readers and writers for each attribute, Elixir also
+defines an <code>update_#{attribute}</code> function to update the value. Such
+functions expect a function as argument that receives the current
+value and must return the new one. For example, every time the file
+is accessed, the accesses counter can be incremented with:</p>
+
+<pre><code>file_info.update_accesses(fn(old) -&gt; old + 1 end)
+</code></pre>
+
+<p>Which can be also written as:</p>
+
+<pre><code>file_info.update_accesses(&amp;1 + 1)
+</code></pre>
+
+<h2>Access syntax</h2>
+
+<p>Records in Elixir can be expanded at compilation time to provide
+pattern matching and faster operations. For example, the clause
+below will only match if a <code>FileInfo</code> is given and the number of
+accesses is zero:</p>
+
+<pre><code>def enforce_no_access(FileInfo[accesses: 0]), do: :ok
+</code></pre>
+
+<p>The clause above will expand to:</p>
+
+<pre><code>def enforce_no_access({ FileInfo, _, 0 }), do: :ok
+</code></pre>
+
+<p>The downside of using such syntax is that, every time the record
+changes, your code now needs to be recompiled (which is usually
+not a concern since Elixir build tools by default recompiles the
+whole project whenever there is a change).</p>
+
+<p>Finally, keep in mind that Elixir triggers some optimizations whenever
+the access syntax is used. For example:</p>
+
+<pre><code>def no_access?(FileInfo[] = file_info) do
+  file_info.accesses == 0
+end
+</code></pre>
+
+<p>Is translated to:</p>
+
+<pre><code>def no_access?({ FileInfo, _, _ } = file_info) do
+  elem(file_info, 1) == 0
+end
+</code></pre>
+
+<p>Which provides faster get and set times for record operations.</p>
+
+<h2>Runtime introspection</h2>
+
+<p>At runtime, developers can use <code>__record__</code> to get information
+about the given record:</p>
+
+<pre><code>FileInfo.__record__(:name)
+#=&gt; FileInfo
+
+FileInfo.__record__(:fields)
+#=&gt; [atime: nil, accesses: 0]
+</code></pre>
+
+<p>In order to quickly access the index of a field, one can use
+the <code>__index__</code> function:</p>
+
+<pre><code>FileInfo.__index__(:atime)
+#=&gt; 0
+
+FileInfo.__index__(:unknown)
+#=&gt; nil
+</code></pre>
+
+<h2>Compile-time introspection</h2>
+
+<p>At the compile time, one can access following information about the record
+from within the record module:</p>
+
+<ul>
+<li><code>@record_fields</code> — a keyword list of record fields with defaults</li>
+<li><p><code>@record_types</code> — a keyword list of record fields with types</p>
+
+<p>defrecord Foo, bar: nil do
+   record<em>type bar: nil | integer
+   IO.inspect @record</em>fields
+   IO.inspect @record_types
+ end</p></li>
+</ul>
+
+<p>prints out</p>
+
+<pre><code> [bar: nil]
+ [bar: {:|,[line: ...],[nil,{:integer,[line: ...],nil}]}]
+</code></pre>
+
+<p>where the last line is a quoted representation of</p>
+
+<pre><code> [bar: nil | integer]
+</code></pre>
+
+<h2>Documentation</h2>
+
+<p>By default records are not documented and have <code>@moduledoc</code> set to false.</p>
+
+<h2>Types</h2>
+
+<p>Every record defines a type named <code>t</code> that can be accessed in typespecs.
+For example, assuming the <code>Config</code> record defined above, it could be used
+in typespecs as follow:</p>
+
+<pre><code>@spec handle_config(Config.t) :: boolean()
+</code></pre>
+
+<p>Inside the record definition, a developer can define his own types too:</p>
+
+<pre><code>defrecord Config, counter: 0, failures: [] do
+  @type kind :: term
+  record_type counter: integer, failures: [kind]
+end
+</code></pre>
+
+<p>When defining a type, all the fields not mentioned in the type are
+assumed to have type <code>term</code>.</p>
+
+<h2>Importing records</h2>
+
+<p>It is also possible to import a public record (a record, defined using
+<code>defrecord</code>) as a set of private macros (as if it was defined using <code>defrecordp</code>):</p>
+
+<pre><code>Record.import Config, as: :config
+</code></pre>
+
+<p>See <code>Record.import/2</code> and <code>defrecordp/2</code> documentation for more information</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1509" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defrecordp/2">
+    <strong>defrecordp(name, fields)</strong>
+  </p>
+  <div class="docstring"><p>Defines a record with a set of private macros to manipulate it.</p>
+
+<p>A record is a tagged tuple which contains one or more elements
+and the first element is a module. This macro defines a set of
+macros private to the current module to manipulate the record
+exclusively at compilation time.</p>
+
+<p><code>defrecordp</code> must be used instead of <code>defrecord</code> when there is
+no interest in exposing the record as a whole. In many ways,
+it is similar to Erlang records, since it is only available at
+compilation time.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule User do
+  defrecordp :user, [name: &quot;José&quot;, age: &quot;25&quot;]
+end
+</code></pre>
+
+<p>In the example above, a set of macros named <code>user</code> but with different
+arities will be defined to manipulate the underlying record:</p>
+
+<pre><code># To create records
+user()        #=&gt; { User, &quot;José&quot;, 25 }
+user(age: 26) #=&gt; { User, &quot;José&quot;, 26 }
+
+# To get a field from the record
+user(record, :name) #=&gt; &quot;José&quot;
+
+# To get many fields from the record
+user(record, [:name, :age]) #=&gt; [&quot;José&quot;, 25]
+
+# To update the record
+user(record, age: 26) #=&gt; { User, &quot;José&quot;, 26 }
+
+# To convert the record to keywords
+user(record) #=&gt; [name: &quot;José&quot;, age: 25]
+
+# To match against the record
+user(name: name) = record
+name #=&gt; &quot;José&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1561" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete_elem/2">
+    <strong>delete_elem(tuple, index)</strong>
+  </p>
+  <div class="docstring"><p>Define delete_elem to delete element from a tuple according to
+Elixir conventions (i.e. it expects the tuple as first argument,
+zero-index based).</p>
+
+<p>Please note that in versions of Erlang prior to R16B there is no BIF
+for this operation and it is emulated by converting the tuple to a list
+and back and is, therefore, inefficient.</p>
+
+<h2>Example</h2>
+
+<pre><code>iex&gt; tuple = { :foo, :bar, :baz }
+...&gt; delete_elem(tuple, 0)
+{ :bar, :baz }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2035" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="destructure/2">
+    <strong>destructure(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Allows you to destructure two lists, assigning each term in the right to the
+matching term in the left. Unlike pattern matching via <code>=</code>, if the sizes of
+the left and right lists don&#39;t match, destructuring simply stops instead of
+raising an error.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; destructure([x,y,z], [1,2,3,4,5])
+...&gt; {x, y, z}
+{1, 2, 3}
+</code></pre>
+
+<p>Notice in the example above, even though the right
+size has more entries than the left, destructuring works
+fine. If the right size is smaller, the remaining items
+are simply assigned to nil:</p>
+
+<pre><code>iex&gt; destructure([x,y,z], [1])
+...&gt; {x, y, z}
+{1, nil, nil}
+</code></pre>
+
+<p>The left side supports any expression you would use
+on the left side of a match:</p>
+
+<pre><code>x = 1
+destructure([^x,y,z], [1,2,3])
+</code></pre>
+
+<p>The example above will only work if x matches
+the first value from the right side. Otherwise,
+it will raise a CaseClauseError.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2596" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="div/2">
+    <strong>div(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Provides an integer division macro according to Erlang semantics.
+Raises an error if one of the arguments is not an integer.
+Can be used in guard tests.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; div(5, 2)
+2
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2054" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="elem/2">
+    <strong>elem(tuple, index)</strong>
+  </p>
+  <div class="docstring"><p>Define elem to get Tuple element according to Elixir conventions
+(i.e. it expects the tuple as first argument, zero-index based).</p>
+
+<p>It is implemented as a macro so it can be used in guards.</p>
+
+<h2>Example</h2>
+
+<pre><code>iex&gt; tuple = { :foo, :bar, 3 }
+...&gt; elem(tuple, 1)
+:bar
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1974" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="function/1">
+    <strong>function(args)</strong>
+  </p>
+  <div class="docstring"><p>Construct an anonymous function based on the given expression
+or retrieve an existing one.</p>
+
+<h2>Function composition</h2>
+
+<pre><code>iex&gt; sum = function do
+...&gt;   (x, y) -&gt; x + y
+...&gt; end
+...&gt; sum.(1, 2)
+3
+</code></pre>
+
+<p>Notice that a function needs to be invoked using the dot between
+the function and the arguments.</p>
+
+<p>Multiple clauses can be specified as in <code>case</code>, <code>receive</code> and
+similar macros:</p>
+
+<pre><code>iex&gt; sum = function do
+...&gt;   x, y when y &gt; 0 -&gt; x + y
+...&gt;   x, y -&gt; x - y
+...&gt; end
+...&gt; sum.(1, 2)
+3
+</code></pre>
+
+<p>All clauses must expect the same number of arguments.</p>
+
+<h2>Function retrieval</h2>
+
+<p>The <code>function</code> macro can also be used to retrieve local, imported
+and remote functions.</p>
+
+<pre><code># Retrieve local/import
+iex&gt; f = function(is_atom/1)
+iex&gt; f.(:foo)
+true
+
+# Retrieve remote
+iex&gt; f = function(Kernel.is_atom/1)
+iex&gt; f.(:foo)
+true
+</code></pre>
+
+<p>In case a function needs to be dynamically retrieved based on its
+module, name or arity, use <code>function/3</code> instead.</p>
+
+<h2>Shortcut syntax</h2>
+
+<p>In order to reduce verbosity, functions in Elixir can be written
+using a shortcut syntax via <code>fn</code>:</p>
+
+<pre><code>Enum.map [1,2,3], fn x -&gt;
+  x * 2
+end
+</code></pre>
+
+<p>Not only is the example shorter, it solves ambiguity issues. Since
+<code>do/end</code> always matches the furthest call, if we used the <code>function</code>
+macro as below:</p>
+
+<pre><code>Enum.map [1,2,3], function do
+  x -&gt; x * 2
+end
+</code></pre>
+
+<p>It would be parsed as:</p>
+
+<pre><code>Enum.map([1,2,3], function) do
+  x -&gt; x * 2
+end
+</code></pre>
+
+<p>The stab shortcut syntax has the proper precedence:</p>
+
+<pre><code>Enum.map [1,2,3], fn
+  x -&gt; x * 2
+end
+</code></pre>
+
+<p>Which is handled as:</p>
+
+<pre><code>Enum.map([1,2,3], fn
+  x -&gt; x * 2
+end)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2210" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="function/3">
+    <strong>function(module, function, arity)</strong>
+  </p>
+  <div class="docstring"><p>Retrieves a function with given name and arity from a module.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; f = function(Kernel, :is_atom, 1)
+...&gt; f.(:foo)
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2222" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="if/2">
+    <strong>if(condition, clauses)</strong>
+  </p>
+  <div class="docstring"><p>Provides an <code>if</code> macro. This macro expects the first argument to
+be a condition and the rest are keyword arguments.</p>
+
+<h2>One-liner examples</h2>
+
+<pre><code>if(foo, do: bar)
+</code></pre>
+
+<p>In the example above, bar will be returned if foo evaluates to
+true (i.e. it is not false nor nil). Otherwise, nil will be returned.</p>
+
+<p>An else option can be given to specify the opposite:</p>
+
+<pre><code>if(foo, do: bar, else: bar)
+</code></pre>
+
+<h2>Blocks examples</h2>
+
+<p>Elixir also allows you to pass a block to the if macro. The first
+example above would be translated to:</p>
+
+<pre><code>if foo do
+  bar
+end
+</code></pre>
+
+<p>Notice that do/end becomes delimiters. The second example would
+then translate do:</p>
+
+<pre><code>if foo do
+  bar
+else
+  baz
+end
+</code></pre>
+
+<p>If you want to compare more than two clauses, you can use the <code>cond/1</code>
+macro.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2494" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="in/2">
+    <strong>left in right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the element on the left is equal (==) to
+any of the items in the right.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; x = 1
+...&gt; x in [1,2,3]
+true
+</code></pre>
+
+<p>This macro simply translates the expression above to:</p>
+
+<pre><code>x == 1 or x == 2 or x == 3
+</code></pre>
+
+<p>with the exception that the expression on the left of <code>in</code>
+is evaluated only once.</p>
+
+<h2>Clauses</h2>
+
+<p>Whenever used inside a function or a case clause, you can
+optionally omit the variable declaration, for example:</p>
+
+<pre><code>case 3 do
+  x when x in [1,2] -&gt; x * 2
+  _ -&gt; 0
+end
+</code></pre>
+
+<p>Could be rewritten as:</p>
+
+<pre><code>case 3 do
+  x in [1,2] -&gt; x * 2
+  _ -&gt; 0
+end
+</code></pre>
+
+<p>In this case, Elixir will automatically expand it and define
+the variable for us.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2921" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="insert_elem/3">
+    <strong>insert_elem(tuple, index, value)</strong>
+  </p>
+  <div class="docstring"><p>Define insert_elem to insert element into a tuple according to
+Elixir conventions (i.e. it expects the tuple as first argument,
+zero-index based).</p>
+
+<h2>Example</h2>
+
+<pre><code>iex&gt; tuple = { :bar, :baz }
+...&gt; insert_elem(tuple, 0, :foo)
+{ :foo, :bar, :baz }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2012" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(arg, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Inspect the given arguments according to the <code>Binary.Inspect</code> protocol.</p>
+
+<h2>Options</h2>
+
+<p>The following options are supported:</p>
+
+<ul>
+<li><p>raw   -- when true, record tuples are not formatted by the inspect protocol,
+       but are printed as just tuples; default: false</p></li>
+<li><p>limit -- limits the number of items that are printed for tuples, bitstrings,
+       and lists; does not apply to strings</p></li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; inspect(:foo)
+&quot;:foo&quot;
+
+iex&gt; inspect [1,2,3,4,5], limit: 3
+&quot;[1,2,3,...]&quot;
+
+inspect(ArgumentError[])
+#=&gt; &quot;ArgumentError[message: &quot;argument error&quot;]&quot;
+
+inspect(ArgumentError[], raw: true)
+#=&gt; &quot;{ArgumentError,:__exception__,&quot;argument error&quot;}&quot;
+</code></pre>
+
+<p>Note that the inspect protocol does not necessarily return a valid
+representation of an Elixir term. In such cases, the inspected result must
+start with <code>#</code>. For example, inspecting a function will return:</p>
+
+<pre><code>inspect &amp;1 + &amp;2
+#=&gt; #Function&lt;...&gt;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1923" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_exception/1">
+    <strong>is_exception(thing)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the given structure is an exception.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; is_exception((fn -&gt; ArithmeticError.new end).())
+true
+iex&gt; is_exception((fn -&gt; 1 end).())
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1616" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_range/1">
+    <strong>is_range(thing)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the given argument is a range.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1692" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_record/1">
+    <strong>is_record(thing)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the given argument is a record.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1664" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_record/2">
+    <strong>is_record(thing, kind)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the given structure is a record. It is basically
+a convenient macro that checks the structure is a tuple and
+the first element matches the given kind.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defrecord Config, sample: nil
+
+is_record(Config.new, Config) #=&gt; true
+is_record(Config.new, List)   #=&gt; false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1645" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_regex/1">
+    <strong>is_regex(thing)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the given argument is a regex.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1683" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="match?/2">
+    <strong>match?(left, right)</strong>
+  </p>
+  <div class="docstring"><p>A convenient macro that checks if the right side matches
+the left side. The left side is allowed to be a match pattern.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; match?(1, 1)
+true
+iex&gt; match?(1, 2)
+false
+iex&gt; match?({1,_}, {1,2})
+true
+</code></pre>
+
+<p>Match can also be used to filter or find a value in an enumerable:</p>
+
+<pre><code>list = [{:a,1},{:b,2},{:a,3}]
+Enum.filter list, match?({:a, _}, _)
+</code></pre>
+
+<p>Guard clauses can also be given to the match:</p>
+
+<pre><code>list = [{:a,1},{:b,2},{:a,3}]
+Enum.filter list, match?({:a, x } when x &lt; 2, &amp;1)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2113" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="nil?/1">
+    <strong>nil?(x)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the given argument is nil or not.
+Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; nil?(1)
+false
+iex&gt; nil?(nil)
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2085" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="not/1">
+    <strong>not arg</strong>
+  </p>
+  <div class="docstring"><p>Boolean not. Argument must be a boolean.
+Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; not false
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L161" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="or/2">
+    <strong>left or right</strong>
+  </p>
+  <div class="docstring"><p>Boolean or. Arguments must be booleans.
+Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; true or false
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L122" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="receive/1">
+    <strong>receive(args)</strong>
+  </p>
+  <div class="docstring"><p>The current process will hang until it receives a message
+from other processes that matches the given clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>receive do
+  { :selector, i, value } when is_integer(i) -&gt;
+    value
+  value when is_atom(value) -&gt;
+    value
+  _ -&gt;
+    IO.puts :stderr, &quot;Unexpected message received&quot;
+end
+</code></pre>
+
+<p>The match clauses above follows the same rules as <code>case/2</code>.</p>
+
+<p>An optional after clause can be given in case the message was not
+received after the specified period of time:</p>
+
+<pre><code>receive do
+  { :selector, i, value } when is_integer(i) -&gt;
+    value
+  value when is_atom(value) -&gt;
+    value
+  _ -&gt;
+    IO.puts :stderr, &quot;Unexpected message received&quot;
+after
+  5000 -&gt;
+    IO.puts :stderr, &quot;No message in 5 seconds&quot;
+end
+</code></pre>
+
+<p>The <code>after</code> clause can be specified even if there are no match clauses.
+There are two special cases for the timout value given to after</p>
+
+<ul>
+<li><p><code>:infinity</code> - The process should wait indefinitely for a matching
+message, this is the same as not using a timeout.</p></li>
+<li><p>0 - if there is no matching message in the mailbox, the timeout
+will occur immediately.</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2413" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rem/2">
+    <strong>rem(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Provides an integer remainder macro according to Erlang semantics.
+Raises an error if one of the arguments is not an integer.
+Can be used in guard tests.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; rem(5, 2)
+1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2069" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="set_elem/3">
+    <strong>set_elem(tuple, index, value)</strong>
+  </p>
+  <div class="docstring"><p>Define set_elem to set Tuple element according to Elixir conventions
+(i.e. it expects the tuple as first argument, zero-index based).</p>
+
+<h2>Example</h2>
+
+<pre><code>iex&gt; tuple = { :foo, :bar, 3 }
+...&gt; set_elem(tuple, 0, :baz)
+{ :baz, :bar, 3 }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1993" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_binary/1">
+    <strong>to_binary(arg)</strong>
+  </p>
+  <div class="docstring"><p>Convert the argument to a string according to the Binary.Chars protocol.
+This is the function invoked when there is string interpolation.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; to_binary(:foo)
+&quot;foo&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1944" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_char_list/1">
+    <strong>to_char_list(arg)</strong>
+  </p>
+  <div class="docstring"><p>Convert the argument to a list according to the List.Chars protocol.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; to_char_list(:foo)
+&#39;foo&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1957" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="try/1">
+    <strong>try(args)</strong>
+  </p>
+  <div class="docstring"><p>Evaluate the given expressions and catch any error, exit
+or throw that may have happened.</p>
+
+<h2>Examples</h2>
+
+<pre><code>try do
+  do_something_that_may_fail(some_arg)
+rescue
+  ArgumentError -&gt;
+    IO.puts &quot;Invalid argument given&quot;
+catch
+  value -&gt;
+    IO.puts &quot;caught #{value}&quot;
+after
+  IO.puts &quot;This is printed regardless if it failed or succeed&quot;
+end
+</code></pre>
+
+<p>The rescue clause is used to handle exceptions, while the catch
+clause can be used to catch thrown values. Both catch and rescue
+clauses work based on pattern matching.</p>
+
+<p>Note that calls inside <code>try</code> are not tail recursive since the VM
+needs to keep the stacktrace in case an exception happens.</p>
+
+<h2>Rescue clauses</h2>
+
+<p>Besides relying on pattern matching, rescue clauses provides some
+conveniences around exceptions that allows one to rescue an
+exception by its name. All the following formats are valid rescue
+expressions:</p>
+
+<pre><code>try do
+  UndefinedModule.undefined_function
+rescue
+  UndefinedFunctionError -&gt; nil
+end
+
+try do
+  UndefinedModule.undefined_function
+rescue
+  [UndefinedFunctionError] -&gt; nil
+end
+
+# rescue and assign to x
+try do
+  UndefinedModule.undefined_function
+rescue
+  x in [UndefinedFunctionError] -&gt; nil
+end
+
+# rescue all and assign to x
+try do
+  UndefinedModule.undefined_function
+rescue
+  x -&gt; nil
+end
+</code></pre>
+
+<h2>Catching exits and Erlang errors</h2>
+
+<p>The catch clause works exactly the same as in erlang. Therefore,
+one can also handle exits/errors coming from Erlang as below:</p>
+
+<pre><code>try do
+  exit(1)
+catch
+  :exit, 1 -&gt; IO.puts &quot;Exited with 1&quot;
+end
+
+try do
+  error(:sample)
+catch
+  :error, :sample -&gt;
+    IO.puts &quot;sample error&quot;
+end
+</code></pre>
+
+<p>Although the second form should be avoided in favor of raise/rescue
+control mechanisms.</p>
+
+<h2>Variable visibility</h2>
+
+<p>Since an expression inside <code>try</code> may not have been evaluated
+due to an exception, any variable created inside <code>try</code> cannot
+be accessed externaly. For instance:</p>
+
+<pre><code>try do
+  x = 1
+  do_something_that_may_fail(same_arg)
+  :ok
+catch
+  _, _ -&gt; :failed
+end
+
+x #=&gt; Cannot access `x`
+</code></pre>
+
+<p>In the example above, <code>x</code> cannot be accessed since it was defined
+inside the <code>try</code> clause. A common practice to address this issue
+is to return the variables defined inside <code>try</code>:</p>
+
+<pre><code>x =
+  try do
+    x = 1
+    do_something_that_may_fail(same_arg)
+    x
+  catch
+    _, _ -&gt; :failed
+  end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2370" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unless/2">
+    <strong>unless(clause, options)</strong>
+  </p>
+  <div class="docstring"><p>Evaluates and returns the do-block passed in as a second argument
+unless clause evaluates to true.
+Returns nil otherwise.
+See also <code>if</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; unless(1, do: &quot;Hello&quot;)
+nil
+iex&gt; unless(false, do: &quot;Hello&quot;)
+&quot;Hello&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2557" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="use/2">
+    <strong>use(module, args // [])</strong>
+  </p>
+  <div class="docstring"><p><code>use</code> is a simple mechanism for using a given module into
+the current context.</p>
+
+<h2>Examples</h2>
+
+<p>For example, in order to write tests using the ExUnit framework,
+a developer should use the <code>ExUnit.Case</code> module:</p>
+
+<pre><code>defmodule AssertionTest do
+  use ExUnit.Case, async: true
+
+  def test_always_pass do
+    true = true
+  end
+end
+</code></pre>
+
+<p>By calling <code>use</code>, a hook called <code>__using__</code> will be invoked in
+<code>ExUnit.Case</code> which will then do the proper setup.</p>
+
+<p>Simply put, <code>use</code> is simply a translation to:</p>
+
+<pre><code>defmodule AssertionTest do
+  require ExUnit.Case
+  ExUnit.Case.__using__([sync: true])
+
+  def test_always_pass do
+    true = true
+  end
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1873" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="xor/2">
+    <strong>left xor right</strong>
+  </p>
+  <div class="docstring"><p>Boolean exclusive-or. Arguments must be booleans. Returns true if and only if
+both arguments are different.
+Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; true xor false
+true
+iex&gt; true xor true
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L149" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="|&gt;/2">
+    <strong>left |&gt; right</strong>
+  </p>
+  <div class="docstring"><p><code>|&gt;</code> is called the pipeline operator as it is useful
+to write pipeline style expressions. This operator
+tntroduces the expression on the left as the first
+argument to the expression on the right.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; [1,[2],3] |&gt; List.flatten |&gt; Enum.map(&amp;1 * 2)
+[2,4,6]
+</code></pre>
+
+<p>The expression above is simply translated to:</p>
+
+<pre><code>Enum.map(List.flatten([1,[2],3]), &amp;1 * 2)
+</code></pre>
+
+<p>Please be aware of operator precendence, when using
+this operator. For example, the following expression:</p>
+
+<pre><code>String.graphemes &quot;Hello&quot; |&gt; Enum.reverse
+</code></pre>
+
+<p>Is translated to:</p>
+
+<pre><code>String.graphemes(&quot;Hello&quot; |&gt; Enum.reverse)
+</code></pre>
+
+<p>Which will result in an error as Enumerable protocol
+is not defined for binaries. Adding explicit parenthesis
+is recommended:</p>
+
+<pre><code>String.graphemes(&quot;Hello&quot;) |&gt; Enum.reverse
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2973" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="||/2">
+    <strong>left || right</strong>
+  </p>
+  <div class="docstring"><p>Provides a short-circuit operator that evaluates and returns the second
+expression only if the first one does not evaluate to true (i.e. it
+is either nil or false). Returns the first expression otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; false || false
+false
+iex&gt; nil || true
+true
+iex&gt; false || 1
+1
+iex&gt; true || throw(:bad)
+true
+</code></pre>
+
+<p>Notice that, differently from Erlang <code>or</code> operator,
+this operator accepts any expression as arguments,
+not only booleans, however it is not allowed in guards.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2873" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/KeyError.html b/docs/master/KeyError.html
new file mode 100644
index 000000000..539551ce3
--- /dev/null
+++ b/docs/master/KeyError.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>KeyError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        KeyError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L82" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>key:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L83" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Keyword.html b/docs/master/Keyword.html
new file mode 100644
index 000000000..e62dc7929
--- /dev/null
+++ b/docs/master/Keyword.html
@@ -0,0 +1,526 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Keyword</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Keyword
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A keyword is a list of tuples where the first element
+of the tuple is an atom and the second element can be
+any value.</p>
+
+<p>A keyword may have duplicated keys, so it is not strictly
+a dictionary. However most of the functions in this module
+allows it to behave exactly as a dictionary. For example,
+<code>Keyword.get</code> will get the first entry matching the given
+key, regardless if duplicated entries exist. Similarly,
+<code>Keyword.put</code> and <code>Keyword.delete</code> ensure all duplicated
+entries for a given key are removed when invoked.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#delete/2">delete/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete_first/2">delete_first/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#equal?/2">equal?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch/2">fetch/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch!/2">fetch!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#from_enum/1">from_enum/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/3">get/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_values/2">get_values/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#has_key?/2">has_key?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keys/1">keys/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keyword?/1">keyword?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#merge/2">merge/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#merge/3">merge/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/0">new/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/1">new/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/2">new/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put/3">put/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_new/3">put_new/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/3">update/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/4">update/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#values/1">values/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="delete/2">
+    <strong>delete(keywords, key)</strong>
+  </p>
+  <div class="docstring"><p>Deletes all entries in the keyword list for a specific key.
+If the key does not exist, returns the keyword list unchanged.
+Use <code>delete_first</code> to delete just the first entry in case of
+duplicated keys.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.delete([a: 1, b: 2], :a)
+[b: 2]
+iex&gt; Keyword.delete([b: 2], :a)
+[b: 2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L217" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete_first/2">
+    <strong>delete_first(keywords, key)</strong>
+  </p>
+  <div class="docstring"><p>Deletes the first entry in the keyword list for a specific key.
+If the key does not exist, returns the keyword list unchanged.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.delete_first([a: 1, b: 2, a: 3], :a)
+[b: 2, a: 3]
+iex&gt; Keyword.delete_first([b: 2], :a)
+[b: 2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L234" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="equal?/2">
+    <strong>equal?(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Checks if two keywords are equal. I.e. they contain
+the same keys and those keys contain the same values.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.equal?([a: 1, b: 2], [b: 2, a: 1])
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L284" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch/2">
+    <strong>fetch(keywords, key)</strong>
+  </p>
+  <div class="docstring"><p>Fetchs the value for specific key and return it in a tuple.
+If the key does not exist, returns <code>:error</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.fetch([a: 1], :a)
+{ :ok, 1 }
+
+iex&gt; Keyword.fetch([a: 1], :b)
+:error
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L131" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch!/2">
+    <strong>fetch!(keywords, key)</strong>
+  </p>
+  <div class="docstring"><p>Fetches the value for specific key. If key does not exist,
+an error is raised.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.fetch!([a: 1], :a)
+1
+
+iex&gt; Keyword.fetch!([a: 1], :b)
+** (KeyError) key not found: :b
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L152" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="from_enum/1">
+    <strong>from_enum(enum)</strong>
+  </p>
+  <div class="docstring"><p>Creates a Keyword from enum. Differently from <code>Keyword.new</code>
+which behaves as a dict, <code>Keyword.from_enum</code> do not remove
+duplicated entries.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L26" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/3">
+    <strong>get(keywords, key, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Gets the value for specific key.</p>
+
+<p>If key not exist return default value (nil if no default value)
+exists.</p>
+
+<p>If duplicated entries exist, the first one is returned.
+Use get_values/2 to retrieve all entries.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.get([a: 1], :a)
+1
+iex&gt; Keyword.get([a: 1], :b)
+nil
+iex&gt; Keyword.get([a: 1], :b, 3)
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L110" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_values/2">
+    <strong>get_values(keywords, key)</strong>
+  </p>
+  <div class="docstring"><p>Gets all values for a specific key.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.get_values([a: 1, a: 2], :a)
+[1,2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L169" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="has_key?/2">
+    <strong>has_key?(keywords, key)</strong>
+  </p>
+  <div class="docstring"><p>Returns whether a given key exists in the given keywords.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.has_key?([a: 1], :a)
+true
+iex&gt; Keyword.has_key?([a: 1], :b)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L340" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keys/1">
+    <strong>keys(keywords)</strong>
+  </p>
+  <div class="docstring"><p>Returns all keys from the keyword list. Duplicated
+keys appear duplicated in the final list of keys.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.keys([a: 1, b: 2])
+[:a,:b]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L184" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keyword?/1">
+    <strong>keyword?(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the given argument is a keywords list or not</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L38" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="merge/2">
+    <strong>merge(d1, d2)</strong>
+  </p>
+  <div class="docstring"><p>Merges two keyword lists into one. If they have duplicated
+entries, the one given as second argument wins.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.merge([a: 1, b: 2], [a: 3, d: 4]) |&gt; Enum.sort
+[a: 3, b: 2, d: 4]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L299" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="merge/3">
+    <strong>merge(d1, d2, fun)</strong>
+  </p>
+  <div class="docstring"><p>Merges two keyword lists into one. If they have duplicated
+entries, the given function is invoked to solve conflicts.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.merge([a: 1, b: 2], [a: 3, d: 4], fn (_k, v1, v2) -&gt;
+...&gt;  v1 + v2
+iex&gt; end)
+[a: 4, b: 2, d: 4]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L316" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/0">
+    <strong>new()</strong>
+  </p>
+  <div class="docstring"><p>Returns an empty keyword list, i.e. an empty list.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/1">
+    <strong>new(pairs)</strong>
+  </p>
+  <div class="docstring"><p>Creates a Keyword from an enumerable. Similarly to dicts,
+duplicated entries are removed, the latest one prevails.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.new([{:b,1},{:a,2}])
+[a: 2, b: 1]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L64" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/2">
+    <strong>new(pairs, transform)</strong>
+  </p>
+  <div class="docstring"><p>Creates a Keyword from an enumerable with the
+help of the transformation function. Duplicated
+entries are removed, the latest one prevails.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.new([:a, :b], fn (x) -&gt; {x,x} end) |&gt; Enum.sort
+[a: :a, b: :b]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L82" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put/3">
+    <strong>put(keywords, key, value)</strong>
+  </p>
+  <div class="docstring"><p>Puts the given <code>value</code> under <code>key</code>.</p>
+
+<p>If a previous value is already stored, all entries are
+removed and the value is overriden.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.put([a: 1, b: 2], :a, 3)
+[a: 3, b: 2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L251" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_new/3">
+    <strong>put_new(keywords, key, value)</strong>
+  </p>
+  <div class="docstring"><p>Puts the given <code>value</code> under <code>key</code> unless the entry <code>key</code>
+already exists.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.put_new([a: 1, b: 2], :a, 3)
+[a: 1, b: 2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L266" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/3">
+    <strong>update(list1, key, fun)</strong>
+  </p>
+  <div class="docstring"><p>Updates the key with the given function. If the key does
+not exist, raises <code>KeyError</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.update([a: 1], :a, &amp;1 * 2)
+[a: 2]
+
+iex&gt; Keyword.update([a: 1], :b, &amp;1 * 2)
+** (KeyError) key not found: :b
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L358" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/4">
+    <strong>update(list1, key, initial, fun)</strong>
+  </p>
+  <div class="docstring"><p>Updates the key with the given function. If the key does
+not exist, inserts the given <code>initial</code> value.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.update([a: 1], :a, 13, &amp;1 * 2)
+[a: 2]
+iex&gt; Keyword.update([a: 1], :b, 11, &amp;1 * 2)
+[a: 1, b: 11]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L383" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="values/1">
+    <strong>values(keywords)</strong>
+  </p>
+  <div class="docstring"><p>Returns all values.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.values([a: 1, b: 2])
+[1,2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L198" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/List.Chars.Atom.html b/docs/master/List.Chars.Atom.html
new file mode 100644
index 000000000..cd219675f
--- /dev/null
+++ b/docs/master/List.Chars.Atom.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>List.Chars.Atom</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        List.Chars.Atom
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L17" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_char_list/1">to_char_list/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_char_list/1">
+    <strong>to_char_list(atom)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L18" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/List.Chars.BitString.html b/docs/master/List.Chars.BitString.html
new file mode 100644
index 000000000..1ba8adbdb
--- /dev/null
+++ b/docs/master/List.Chars.BitString.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>List.Chars.BitString</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        List.Chars.BitString
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L21" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_char_list/1">to_char_list/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_char_list/1">
+    <strong>to_char_list(bitstring)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/List.Chars.List.html b/docs/master/List.Chars.List.html
new file mode 100644
index 000000000..47e369349
--- /dev/null
+++ b/docs/master/List.Chars.List.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>List.Chars.List</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        List.Chars.List
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L25" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_char_list/1">to_char_list/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_char_list/1">
+    <strong>to_char_list(list)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L26" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/List.Chars.Number.html b/docs/master/List.Chars.Number.html
new file mode 100644
index 000000000..6e14e88b6
--- /dev/null
+++ b/docs/master/List.Chars.Number.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>List.Chars.Number</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        List.Chars.Number
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L29" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_char_list/1">to_char_list/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_char_list/1">
+    <strong>to_char_list(thing)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L33" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/List.Chars.html b/docs/master/List.Chars.html
new file mode 100644
index 000000000..98ce7e86d
--- /dev/null
+++ b/docs/master/List.Chars.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>List.Chars</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        List.Chars
+        
+          <small>protocol</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>The List.Chars protocol is responsible for
+converting a structure to a list (only if applicable).
+The only function required to be implemented is
+<code>to_char_list</code> which does the conversion.</p>
+
+<p>The <code>to_char_list</code> function automatically imported
+by Kernel invokes this protocol.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+        <h2 id="implementations">Implementations</h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <a href="List.Chars.Atom.html">Atom</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="List.Chars.BitString.html">BitString</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="List.Chars.List.html">List</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="List.Chars.Number.html">Number</a>
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_char_list/1">to_char_list/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_char_list/1">
+    <strong>to_char_list(thing)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L14" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/List.html b/docs/master/List.html
new file mode 100644
index 000000000..bad89037d
--- /dev/null
+++ b/docs/master/List.html
@@ -0,0 +1,491 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>List</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        List
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Implements functions that only make sense for lists
+and cannot be part of the Enum protocol. In general,
+favor using the Enum API instead of List.</p>
+
+<p>A decision was taken to delegate most functions to
+Erlang&#39;s standard lib but following Elixir&#39;s convention
+of receiving the target (in this case, a list) as the
+first argument.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#concat/1">concat/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#concat/2">concat/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete/2">delete/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#duplicate/2">duplicate/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#flatten/1">flatten/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#flatten/2">flatten/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#foldl/3">foldl/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#foldr/3">foldr/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#insert_at/3">insert_at/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keydelete/3">keydelete/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keyfind/4">keyfind/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keymember?/3">keymember?/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keyreplace/4">keyreplace/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keystore/4">keystore/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#last/1">last/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unzip/1">unzip/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#wrap/1">wrap/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#zip/1">zip/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="concat/1">
+    <strong>concat(list)</strong>
+  </p>
+  <div class="docstring"><p>Given a list of lists, concatenates the sublists into a single list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.concat([[1,[2],3], [4], [5,6]])
+[1,[2],3,4,5,6]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="concat/2">
+    <strong>concat(list, elements)</strong>
+  </p>
+  <div class="docstring"><p>Concatenates the list on the right with the list on the left.</p>
+
+<p>This function produces the same result the <code>++</code> operator. The only difference
+is a minor optimization: when the first list contains only one element, we
+simply add it as a head to the second list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.concat([1,2,3], [4,5,6])
+[1,2,3,4,5,6]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete/2">
+    <strong>delete(list, item)</strong>
+  </p>
+  <div class="docstring"><p>Deletes the given item from the list. Returns a list without the item.
+If the item occurs more than once in the list, just the first occurrence
+is removed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.delete([1,2,3], 1)
+[2,3]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L54" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="duplicate/2">
+    <strong>duplicate(elem, n)</strong>
+  </p>
+  <div class="docstring"><p>Duplicates the given element n times in a list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.duplicate(&quot;hello&quot;, 3)
+[&quot;hello&quot;,&quot;hello&quot;,&quot;hello&quot;]
+
+iex&gt; List.duplicate([1,2], 2)
+[[1,2],[1,2]]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L69" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="flatten/1">
+    <strong>flatten(list)</strong>
+  </p>
+  <div class="docstring"><p>Flattens the given <code>list</code> of nested lists. An optional
+tail can be given that will be added at the end of
+the flattened list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.flatten([1,[[2],3]])
+[1,2,3]
+
+iex&gt; List.flatten([1,[[2],3]], [4,5])
+[1,2,3,4,5]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L87" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="flatten/2">
+    <strong>flatten(list, tail)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L91" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="foldl/3">
+    <strong>foldl(list, acc, function)</strong>
+  </p>
+  <div class="docstring"><p>Folds (reduces) the given list to the left with
+a function. Requires an accumulator.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.foldl([5,5], 10, fn (x, acc) -&gt; x + acc end)
+20
+
+iex&gt; List.foldl([1,2,3,4], 0, fn (x, acc) -&gt; x - acc end)
+2
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L108" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="foldr/3">
+    <strong>foldr(list, acc, function)</strong>
+  </p>
+  <div class="docstring"><p>Folds (reduces) the given list to the right with
+a function. Requires an accumulator.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.foldr([1,2,3,4], 0, fn (x, acc) -&gt; x - acc end)
+-2
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L122" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="insert_at/3">
+    <strong>insert_at(list, index, value)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list with an inserted value at specified index. Note that the index
+is capped at the list length and that negative indicies wraps around at the
+end of the list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.insert_at([1, 2, 3, 4], 2, 0)
+[1, 2, 0, 3, 4]
+
+iex&gt; List.insert_at([1, 2, 3], 10, 0)
+[1, 2, 3, 0]
+
+iex&gt; List.insert_at([1, 2, 3], -1, 0)
+[1, 2, 0, 3]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L311" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keydelete/3">
+    <strong>keydelete(list, key, position)</strong>
+  </p>
+  <div class="docstring"><p>Receives a list of tuples and deletes the first tuple
+where the item at position <code>posistion</code> matches with the
+given <code>item</code>. Returns the new tuple.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.keydelete([a: 1, b: 2], :a, 0)
+[{ :b, 2 }]
+
+iex&gt; List.keydelete([a: 1, b: 2], 2, 1)
+[{ :a, 1 }]
+
+iex&gt; List.keydelete([a: 1, b: 2], :c, 0)
+[{ :a, 1 }, { :b, 2 }]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L233" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keyfind/4">
+    <strong>keyfind(list, key, position, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Receives a list of tuples and returns the first tuple
+where the item at position <code>position</code> matches with the
+given <code>item</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.keyfind([a: 1, b: 2], :a, 0)
+{ :a, 1 }
+
+iex&gt; List.keyfind([a: 1, b: 2], 2, 1)
+{ :b, 2 }
+
+iex&gt; List.keyfind([a: 1, b: 2], :c, 0)
+nil
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L162" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keymember?/3">
+    <strong>keymember?(list, key, position)</strong>
+  </p>
+  <div class="docstring"><p>Receives a list of tuples and returns true if there is
+a tuple where the item at position <code>posistion</code> matches
+with the given <code>item</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.keymember?([a: 1, b: 2], :a, 0)
+true
+
+iex&gt; List.keymember?([a: 1, b: 2], 2, 1)
+true
+
+iex&gt; List.keymember?([a: 1, b: 2], :c, 0)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L183" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keyreplace/4">
+    <strong>keyreplace(list, key, position, new_tuple)</strong>
+  </p>
+  <div class="docstring"><p>Receives a list of tuples and replaces the item
+identified by <code>key</code> at position <code>pos</code> if it exists.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.keyreplace([a: 1, b: 2], :a, 0, { :a, 3 })
+[a: 3, b: 2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L197" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keystore/4">
+    <strong>keystore(list, key, position, new_tuple)</strong>
+  </p>
+  <div class="docstring"><p>Receives a list of tuples and replaces the item
+identified by <code>key</code> at position <code>pos</code>. If the item
+does not exist, it is added to the end of the list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.keystore([a: 1, b: 2], :a, 0, { :a, 3 })
+[a: 3, b: 2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L212" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="last/1">
+    <strong>last(list)</strong>
+  </p>
+  <div class="docstring"><p>Returns the last element in <code>list</code> or nil if the <code>list</code> is empty.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.last([])
+nil
+iex&gt; List.last([1])
+1
+iex&gt; List.last([1, 2, 3])
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L139" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unzip/1">
+    <strong>unzip(list)</strong>
+  </p>
+  <div class="docstring"><p>Unzips the given list of lists or tuples into separate lists and returns a
+list of lists.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.unzip([{1, 2}, {3, 4}])
+[[1, 3], [2, 4]]
+
+iex&gt; List.unzip([{1, :a, &quot;apple&quot;}, {2, :b, &quot;banana&quot;}, {3, :c}])
+[[1, 2, 3], [:a, :b, :c]]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L290" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="wrap/1">
+    <strong>wrap(list)</strong>
+  </p>
+  <div class="docstring"><p>Wraps the argument in a list.
+If the argument is already a list, returns the list.
+If the argument is nil, returns an empty list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.wrap([1,2,3])
+[1,2,3]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L248" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="zip/1">
+    <strong>zip(list_of_lists)</strong>
+  </p>
+  <div class="docstring"><p>Zips corresponding elements from each list in <code>list_of_lists</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.zip([[1, 2], [3, 4], [5, 6]])
+[{1, 3, 5}, {2, 4, 6}]
+
+iex&gt; List.zip([[1, 2], [3], [5, 6]])
+[{1, 3, 5}]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L272" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/ListDict.html b/docs/master/ListDict.html
new file mode 100644
index 000000000..7ce779a92
--- /dev/null
+++ b/docs/master/ListDict.html
@@ -0,0 +1,401 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ListDict</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ListDict
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A Dict implementation that works on lists of two-items tuples.</p>
+
+<p>For more information about the functions and their APIs, please
+consult the <code>Dict</code> module.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#delete/2">delete/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#drop/2">drop/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#empty/1">empty/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#equal?/2">equal?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch/2">fetch/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch!/2">fetch!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/3">get/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#has_key?/2">has_key?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keys/1">keys/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#merge/3">merge/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/0">new/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/1">new/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/2">new/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#pop/3">pop/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put/3">put/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_new/3">put_new/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#size/1">size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/2">split/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#take/2">take/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_list/1">to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/3">update/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/4">update/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#values/1">values/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="delete/2">
+    <strong>delete(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Deletes the entry under the given key from the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L119" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="drop/2">
+    <strong>drop(dict, keys)</strong>
+  </p>
+  <div class="docstring"><p>Returns a new dict with only the entries
+which key is not in keys</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L163" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="empty/1">
+    <strong>empty(_dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns an empty <code>ListDict</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L201" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="equal?/2">
+    <strong>equal?(dict, other)</strong>
+  </p>
+  <div class="docstring"><p>Check if the ListDict is equal to another ListDict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L206" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch/2">
+    <strong>fetch(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value under key from the given
+dict in a tagged tuple, otherwise <code>:error</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L72" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch!/2">
+    <strong>fetch!(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value under the given key
+raises <code>KeyError</code> if the key does not exist.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L83" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/3">
+    <strong>get(dict, key, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value under key from the given
+dict or default if no key is set.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L61" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="has_key?/2">
+    <strong>has_key?(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the dict has the given key.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keys/1">
+    <strong>keys(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns all keys in the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L32" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="merge/3">
+    <strong>merge(dict, enum, callback // fn _k, _v1, v2 -&gt; v2 end)</strong>
+  </p>
+  <div class="docstring"><p>Merges the given Enumerable into the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L126" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/0">
+    <strong>new()</strong>
+  </p>
+  <div class="docstring"><p>Returns a new <code>ListDict</code>, i.e. an empty list.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L12" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/1">
+    <strong>new(pairs)</strong>
+  </p>
+  <div class="docstring"><p>Creates a new <code>ListDict</code> from the given pairs.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/2">
+    <strong>new(list, transform)</strong>
+  </p>
+  <div class="docstring"><p>Creates a new <code>ListDict</code> from the given pairs
+via the given transformation function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L25" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="pop/3">
+    <strong>pop(dict, key, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value under the given key
+from the dict as well as the dict without that key.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L94" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put/3">
+    <strong>put(dict, key, val)</strong>
+  </p>
+  <div class="docstring"><p>Puts the given key-value pair in the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_new/3">
+    <strong>put_new(dict, key, val)</strong>
+  </p>
+  <div class="docstring"><p>Puts the given key-value pair in the dict
+if no entry exists yet.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L109" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="size/1">
+    <strong>size(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns the dict size.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L46" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/2">
+    <strong>split(dict, keys)</strong>
+  </p>
+  <div class="docstring"><p>Splits a dict into two dicts,
+one containing entries with key in the keys list,
+and another containing entries with key not in keys.
+Returns a 2-tuple of the new dicts.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L140" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="take/2">
+    <strong>take(dict, keys)</strong>
+  </p>
+  <div class="docstring"><p>Returns a new dict with only the entries
+which key is in keys</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L155" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_list/1">
+    <strong>to_list(dict)</strong>
+  </p>
+  <div class="docstring"><p>Converts the dict to a list.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L213" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/3">
+    <strong>update(list1, key, fun)</strong>
+  </p>
+  <div class="docstring"><p>Updates the key in the dict according to the given function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L170" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/4">
+    <strong>update(list1, key, initial, fun)</strong>
+  </p>
+  <div class="docstring"><p>Updates the key in the dict according to the given function
+or uses the given initial value if no entry exists.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L186" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="values/1">
+    <strong>values(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns all values in the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Macro.Env.html b/docs/master/Macro.Env.html
new file mode 100644
index 000000000..274b0ab06
--- /dev/null
+++ b/docs/master/Macro.Env.html
@@ -0,0 +1,218 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Macro.Env</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Macro.Env
+        
+          <small>record</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A record that holds compile time environment information.</p>
+
+<p>The current environment can be accessed at any time as
+<code>__ENV__</code>. Inside macros, the caller environment can be
+accessed as <code>__CALLER__</code>. It contains the following fields:</p>
+
+<ul>
+<li><code>module</code> - the current module name.</li>
+<li><code>file</code> - the current file name as a binary</li>
+<li><code>line</code> - the current line as an integer</li>
+<li><code>function</code> - a tuple as <code>{ atom, integer</code> }, where the first
+element is the function name and the seconds its arity. Returns
+<code>nil</code> if not inside a function</li>
+<li><code>aliases</code> -  a list of two item tuples, where the first
+item is the aliased name and the second the actual name</li>
+<li><code>context</code> - the context of the environment. It can be nil
+(default context), inside a guard or inside an assign</li>
+<li><code>requires</code> - the list of required modules</li>
+<li><code>functions</code> - a list of functions imported from each module</li>
+<li><code>macros</code> - a list of macros imported from each module</li>
+<li><code>context_modules</code> - a list of modules defined in the current context</li>
+<li><code>macro_aliases</code> - a list of aliases defined inside the current macro</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro/env.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>module:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>file:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>line:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>function:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>aliases:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>context:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>requires:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>functions:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>macros:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>context_modules:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>macro_aliases:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#in_guard?/1">in_guard?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#in_match?/1">in_match?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#location/1">location/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#stacktrace/1">stacktrace/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="in_guard?/1">
+    <strong>in_guard?(record)</strong>
+  </p>
+  <div class="docstring"><p>Returns wether the compilation environment is currently
+inside a guard.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro/env.ex#L59" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="in_match?/1">
+    <strong>in_match?(record)</strong>
+  </p>
+  <div class="docstring"><p>Returns wether the compilation environment is currently
+inside a match clause.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro/env.ex#L65" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="location/1">
+    <strong>location(record)</strong>
+  </p>
+  <div class="docstring"><p>Returns a keyword list containing the file and line
+information as keys.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro/env.ex#L51" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="stacktrace/1">
+    <strong>stacktrace(record)</strong>
+  </p>
+  <div class="docstring"><p>Returns the environment stacktrace.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro/env.ex#L70" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Macro.html b/docs/master/Macro.html
new file mode 100644
index 000000000..f2e5a88c1
--- /dev/null
+++ b/docs/master/Macro.html
@@ -0,0 +1,424 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Macro</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Macro
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module provides conveniences for working with macros.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L3" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#escape/1">escape/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#expand/2">expand/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#extract_args/1">extract_args/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#safe_term/1">safe_term/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_binary/1">to_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unescape_binary/1">unescape_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unescape_binary/2">unescape_binary/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unescape_tokens/1">unescape_tokens/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unescape_tokens/2">unescape_tokens/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#binary_ops/0">binary_ops/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unary_ops/0">unary_ops/0</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="escape/1">
+    <strong>escape(expr)</strong>
+  </p>
+  <div class="docstring"><p>Recursively escapes a value so it can be inserted
+into a syntax tree.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Macro.escape(:foo)
+:foo
+
+iex&gt; Macro.escape({ :a, :b, :c })
+{ :{}, [], [:a, :b, :c] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L66" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="expand/2">
+    <strong>expand(aliases, env)</strong>
+  </p>
+  <div class="docstring"><p>Receives an expression representation and expands it. The following
+contents are expanded:</p>
+
+<ul>
+<li>Macros (local or remote);</li>
+<li>Aliases are expanded (if possible) and return atoms;</li>
+<li>All pseudo-variables (<strong>FILE</strong>, <strong>MODULE</strong>, etc);</li>
+<li>Module attributes reader (@foo);</li>
+</ul>
+
+<p>In case the expression cannot be expanded, it returns the expression itself.</p>
+
+<p>Notice that <code>Macro.expand</code> is not recursive and it does not
+expand child expressions. In this example</p>
+
+<p>Macro.expand(quote(do: !some<em>macro), _</em>ENV__)</p>
+
+<p><code>!some_macro</code> will expand to something like:</p>
+
+<pre><code>case some_macro do
+  false -&gt; true
+  nil   -&gt; true
+  _     -&gt; false
+end
+</code></pre>
+
+<p>Notice that the <code>!</code> operator is a macro that expands to a case.
+Even though <code>some_macro</code> is also a macro, it is not expanded
+because it is a child expression given to <code>!</code> as argument.</p>
+
+<h2>Examples</h2>
+
+<p>In the example below, we have a macro that generates a module
+with a function named <code>name_length</code> that returns the length
+of the module name. The value of this function will be calculated
+at compilation time and not at runtime.</p>
+
+<p>Consider the implementation below:</p>
+
+<pre><code>defmacro defmodule_with_length(name, do: block) do
+  length = length(atom_to_list(name))
+
+  quote do
+    defmodule unquote(name) do
+      def name_length, do: unquote(length)
+      unquote(block)
+    end
+  end
+end
+</code></pre>
+
+<p>When invoked like this:</p>
+
+<pre><code>defmodule_with_length My.Module do
+  def other_function, do: ...
+end
+</code></pre>
+
+<p>The compilation will fail because <code>My.Module</code> when quoted
+is not an atom, but a syntax tree as follow:</p>
+
+<pre><code>{:__aliases__, [], [:My, :Module] }
+</code></pre>
+
+<p>That said, we need to expand the aliases node above to an
+atom, so we can retrieve its length. Expanding the node is
+not straight-forward because we also need to expand the
+caller aliases. For example:</p>
+
+<pre><code>alias MyHelpers, as: My
+
+defmodule_with_length My.Module do
+  def other_function, do: ...
+end
+</code></pre>
+
+<p>The final module name will be <code>MyHelpers.Module</code> and not
+<code>My.Module</code>. With <code>Macro.expand</code>, such aliases are taken
+into consideration. Local and remote macros are also
+expanded. We could rewrite our macro above to use this
+function as:</p>
+
+<pre><code>defmacro defmodule_with_length(name, do: block) do
+  expanded = Macro.expand(name, __CALLER__)
+  length   = length(atom_to_list(expanded))
+
+  quote do
+    defmodule unquote(name) do
+      def name_length, do: unquote(length)
+      unquote(block)
+    end
+  end
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L442" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="extract_args/1">
+    <strong>extract_args(expr)</strong>
+  </p>
+  <div class="docstring"><p>Receives an expresion representing a possible definition
+and extracts its arguments. It returns a tuple with the
+function name and the arguments list or <code>:error</code> if not
+a valid call syntax.</p>
+
+<p>This is useful for macros that want to provide the same
+arguments syntax available in def/defp/defmacro and friends.</p>
+
+<h2>Examples</h2>
+
+<pre><code>extract_args(quote do: foo)        == { :foo, [] }
+extract_args(quote do: foo())      == { :foo, [] }
+extract_args(quote do: foo(1,2,3)) == { :foo, [1,2,3] }
+extract_args(quote do: 1.(1,2,3))  == :error
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="safe_term/1">
+    <strong>safe_term(terms)</strong>
+  </p>
+  <div class="docstring"><p>Recurs the quoted expression checking if all sub terms are
+safe (i.e. they represented data structured and don&#39;t actually
+evaluate code) and returns <code>:ok</code> unless a given term is unsafe,
+which is returned as <code>{ :unsafe, term }</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L534" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_binary/1">
+    <strong>to_binary(tree)</strong>
+  </p>
+  <div class="docstring"><p>Converts the given expression to a binary.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Macro.to_binary(quote do: foo.bar(1, 2, 3))
+&quot;foo.bar(1, 2, 3)&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L178" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unescape_binary/1">
+    <strong>unescape_binary(chars)</strong>
+  </p>
+  <div class="docstring"><p>Unescape the given chars. This is the unescaping behavior
+used by default in Elixir single- and double-quoted strings.
+Check <code>unescape_binary/2</code> for information on how to customize
+the escaping map.</p>
+
+<p>In this setup, Elixir will escape the following: <code>\a</code>, <code>\b</code>,
+<code>\d</code>, <code>\e</code>, <code>\f</code>, <code>\n</code>, <code>\r</code>, <code>\s</code>, <code>\t</code> and <code>\v</code>. Octals are
+also escaped according to the latin1 set they represent.</p>
+
+<p>This function is commonly used on sigil implementations
+(like <code>%r</code>, <code>%b</code> and others).</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Macro.unescape_binary(&quot;example\\n&quot;)
+&quot;example\n&quot;
+</code></pre>
+
+<p>In the example above, we pass a string with <code>\n</code> escaped
+and we return a version with it unescaped.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L96" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unescape_binary/2">
+    <strong>unescape_binary(chars, map)</strong>
+  </p>
+  <div class="docstring"><p>Unescape the given chars according to the map given.
+Check <code>unescape_binary/1</code> if you want to use the same map
+as Elixir single- and double-quoted strings.</p>
+
+<h2>Map</h2>
+
+<p>The map must be a function. The function receives an integer
+representing the number of the characters it wants to unescape.
+Here is the default mapping function implemented by Elixir:</p>
+
+<pre><code>def unescape_map(?a), do: ?\a
+def unescape_map(?b), do: ?\b
+def unescape_map(?d), do: ?\d
+def unescape_map(?e), do: ?\e
+def unescape_map(?f), do: ?\f
+def unescape_map(?n), do: ?\n
+def unescape_map(?r), do: ?\r
+def unescape_map(?s), do: ?\s
+def unescape_map(?t), do: ?\t
+def unescape_map(?v), do: ?\v
+def unescape_map(e),  do: e
+</code></pre>
+
+<p>If the <code>unescape_map</code> function returns false. The char is
+not escaped and <code>\</code> is kept in the char list.</p>
+
+<h2>Octals</h2>
+
+<p>Octals will by default be escaped unless the map function
+returns false for ?0.</p>
+
+<h2>Hex</h2>
+
+<p>Octals will by default be escaped unless the map function
+returns false for ?x.</p>
+
+<h2>Examples</h2>
+
+<p>Using the unescape_map defined above is easy:</p>
+
+<pre><code>Macro.unescape_binary &quot;example\\n&quot;, unescape_map(&amp;1)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L143" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unescape_tokens/1">
+    <strong>unescape_tokens(tokens)</strong>
+  </p>
+  <div class="docstring"><p>Unescape the given tokens according to the default map.
+Check <code>unescape_binary/1</code> and <code>unescape_binary/2</code> for more
+information about unescaping.</p>
+
+<p>Only tokens that are binaries are unescaped, all others are
+ignored. This function is useful when implementing your own
+sigils. Check the implementation of <code>Kernel.__b__</code>
+for examples.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L157" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unescape_tokens/2">
+    <strong>unescape_tokens(tokens, map)</strong>
+  </p>
+  <div class="docstring"><p>Unescape the given tokens according to the given map.
+Check <code>unescape_tokens/1</code> and <code>unescape_binary/2</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L165" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="binary_ops/0">
+    <strong>binary_ops()</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of binary operators. This is available
+as a macro so it can be used in guard clauses.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L12" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unary_ops/0">
+    <strong>unary_ops()</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of unary operators. This is available
+as a macro so it can be used in guard clauses.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L28" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/MatchError.html b/docs/master/MatchError.html
new file mode 100644
index 000000000..b224b4a0c
--- /dev/null
+++ b/docs/master/MatchError.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>MatchError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        MatchError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L30" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>actual:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L31" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Dep.html b/docs/master/Mix.Dep.html
new file mode 100644
index 000000000..2e1a5e005
--- /dev/null
+++ b/docs/master/Mix.Dep.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Dep</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Dep
+        
+          <small>record</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This is a record that keeps information about your project
+dependencies. It keeps:</p>
+
+<ul>
+<li>scm - a module representing the source code management tool (SCM) operations;</li>
+<li>app - the app name as an atom;</li>
+<li>requirements - a binary or regexp with the deps requirement;</li>
+<li>status - the current status of dependency, check <code>Mix.Deps.format_status/1</code> for more info;</li>
+<li>opts - the options given by the developer</li>
+<li>project - the Mix.Project for the dependency</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>scm:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>app:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>requirement:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>status:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>opts:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>project:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>deps:</strong> []
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Deps.html b/docs/master/Mix.Deps.html
new file mode 100644
index 000000000..f4522fa54
--- /dev/null
+++ b/docs/master/Mix.Deps.html
@@ -0,0 +1,341 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Deps</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Deps
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A module with common functions to work with dependencies.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L16" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#all/0">all/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#all/2">all/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#available?/1">available?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#by_name/2">by_name/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#check_lock/2">check_lock/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#children/0">children/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compile_paths/1">compile_paths/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#depending/2">depending/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#format_dep/1">format_dep/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#format_status/1">format_status/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#in_dependency/3">in_dependency/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#in_umbrella?/2">in_umbrella?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#load_paths/1">load_paths/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#make?/1">make?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#mix?/1">mix?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ok?/1">ok?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#out_of_date?/1">out_of_date?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rebar?/1">rebar?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/1">update/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="all/0">
+    <strong>all()</strong>
+  </p>
+  <div class="docstring"><p>Returns all dependencies recursively as <code>Mix.Dep</code> record.</p>
+
+<h2>Exceptions</h2>
+
+<p>This function raises an exception in case the developer
+provides a dependency in the wrong format.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L29" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="all/2">
+    <strong>all(acc, callback)</strong>
+  </p>
+  <div class="docstring"><p>Returns all dependencies but with a custom callback and
+accumulator.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L38" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="available?/1">
+    <strong>available?(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Check if a dependency is available.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L174" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="by_name/2">
+    <strong>by_name(given, all_deps // all)</strong>
+  </p>
+  <div class="docstring"><p>Receives a list of deps names and returns deps records.
+Logs a message if the dependency could not be found.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L71" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="check_lock/2">
+    <strong>check_lock(dep, lock)</strong>
+  </p>
+  <div class="docstring"><p>Checks the lock for the given dependency and update its status accordingly.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L144" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="children/0">
+    <strong>children()</strong>
+  </p>
+  <div class="docstring"><p>Returns all direct child dependencies.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L46" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compile_paths/1">
+    <strong>compile_paths(dep)</strong>
+  </p>
+  <div class="docstring"><p>Returns all compile paths for the dependency.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L210" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="depending/2">
+    <strong>depending(deps, all_deps // all)</strong>
+  </p>
+  <div class="docstring"><p>Returns all dependencies depending on given dependencies.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L51" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="format_dep/1">
+    <strong>format_dep(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Format the dependency for printing.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L197" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="format_status/1">
+    <strong>format_status(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Formats the status of a dependency.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L111" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="in_dependency/3">
+    <strong>in_dependency(arg1, post_config // [], fun)</strong>
+  </p>
+  <div class="docstring"><p>Runs the given <code>fun</code> inside the given dependency project by
+changing the current working directory and loading the given
+project into the project stack.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L96" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="in_umbrella?/2">
+    <strong>in_umbrella?(arg1, apps_path)</strong>
+  </p>
+  <div class="docstring"><p>Check if a dependency is part of an umbrella project as a top level project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L181" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="load_paths/1">
+    <strong>load_paths(dep)</strong>
+  </p>
+  <div class="docstring"><p>Returns all load paths for the dependency.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L223" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="make?/1">
+    <strong>make?(dep)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if dependency is a make project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L253" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="mix?/1">
+    <strong>mix?(dep)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if dependency is a mix project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L237" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ok?/1">
+    <strong>ok?(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Check if a dependency is ok.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L168" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="out_of_date?/1">
+    <strong>out_of_date?(dep)</strong>
+  </p>
+  <div class="docstring"><p>Check if a dependency is out of date or not, considering its
+lock status. Therefore, be sure to call <code>check_lock</code> before
+invoking this function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L190" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rebar?/1">
+    <strong>rebar?(dep)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if dependency is a rebar project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L244" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/1">
+    <strong>update(dep)</strong>
+  </p>
+  <div class="docstring"><p>Updates the dependency inside the given project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L163" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Error.html b/docs/master/Mix.Error.html
new file mode 100644
index 000000000..6a0432a40
--- /dev/null
+++ b/docs/master/Mix.Error.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Error</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Error
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/exceptions.ex#L16" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>mix_error:</strong> true
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Generator.html b/docs/master/Mix.Generator.html
new file mode 100644
index 000000000..870ff6e49
--- /dev/null
+++ b/docs/master/Mix.Generator.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Generator</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Generator
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Conveniences for working with paths and generating content.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/generator.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#create_directory/1">create_directory/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#create_file/2">create_file/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#embed_template/2">embed_template/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#embed_text/2">embed_text/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#from_file/1">from_file/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="create_directory/1">
+    <strong>create_directory(path)</strong>
+  </p>
+  <div class="docstring"><p>Creates a directory if one does not exist yet.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/generator.ex#L21" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="create_file/2">
+    <strong>create_file(path, contents)</strong>
+  </p>
+  <div class="docstring"><p>Creates a file with the given contents.
+If the file already exists, asks for user confirmation.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/generator.ex#L10" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="embed_template/2">
+    <strong>embed_template(name, contents)</strong>
+  </p>
+  <div class="docstring"><p>Embed a template given by <code>contents</code> into the current module.</p>
+
+<p>It will define a private function with the <code>name</code> followed by
+<code>_template</code> that expects assigns as arguments.</p>
+
+<p>This function must be invoked passing a keyword list.
+Each key in the keyword list can be accessed in the
+template using the <code>@</code> macro.</p>
+
+<p>For more information, check <code>EEx.SmartEngine</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/generator.ex#L61" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="embed_text/2">
+    <strong>embed_text(name, contents)</strong>
+  </p>
+  <div class="docstring"><p>Embeds a text given by <code>contents</code> into the current module.</p>
+
+<p>It will define a private function with the <code>name</code> followed by
+<code>_text</code> that expects no argument.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/generator.ex#L74" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="from_file/1">
+    <strong>from_file(path)</strong>
+  </p>
+  <div class="docstring"><p>Reads the content from a file relative to the current
+file and not relative to the cwd. Useful when used with
+embed macros:</p>
+
+<pre><code>embed_template :lib, from_file(&quot;../templates/lib.eex&quot;)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/generator.ex#L43" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.InvalidTaskError.html b/docs/master/Mix.InvalidTaskError.html
new file mode 100644
index 000000000..f0752eddb
--- /dev/null
+++ b/docs/master/Mix.InvalidTaskError.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.InvalidTaskError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.InvalidTaskError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/exceptions.ex#L7" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>task:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>mix_error:</strong> true
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/exceptions.ex#L8" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Local.html b/docs/master/Mix.Local.html
new file mode 100644
index 000000000..47d47e437
--- /dev/null
+++ b/docs/master/Mix.Local.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Local</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Local
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Module responsible to manage local .mix installation.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/local.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#all_tasks/0">all_tasks/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#append_paths/0">append_paths/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#append_tasks/0">append_tasks/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#tasks_path/0">tasks_path/0</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="all_tasks/0">
+    <strong>all_tasks()</strong>
+  </p>
+  <div class="docstring"><p>Returns all tasks modules in .mix/tasks.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/local.ex#L30" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="append_paths/0">
+    <strong>append_paths()</strong>
+  </p>
+  <div class="docstring"><p>Append mix paths into Erlang code path.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/local.ex#L23" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="append_tasks/0">
+    <strong>append_tasks()</strong>
+  </p>
+  <div class="docstring"><p>Append local tasks path into Erlang code path.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/local.ex#L16" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="tasks_path/0">
+    <strong>tasks_path()</strong>
+  </p>
+  <div class="docstring"><p>The path for local tasks.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/local.ex#L9" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.NoProjectError.html b/docs/master/Mix.NoProjectError.html
new file mode 100644
index 000000000..cc6664680
--- /dev/null
+++ b/docs/master/Mix.NoProjectError.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.NoProjectError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.NoProjectError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/exceptions.ex#L13" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>mix_error:</strong> true
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "Could not find a Mix.Project"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.NoTaskError.html b/docs/master/Mix.NoTaskError.html
new file mode 100644
index 000000000..13026bd55
--- /dev/null
+++ b/docs/master/Mix.NoTaskError.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.NoTaskError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.NoTaskError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/exceptions.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>task:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>mix_error:</strong> true
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/exceptions.ex#L2" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.OutOfDateDepsError.html b/docs/master/Mix.OutOfDateDepsError.html
new file mode 100644
index 000000000..5339ec867
--- /dev/null
+++ b/docs/master/Mix.OutOfDateDepsError.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.OutOfDateDepsError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.OutOfDateDepsError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/exceptions.ex#L18" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>mix_error:</strong> true
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>env:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/exceptions.ex#L19" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Project.html b/docs/master/Mix.Project.html
new file mode 100644
index 000000000..d0166d8ea
--- /dev/null
+++ b/docs/master/Mix.Project.html
@@ -0,0 +1,264 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Project</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Project
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A module that provides conveniences for defining and working
+with projects.</p>
+
+<h2>Examples</h2>
+
+<p>In order to configure Mix, a developer needs to use
+<code>Mix.Project</code> in a module and define a function named
+<code>project</code> that returns a keyword list with configuration.</p>
+
+<pre><code>defmodule MyApp do
+  use Mix.Project
+
+  def project do
+    [
+      app: :my_app,
+      vsn: &quot;0.6.0&quot;
+    ]
+  end
+end
+</code></pre>
+
+<p>After defined, the configuration for this project can be read
+as <code>Mix.project/0</code>. Notice that config won&#39;t fail if a
+project is not defined, this allows many of mix tasks to work
+even without a project.</p>
+
+<p>In case the developer needs a project or want to access a special
+function in the project, he can access <code>Mix.Project.get!/0</code>
+which fails with <code>Mix.NoProjectError</code> in case a project is not
+defined.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#apps_path/0">apps_path/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compile_paths/0">compile_paths/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#config/0">config/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#config_files/0">config_files/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/0">get/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get!/0">get!/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#in_project/4">in_project/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#load_paths/0">load_paths/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#recur/1">recur/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#refresh/0">refresh/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#umbrella?/0">umbrella?/0</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="apps_path/0">
+    <strong>apps_path()</strong>
+  </p>
+  <div class="docstring"><p>Returns the path to the apps directory.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L140" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compile_paths/0">
+    <strong>compile_paths()</strong>
+  </p>
+  <div class="docstring"><p>Returns the paths this project compiles to.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L201" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="config/0">
+    <strong>config()</strong>
+  </p>
+  <div class="docstring"><p>Returns the project configuration already
+considering the current environment.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="config_files/0">
+    <strong>config_files()</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of project config files (mix.exs and mix.lock).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L114" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/0">
+    <strong>get()</strong>
+  </p>
+  <div class="docstring"><p>Retrieves the current project.</p>
+
+<p>This is usually called by tasks that needs additional
+functions on the project to be defined. Since such
+tasks usually depends on a project to be defined, this
+function raises <code>Mix.NoProjectError</code> in case no project
+is available.</p>
+
+<p>Returns nil if no project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L86" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get!/0">
+    <strong>get!()</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>get/0</code> but raises an exception if no project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L96" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="in_project/4">
+    <strong>in_project(app, app_path, post_config // [], fun)</strong>
+  </p>
+  <div class="docstring"><p>Runs the given <code>fun</code> inside the given project by changing
+the current working directory and loading the given project
+into the project stack.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L180" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="load_paths/0">
+    <strong>load_paths()</strong>
+  </p>
+  <div class="docstring"><p>Returns all load paths for this project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L208" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="recur/1">
+    <strong>recur(fun)</strong>
+  </p>
+  <div class="docstring"><p>Runs <code>fun</code> in the current project.</p>
+
+<p>The goal of this function is to transparently abstract umbrella projects.
+So if you want to gather data from a project, like beam files, you can
+use this function to transparently go through the project, regardless
+if it is an umbrella project or not.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L152" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="refresh/0">
+    <strong>refresh()</strong>
+  </p>
+  <div class="docstring"><p>Refresh the project configuration. Usually required
+when the environment changes during a task.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L71" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="umbrella?/0">
+    <strong>umbrella?()</strong>
+  </p>
+  <div class="docstring"><p>Returns true if project is an umbrella project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L133" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.SCM.html b/docs/master/Mix.SCM.html
new file mode 100644
index 000000000..6e6711c6b
--- /dev/null
+++ b/docs/master/Mix.SCM.html
@@ -0,0 +1,276 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.SCM</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.SCM
+        
+          <small>behaviour</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module provides helper functions and defines the
+behavior required by any SCM used by mix.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#available/0">available/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#register/1">register/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#register_builtin/0">register_builtin/0</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <h2 id="callbacks_summary">Callbacks summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#clean/1">clean/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#equal?/2">equal?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#matches_lock?/1">matches_lock?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/1">update/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#checkout/1">checkout/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#checked_out?/1">checked_out?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#accepts_options/1">accepts_options/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#format_lock/1">format_lock/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#format/1">format/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="available/0">
+    <strong>available()</strong>
+  </p>
+  <div class="docstring"><p>Returns all available SCM.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L90" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="register/1">
+    <strong>register(mod)</strong>
+  </p>
+  <div class="docstring"><p>Register the scm repository with the given <code>key</code> and <code>mod</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L97" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="register_builtin/0">
+    <strong>register_builtin()</strong>
+  </p>
+  <div class="docstring"><p>Register builtin SCMs.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+        <div id="callbacks_details" class="details_list">
+          <h2>Callbacks</h2>
+          <div class="detail">
+  <p class="signature" id="clean/1">
+    <strong>clean(opts())</strong>
+  </p>
+  <div class="docstring"><p>This behavior function should clean the given dependency.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L85" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="equal?/2">
+    <strong>equal?(opts1 :: opts(), opts2 :: opts())</strong>
+  </p>
+  <div class="docstring"><p>Receives two options and must return true if the refer to the
+same repository. The options are guaranteed to belong to the
+same SCM.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L80" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="matches_lock?/1">
+    <strong>matches_lock?(opts())</strong>
+  </p>
+  <div class="docstring"><p>This behavior function checks if the dependency is locked and
+the current repository version matches the lock. Note that some
+SCMs do not require a lock, for such, this function can simply
+return true.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L73" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/1">
+    <strong>update(opts())</strong>
+  </p>
+  <div class="docstring"><p>This behavior function updates dependencies. It may be
+called by <code>deps.get</code> or <code>deps.update</code>.</p>
+
+<p>In the first scenario, a lock is received in <code>opts</code> and
+the repository must be updated to the lock. In the second,
+no lock is given and the repository can be updated freely.</p>
+
+<p>It must return the current lock.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L65" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="checkout/1">
+    <strong>checkout(opts())</strong>
+  </p>
+  <div class="docstring"><p>This behavior function checks out dependencies.</p>
+
+<p>If the dependency is locked, a lock is received in <code>opts</code>
+and the repository must be check out at the lock. Otherwise,
+no lock is given and the repository can be checked out
+to the latest version.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="checked_out?/1">
+    <strong>checked_out?(opts())</strong>
+  </p>
+  <div class="docstring"><p>This behavior function returns a boolean if the
+dependency is available.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L43" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="accepts_options/1">
+    <strong>accepts_options(opts())</strong>
+  </p>
+  <div class="docstring"><p>This behavior function receives a keyword list of <code>opts</code>
+and should return an updated list in case the SCM consumes
+the available options. For example, when a developer specifies
+a dependency:</p>
+
+<pre><code>{ :foo, &quot;0.1.0&quot;, github: &quot;foo/bar&quot; }
+</code></pre>
+
+<p>Each registered SCM will be asked if they consume this dependency,
+receiving [github: &quot;foo/bar&quot;] as argument. Since this option makes
+sense for the Git SCM, it will return an update list of options
+while other SCMs would simply return nil.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L37" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="format_lock/1">
+    <strong>format_lock(lock())</strong>
+  </p>
+  <div class="docstring"><p>Returns an Elixir term that contains relevant SCM
+lock information for printing.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="format/1">
+    <strong>format(opts())</strong>
+  </p>
+  <div class="docstring"><p>Returns an Elixir term that contains relevant SCM
+information for printing.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L16" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Shell.IO.html b/docs/master/Mix.Shell.IO.html
new file mode 100644
index 000000000..9b512b63f
--- /dev/null
+++ b/docs/master/Mix.Shell.IO.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Shell.IO</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Shell.IO
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This is Mix&#39;s default shell.
+It simply prints messages to stdio and stderr.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/io.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#cmd/1">cmd/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#error/1">error/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#info/1">info/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_app/0">put_app/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#yes?/1">yes?/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="cmd/1">
+    <strong>cmd(command)</strong>
+  </p>
+  <div class="docstring"><p>Executes the given command and prints its output
+to stdout as it comes.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/io.ex#L13" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="error/1">
+    <strong>error(message)</strong>
+  </p>
+  <div class="docstring"><p>Writes an error message to the shell followed by new line.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/io.ex#L29" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="info/1">
+    <strong>info(message)</strong>
+  </p>
+  <div class="docstring"><p>Writes a message to the shell followed by new line.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/io.ex#L21" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_app/0">
+    <strong>put_app()</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/io.ex#L44" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="yes?/1">
+    <strong>yes?(message)</strong>
+  </p>
+  <div class="docstring"><p>Receives a message and asks the user if he wants to proceed.
+He must press enter or type anything that matches the a &quot;yes&quot;
+regex <code>%r/^Y(es)?$/i</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/io.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Shell.Process.html b/docs/master/Mix.Shell.Process.html
new file mode 100644
index 000000000..40f84b679
--- /dev/null
+++ b/docs/master/Mix.Shell.Process.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Shell.Process</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Shell.Process
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This is Mix shell that uses the current process mailbox
+for communication instead of IO.</p>
+
+<p>When a developer calls <code>info(&quot;hello&quot;)</code>, the following
+message will be sent to the current process:</p>
+
+<pre><code>{ :mix_shell, :info, [&quot;hello&quot;] }
+</code></pre>
+
+<p>This is mainly useful in tests, allowing us to assert
+if given messages were received or not. Since we need
+to guarantee a clean slate in between tests, there
+is also a flush function responsible for flushing all
+<code>:mix_shell</code> related tasks from the process inbox.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/process.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#cmd/1">cmd/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#error/1">error/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#flush/1">flush/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#info/1">info/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_app/0">put_app/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#yes?/1">yes?/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="cmd/1">
+    <strong>cmd(command)</strong>
+  </p>
+  <div class="docstring"><p>Executes the given command and fowards its messages to
+the current process.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/process.ex#L43" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="error/1">
+    <strong>error(message)</strong>
+  </p>
+  <div class="docstring"><p>Simply forwards the message to the current process.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/process.ex#L61" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="flush/1">
+    <strong>flush(callback // fn x -&gt; x end)</strong>
+  </p>
+  <div class="docstring"><p>Flush all :mix_shell messages from the current process.
+If a callback is given, it is invoked for each received message.</p>
+
+<h2>Examples</h2>
+
+<pre><code>flush IO.inspect(&amp;1)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/process.ex#L29" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="info/1">
+    <strong>info(message)</strong>
+  </p>
+  <div class="docstring"><p>Simply forwards the message to the current process.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/process.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_app/0">
+    <strong>put_app()</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/process.ex#L86" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="yes?/1">
+    <strong>yes?(message)</strong>
+  </p>
+  <div class="docstring"><p>Simply forwards the message to the current process.
+It also checks the inbox for an input message matching:</p>
+
+<pre><code>{ :mix_shell_input, :yes?, value }
+</code></pre>
+
+<p>If one does not exist, it will abort since there no shell
+process input given. Value must be true or false.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/process.ex#L75" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Shell.html b/docs/master/Mix.Shell.html
new file mode 100644
index 000000000..9c9bf7f41
--- /dev/null
+++ b/docs/master/Mix.Shell.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Shell</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Shell
+        
+          <small>behaviour</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Defines Mix.Shell contract.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#cmd/2">cmd/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#output_app?/0">output_app?/0</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <h2 id="callbacks_summary">Callbacks summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#cmd/1">cmd/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#yes?/1">yes?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#error/1">error/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#info/1">info/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="cmd/2">
+    <strong>cmd(command, callback)</strong>
+  </p>
+  <div class="docstring"><p>An implementation of the command callback that
+is shared accross different shells.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell.ex#L40" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="output_app?/0">
+    <strong>output_app?()</strong>
+  </p>
+  <div class="docstring"><p>Returns if we should output application name to shell.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell.ex#L32" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+        <div id="callbacks_details" class="details_list">
+          <h2>Callbacks</h2>
+          <div class="detail">
+  <p class="signature" id="cmd/1">
+    <strong>cmd(command :: binary())</strong>
+  </p>
+  <div class="docstring"><p>Executes the given command and returns
+its exit status.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell.ex#L27" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="yes?/1">
+    <strong>yes?(message :: binary())</strong>
+  </p>
+  <div class="docstring"><p>Asks the user for confirmation.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell.ex#L21" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="error/1">
+    <strong>error(message :: binary())</strong>
+  </p>
+  <div class="docstring"><p>Warns about the given error message.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell.ex#L16" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="info/1">
+    <strong>info(message :: binary())</strong>
+  </p>
+  <div class="docstring"><p>Informs the given message.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell.ex#L11" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Task.html b/docs/master/Mix.Task.html
new file mode 100644
index 000000000..d28e8091b
--- /dev/null
+++ b/docs/master/Mix.Task.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Task</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Task
+        
+          <small>behaviour</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A simple module that provides conveniences for creating tasks.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#all_modules/0">all_modules/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#clear/0">clear/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/1">get/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#hidden?/1">hidden?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#load_all/0">load_all/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#moduledoc/1">moduledoc/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#recursive?/1">recursive?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reenable/1">reenable/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#run/2">run/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#shortdoc/1">shortdoc/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#task_name/1">task_name/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <h2 id="callbacks_summary">Callbacks summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="all_modules/0">
+    <strong>all_modules()</strong>
+  </p>
+  <div class="docstring"><p>Returns all loaded modules. Modules that were not yet loaded
+won&#39;t show up. Check <code>load_all/0</code> if you want to preload all tasks.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="clear/0">
+    <strong>clear()</strong>
+  </p>
+  <div class="docstring"><p>Clears all invoked tasks, allowing them to be reinvoked.
+Returns an ordset with all the tasks invoked thus far.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L153" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/1">
+    <strong>get(task)</strong>
+  </p>
+  <div class="docstring"><p>Receives a task name and retrives the task module.</p>
+
+<h2>Exceptions</h2>
+
+<ul>
+<li><code>Mix.NoTaskError</code> - raised if the task could not be found;</li>
+<li><code>Mix.InvalidTaskError</code> - raised if the task is not a valid <code>Mix.Task</code></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L107" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="hidden?/1">
+    <strong>hidden?(module)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the task is hidden or not. Returns a boolean.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L75" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="load_all/0">
+    <strong>load_all()</strong>
+  </p>
+  <div class="docstring"><p>Loads all tasks in all code paths.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L28" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="moduledoc/1">
+    <strong>moduledoc(module)</strong>
+  </p>
+  <div class="docstring"><p>Gets the moduledoc for the given module.
+Returns the moduledoc or <code>nil</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L54" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="recursive?/1">
+    <strong>recursive?(module)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the task is defined for umbrella projects.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L85" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reenable/1">
+    <strong>reenable(task)</strong>
+  </p>
+  <div class="docstring"><p>Reenables a given task so it can be executed again down the stack. If
+an umbrella project reenables a task it is reenabled for all sub projects.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L161" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="run/2">
+    <strong>run(task, args // [])</strong>
+  </p>
+  <div class="docstring"><p>Runs a <code>task</code> with the given <code>args</code>.</p>
+
+<p>If the task was not yet invoked, it returns <code>:ok</code>.</p>
+
+<p>If the task was already invoked, it does not run the task
+again and simply aborts with <code>:noop</code>.</p>
+
+<p>It may raise an exception if the task was not found
+or it is invalid. Check <code>get/2</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L131" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="shortdoc/1">
+    <strong>shortdoc(module)</strong>
+  </p>
+  <div class="docstring"><p>Gets the shortdoc for the given module.
+Returns the shortdoc or <code>nil</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L65" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="task_name/1">
+    <strong>task_name(module)</strong>
+  </p>
+  <div class="docstring"><p>Returns the task name for the given module.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L95" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+        <div id="callbacks_details" class="details_list">
+          <h2>Callbacks</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run([binary()])</strong>
+  </p>
+  <div class="docstring"><p>A task needs to implement run which receives
+a list of command line args.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L13" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.App.Start.html b/docs/master/Mix.Tasks.App.Start.html
new file mode 100644
index 000000000..1441c7203
--- /dev/null
+++ b/docs/master/Mix.Tasks.App.Start.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.App.Start</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.App.Start
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Starts all registered apps. If no apps key exists,
+it starts the current application.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--no-compile</code> - do not compile even if files require compilation;</li>
+<li><code>--no-start</code> - do not start applications after compilation;</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/app.start.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/app.start.ex#L18" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Clean.html b/docs/master/Mix.Tasks.Clean.html
new file mode 100644
index 000000000..711aaf4fa
--- /dev/null
+++ b/docs/master/Mix.Tasks.Clean.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Clean</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Clean
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Clean generated application files.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--all</code> - Clean everything, including dependencies</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/clean.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/clean.ex#L16" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Compile.App.html b/docs/master/Mix.Tasks.Compile.App.html
new file mode 100644
index 000000000..b17d54f7b
--- /dev/null
+++ b/docs/master/Mix.Tasks.Compile.App.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Compile.App</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Compile.App
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Writes an .app file.</p>
+
+<p>By default, this task will detect all modules in your compile_path
+(default to &quot;ebin&quot;) and generate a best guess for your application
+specification. This best guess also includes &quot;kernel&quot;, &quot;stdlib&quot;
+and &quot;elixir&quot; as application dependencies.</p>
+
+<p>You can optionally define an <code>application/0</code> function inside your
+<code>Mix.Project</code> that returns a keyword list to further configure
+your application according to OTP design principles:</p>
+
+<p><a href="http://www.erlang.org/doc/design_principles/applications.html">http://www.erlang.org/doc/design_principles/applications.html</a></p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--force</code> forces compilation regardless of mod times</li>
+</ul>
+
+<h2>Configuration</h2>
+
+<ul>
+<li><code>:app</code> - The application name as a binary (required)</li>
+<li><code>:version</code> - The application version as a binary (required)</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.app.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.app.ex#L32" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Compile.Elixir.html b/docs/master/Mix.Tasks.Compile.Elixir.html
new file mode 100644
index 000000000..fcfbb4b77
--- /dev/null
+++ b/docs/master/Mix.Tasks.Compile.Elixir.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Compile.Elixir</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Compile.Elixir
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A task to compile Elixir source files.</p>
+
+<p>When this task runs, it will first check the mod times of
+all of the files to be compiled and if they haven&#39;t been
+changed since the last compilation, it will not compile
+them at all. If any one of them has changed, it compiles
+everything.</p>
+
+<p>For this reason, this task touches your <code>:compile_path</code>
+directory and sets the modification time to the current
+time and date at the end of each compilation. You can
+force compilation regardless of mod times by passing
+the <code>--force</code> option.</p>
+
+<p>Note it is important to recompile all files because
+often there are compilation time dependencies between
+the files (macros and etc). However, in some cases it
+is useful to compile just the changed files for quick
+development cycles, for such, a developer can pass
+the <code>--quick</code> otion.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--force</code> - forces compilation regardless of module times;</li>
+<li><code>--quick</code>, <code>-q</code> - only compile files that changed;</li>
+</ul>
+
+<h2>Configuration</h2>
+
+<ul>
+<li><p><code>:elixirc_paths</code> - directories to find source files.
+Defaults to <code>[&quot;lib&quot;]</code>, can be configured as:</p>
+
+<p>[elixirc_paths: [&quot;lib&quot;, &quot;other&quot;]]</p></li>
+<li><p><code>:elixirc_options</code> - compilation options that applies
+to Elixir&#39;s compiler, they are: <code>:ignore_module_conflict</code>,
+<code>:docs</code> and <code>:debug_info</code>. By default, uses the same
+behaviour as Elixir</p>
+
+<ul>
+<li><code>:elixirc_exts</code> - extensions to compile whenever there
+is a change:</li>
+</ul>
+
+<p>[compile_exts: [:ex]]
+* <code>:watch_exts</code> - extensions to watch in order to trigger
+a compilation:</p>
+
+<p>[elixirc<em>watch</em>exts: [:ex, :eex]]</p></li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.elixir.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.elixir.ex#L59" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Compile.Erlang.html b/docs/master/Mix.Tasks.Compile.Erlang.html
new file mode 100644
index 000000000..9ce60ff3a
--- /dev/null
+++ b/docs/master/Mix.Tasks.Compile.Erlang.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Compile.Erlang</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Compile.Erlang
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A task to compile Erlang source files.</p>
+
+<p>When this task runs, it will first check the mod times of
+all of the files. Every file will checked, if file or
+file dependencies, like include files, was changed.
+If file of his dependencies haven&#39;t been changed since the
+last compilation, it will not compile. If file or one of his
+dependency has changed, it will compile.</p>
+
+<p>For this reason, this task touches your <code>:compile_path</code>
+directory and sets the modification time to the current
+time and date at the end of each compilation. You can
+force compilation regardless of mod times by passing
+the <code>--force</code> option.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--force</code> - forces compilation regardless of module times</li>
+</ul>
+
+<h2>Configuration</h2>
+
+<ul>
+<li><p><code>ERL_COMPILER_OPTIONS</code> - can be used to give default compile options.
+It&#39;s value must be a valid Erlang term. If the value is a list, it will
+be used as is. If it is not a list, it will be put into a list.</p></li>
+<li><p><code>:erlc_paths</code> - directories to find source files.
+Defaults to <code>[&quot;src&quot;]</code>, can be configured as:</p>
+
+<p>[erlc_paths: [&quot;src&quot;, &quot;other&quot;]]</p></li>
+<li><p><code>:erlc_include_path</code> - directory for adding include files.
+Defaults to <code>&quot;include&quot;</code>, can be configured as:</p>
+
+<p>[<code>erlc_include_path</code>: &quot;other&quot;]</p></li>
+<li><p><code>:erlc_options</code> - compilation options that applies to Erlang&#39;s
+compiler. <code>:debug_info</code> is enabled by default.</p></li>
+</ul>
+
+<p>There are many available options here:
+   <a href="http://www.erlang.org/doc/man/compile.html#file-2">http://www.erlang.org/doc/man/compile.html#file-2</a></p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.erlang.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#extract_stale_pairs/5">extract_stale_pairs/5</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#interpret_result/3">interpret_result/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_erl_file/1">to_erl_file/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="extract_stale_pairs/5">
+    <strong>extract_stale_pairs(dir1, ext1, dir2, ext2, force)</strong>
+  </p>
+  <div class="docstring"><p>Extract stale pairs considering the set of directories
+and filename extensions. It first looks up the <code>dir1</code>
+for files with <code>ext1</code> extensions and then recursively
+try to find matching pairs in <code>dir2</code> with <code>ext2</code>
+extension.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.erlang.ex#L176" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="interpret_result/3">
+    <strong>interpret_result(file, result, ext // &quot;&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Interprets compilation results and prints them to the console.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.erlang.ex#L192" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.erlang.ex#L58" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_erl_file/1">
+    <strong>to_erl_file(file)</strong>
+  </p>
+  <div class="docstring"><p>Converts the given file to a format accepted by
+Erlang compilation tools.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.erlang.ex#L205" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Compile.Leex.html b/docs/master/Mix.Tasks.Compile.Leex.html
new file mode 100644
index 000000000..56124d783
--- /dev/null
+++ b/docs/master/Mix.Tasks.Compile.Leex.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Compile.Leex</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Compile.Leex
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A task to compile Leex source files.</p>
+
+<p>When this task runs, it will check the mod time of every file, and
+if it has changed, then file will be compiled. Files will be
+compiled in the same source directory with .erl extension.
+You can force compilation regardless of mod times by passing
+the <code>--force</code> option.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--force</code> - forces compilation regardless of module times;</li>
+</ul>
+
+<h2>Configuration</h2>
+
+<ul>
+<li><p><code>:erlc_paths</code> - directories to find source files.
+Defaults to <code>[&quot;src&quot;]</code>, can be configured as:</p>
+
+<p>[erlc_paths: [&quot;src&quot;, &quot;other&quot;]]</p></li>
+<li><p><code>:leex_options</code> - compilation options that applies
+to Leex&#39;s compiler. There are many available options
+here: <a href="http://www.erlang.org/doc/man/leex.html#file-2">http://www.erlang.org/doc/man/leex.html#file-2</a></p></li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.leex.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.leex.ex#L36" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Compile.Yecc.html b/docs/master/Mix.Tasks.Compile.Yecc.html
new file mode 100644
index 000000000..1e0022226
--- /dev/null
+++ b/docs/master/Mix.Tasks.Compile.Yecc.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Compile.Yecc</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Compile.Yecc
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A task to compile Yecc source files.</p>
+
+<p>When this task runs, it will check the mod time of every file, and
+if it has changed, then file will be compiled. Files will be
+compiled in the same source directory with .erl extension.
+You can force compilation regardless of mod times by passing
+the <code>--force</code> option.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--force</code> - forces compilation regardless of module times;</li>
+</ul>
+
+<h2>Configuration</h2>
+
+<ul>
+<li><p><code>:erlc_paths</code> - directories to find source files.
+Defaults to <code>[&quot;src&quot;]</code>, can be configured as:</p>
+
+<p>[erlc_paths: [&quot;src&quot;, &quot;other&quot;]]</p></li>
+<li><p><code>:yecc_options</code> - compilation options that applies
+to Yecc&#39;s compiler. There are many other available
+options here: <a href="http://www.erlang.org/doc/man/yecc.html#file-1">http://www.erlang.org/doc/man/yecc.html#file-1</a></p></li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.yecc.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.yecc.ex#L38" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Compile.html b/docs/master/Mix.Tasks.Compile.html
new file mode 100644
index 000000000..0b2d03d04
--- /dev/null
+++ b/docs/master/Mix.Tasks.Compile.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Compile</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Compile
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A meta task that compile source files. It simply runs the
+compilers registered in your project. At the end of compilation
+it ensures load paths are set.</p>
+
+<h2>Configuration</h2>
+
+<ul>
+<li><p><code>:compilers</code> - compilers to be run, defaults to:</p>
+
+<p>[:elixir, :app]</p></li>
+</ul>
+
+<p>It can be configured to handle custom compilers, for example:</p>
+
+<pre><code>[compilers: [:elixir, :mycompiler, :app]]
+</code></pre>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--list</code> - List all enabled compilers.</li>
+</ul>
+
+<p>Remaining options are forwarded to underlying compilers.</p>
+
+<h2>Common configuration</h2>
+
+<p>The following options are usually shared by different compilers:</p>
+
+<ul>
+<li><p><code>:compile_path</code> - directory to output compiled files.
+Defaults to <code>&quot;ebin&quot;</code>, can be configured as:</p>
+
+<p>[compile_path: &quot;ebin&quot;]</p></li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.ex#L38" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Deps.Check.html b/docs/master/Mix.Tasks.Deps.Check.html
new file mode 100644
index 000000000..06597528d
--- /dev/null
+++ b/docs/master/Mix.Tasks.Deps.Check.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Deps.Check</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Deps.Check
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Checks if all dependencies are valid and if not, abort.
+Prints the invalid dependencies status before aborting.</p>
+
+<p>This task is not shown in <code>mix help</code> but it is part
+of mix public API and can be depended on.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.check.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(_)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.check.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Deps.Clean.html b/docs/master/Mix.Tasks.Deps.Clean.html
new file mode 100644
index 000000000..e4ababde8
--- /dev/null
+++ b/docs/master/Mix.Tasks.Deps.Clean.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Deps.Clean</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Deps.Clean
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Clean dependencies.</p>
+
+<p>By default, cleans all dependencies. A list of deps can
+be given to clean specific ones. Clean does not unlock
+the repositories, unless --unlock is given.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.clean.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.clean.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Deps.Compile.html b/docs/master/Mix.Tasks.Deps.Compile.html
new file mode 100644
index 000000000..1271f2f15
--- /dev/null
+++ b/docs/master/Mix.Tasks.Deps.Compile.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Deps.Compile</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Deps.Compile
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Compile dependencies.</p>
+
+<p>By default, compile all dependencies. A list of deps can
+be given to force the compilation of specific deps.</p>
+
+<p>By default, it tries to detect if the project contains one of
+the following files:</p>
+
+<ul>
+<li><code>mix.exs</code>      - if so, invokes <code>mix compile</code></li>
+<li><code>rebar.config</code> - if so, invokes <code>rebar compile</code></li>
+<li><code>Makefile</code>     - if so, invokes <code>make</code></li>
+</ul>
+
+<p>The compilation can be customized by passing a <code>compile</code> option
+in the dependency:</p>
+
+<pre><code>{ :some_dependency, &quot;0.1.0&quot;, git: &quot;...&quot;, compile: &quot;command to compile&quot; }
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.compile.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.compile.ex#L30" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Deps.Get.html b/docs/master/Mix.Tasks.Deps.Get.html
new file mode 100644
index 000000000..2029f61e8
--- /dev/null
+++ b/docs/master/Mix.Tasks.Deps.Get.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Deps.Get</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Deps.Get
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Get all out of date dependencies, i.e. dependencies
+that are not available or have an invalid lock.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--no-compile</code> - skip compilation of dependencies</li>
+<li><code>--quiet</code> - do not output success message</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.get.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.get.ex#L20" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Deps.Loadpaths.html b/docs/master/Mix.Tasks.Deps.Loadpaths.html
new file mode 100644
index 000000000..acf7acb87
--- /dev/null
+++ b/docs/master/Mix.Tasks.Deps.Loadpaths.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Deps.Loadpaths</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Deps.Loadpaths
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Loads all dependencies. This is invoked directly
+by &quot;loadpaths&quot; when the CLI boots.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.loadpaths.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.loadpaths.ex#L14" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Deps.Unlock.html b/docs/master/Mix.Tasks.Deps.Unlock.html
new file mode 100644
index 000000000..2068ff470
--- /dev/null
+++ b/docs/master/Mix.Tasks.Deps.Unlock.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Deps.Unlock</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Deps.Unlock
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Unlock the given dependencies. If no dependencies
+are given, unlock all.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.unlock.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.unlock.ex#L12" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Deps.Update.html b/docs/master/Mix.Tasks.Deps.Update.html
new file mode 100644
index 000000000..7b6e8709d
--- /dev/null
+++ b/docs/master/Mix.Tasks.Deps.Update.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Deps.Update</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Deps.Update
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Update dependencies.</p>
+
+<p>By default, updates all dependencies. A list of deps can
+be given to update specific ones. Recompiles the given
+projects after updating.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--no-compile</code> - skip compilation of dependencies</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.update.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.update.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Deps.html b/docs/master/Mix.Tasks.Deps.html
new file mode 100644
index 000000000..db47befb4
--- /dev/null
+++ b/docs/master/Mix.Tasks.Deps.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Deps</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Deps
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>List all dependencies and their status.
+The output is given as follow:</p>
+
+<ul>
+<li>APP [VERSION] SCM: LOCATION
+[locked at REF]
+STATUS</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(_)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.ex#L18" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Do.html b/docs/master/Mix.Tasks.Do.html
new file mode 100644
index 000000000..7df2c7fff
--- /dev/null
+++ b/docs/master/Mix.Tasks.Do.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Do</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Do
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Executes the commands separated by comma.</p>
+
+<h2>Examples</h2>
+
+<p>The example below prints the available compilers and
+then the list of dependencies.</p>
+
+<pre><code>mix do compile --list, deps
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/do.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/do.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Escriptize.html b/docs/master/Mix.Tasks.Escriptize.html
new file mode 100644
index 000000000..4b953bc4c
--- /dev/null
+++ b/docs/master/Mix.Tasks.Escriptize.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Escriptize</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Escriptize
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Generates an escript for the project.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><p><code>--force</code> forces compilation regardless of mod times</p></li>
+<li><p><code>--no-compile</code> skips compilation to .beam</p></li>
+</ul>
+
+<h2>Configuration</h2>
+
+<p>The following options can be specified in your mix.exs file:</p>
+
+<ul>
+<li><p><code>escript_name</code> - the name of the generated escript
+Defaults to project name</p></li>
+<li><p><code>escript_path</code> - the path to write the escript to
+Defaults to project name</p></li>
+<li><p><code>escript_main_module</code> - the module containing the main/1 function.
+Defaults to <code>Project</code></p></li>
+<li><p><code>escript_embed_elixir</code> - if true embed elixir in the escript file.
+Defaults to true</p></li>
+<li><p><code>escript_embed_extra_apps</code> - embed additional Elixir applications
+if <code>escript_embed_elixir</code> is true.
+Defaults to []</p></li>
+<li><p><code>escript_shebang</code>
+Defaults to &quot;#! /usr/bin/env escript\n&quot;</p></li>
+<li><p><code>escript_comment</code>
+Defaults to &quot;%%\n&quot;</p></li>
+<li><p><code>escript_emu_args</code> - emulator arguments to embed in the escript file
+Defaults to &quot;%%!\n&quot;</p></li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/escriptize.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/escriptize.ex#L46" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Help.html b/docs/master/Mix.Tasks.Help.html
new file mode 100644
index 000000000..81afe6f4c
--- /dev/null
+++ b/docs/master/Mix.Tasks.Help.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Help</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Help
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>If given a task name, prints the documentation for that task.
+If no task name is given, prints the short form documentation
+for all tasks.</p>
+
+<h2>Arguments</h2>
+
+<pre><code>mix help      - prints all tasks and their shortdoc
+mix help TASK - prints full docs for the given task
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/help.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(list1)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/help.ex#L18" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Loadpaths.html b/docs/master/Mix.Tasks.Loadpaths.html
new file mode 100644
index 000000000..4d510536f
--- /dev/null
+++ b/docs/master/Mix.Tasks.Loadpaths.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Loadpaths</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Loadpaths
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Load the application and its dependencies paths.</p>
+
+<h2>Configuration</h2>
+
+<ul>
+<li><code>:load_paths</code> extra load paths to be added.
+They are added with lower priority than the app ones.</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/loadpaths.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/loadpaths.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Local.Install.html b/docs/master/Mix.Tasks.Local.Install.html
new file mode 100644
index 000000000..ade965f69
--- /dev/null
+++ b/docs/master/Mix.Tasks.Local.Install.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Local.Install</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Local.Install
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Install a task locally.</p>
+
+<p>The task can be either a local beam file or a beam
+file located at some URL.</p>
+
+<pre><code>mix local.install http://example.com/some_task.beam
+</code></pre>
+
+<p>After installed, the task can be invoked locally:</p>
+
+<pre><code>mix some_task
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.install.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(argv)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.install.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Local.Rebar.html b/docs/master/Mix.Tasks.Local.Rebar.html
new file mode 100644
index 000000000..087732872
--- /dev/null
+++ b/docs/master/Mix.Tasks.Local.Rebar.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Local.Rebar</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Local.Rebar
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Fetch a copy of rebar from the given path or url, defaulting to
+<a href="https://github.com/downloads/basho/rebar/rebar">https://github.com/downloads/basho/rebar/rebar</a> if no parameter
+given. The local copy is stored in your MIX_HOME (defaults to ~/.mix).</p>
+
+<p>This version of rebar will be used as required by mix deps.compile</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.rebar.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#local_rebar_path/0">local_rebar_path/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="local_rebar_path/0">
+    <strong>local_rebar_path()</strong>
+  </p>
+  <div class="docstring"><p>Return the path to the local copy of rebar. Used when building deps</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.rebar.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(argv)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.rebar.ex#L25" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Local.Uninstall.html b/docs/master/Mix.Tasks.Local.Uninstall.html
new file mode 100644
index 000000000..32c11dea7
--- /dev/null
+++ b/docs/master/Mix.Tasks.Local.Uninstall.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Local.Uninstall</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Local.Uninstall
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Uninstall local tasks:</p>
+
+<pre><code>mix local.uninstall task_name
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.uninstall.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(argv)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.uninstall.ex#L13" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Local.html b/docs/master/Mix.Tasks.Local.html
new file mode 100644
index 000000000..0a90bb393
--- /dev/null
+++ b/docs/master/Mix.Tasks.Local.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Local</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Local
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>List local tasks.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(list1)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.ex#L10" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.New.html b/docs/master/Mix.Tasks.New.html
new file mode 100644
index 000000000..6ef24b5f3
--- /dev/null
+++ b/docs/master/Mix.Tasks.New.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.New</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.New
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Creates a new Elixir project.
+It expects the path of the project as argument.</p>
+
+<pre><code>mix new PATH [--sup] [--module MODULE] [--umbrella]
+</code></pre>
+
+<p>A project at the given PATH  will be created. The
+application name and module name will be retrieved
+from the path, unless <code>--module</code> is given.</p>
+
+<p>A <code>--sup</code> option can be given to generate an
+app with a supervisor and an application module
+that starts the supervisor.</p>
+
+<p>An <code>--umbrella</code> option can be given to generate an
+umbrella project.</p>
+
+<h2>Examples</h2>
+
+<pre><code>mix new hello_world
+</code></pre>
+
+<p>Is equivalent to:</p>
+
+<pre><code>mix new hello_world --module HelloWorld
+</code></pre>
+
+<p>To generate an app with supervisor and application behaviours:</p>
+
+<pre><code>mix new hello_world --sup
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/new.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(argv)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/new.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Run.html b/docs/master/Mix.Tasks.Run.html
new file mode 100644
index 000000000..fdbf92396
--- /dev/null
+++ b/docs/master/Mix.Tasks.Run.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Run</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Run
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Run the given expression in the application context.</p>
+
+<p>Before running the code, it invokes the app.start task
+which defaults to compile and load your project.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--require</code>, <code>-r</code> - Requires pattern before running the command</li>
+<li><code>--parallel-require</code>, <code>-pr</code> - Requires pattern in parallel</li>
+<li><code>--no-halt</code> - Does not halt the system after running the command</li>
+<li><code>--no-compile</code> - Do not compile even if files require compilation;</li>
+<li><code>--no-start</code> - Do not start applications after compilation;</li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>mix run Hello.world
+mix run &quot;Some.function with_args&quot;
+</code></pre>
+
+<p>Command line options given to the <code>elixir</code> executable can be passed as:</p>
+
+<pre><code>elixir --sname hello -S mix run &quot;My.code&quot;
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/run.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/run.ex#L30" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Tasks.Test.html b/docs/master/Mix.Tasks.Test.html
new file mode 100644
index 000000000..b591fe753
--- /dev/null
+++ b/docs/master/Mix.Tasks.Test.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Test</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Test
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Run the tests for a project.</p>
+
+<p>This task will preload the <code>test/test_helper.exs</code> which
+should do all testing setup and then require all files
+that matches the given <code>test_pattern</code> in parallel.</p>
+
+<p>Before running tests, it invokes the prepare task
+which defaults to compile and load your project.</p>
+
+<p>A list of files can be given after the task name in
+order to select the files to compile.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--cover</code> - the directory to include coverage results;</li>
+<li><code>--force</code> - forces compilation regardless of module times;</li>
+<li><code>--quick</code>, <code>-q</code> - only compile files that changed;</li>
+<li><code>--no-compile</code> - do not compile even if files require compilation;</li>
+<li><code>--no-start</code> - do not start applications after compilation;</li>
+</ul>
+
+<h2>Configuration</h2>
+
+<ul>
+<li><p><code>:test_paths</code> - path containing tests.
+Defaults to <code>[&quot;test&quot;]</code>.</p></li>
+<li><p><code>:test_pattern</code> - a pattern to load test files.
+Defaults to <code>*_test.exs</code>.</p></li>
+<li><p><code>:test_helper</code> - a file that sets up whatever is necessary
+for testing. Defaults to <code>test/test_helper.exs</code>.</p></li>
+<li><p><code>:test_coverage</code> - the directory to include test coverage results.
+Defaults to nil.</p></li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/test.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/test.ex#L43" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.Utils.html b/docs/master/Mix.Utils.html
new file mode 100644
index 000000000..ed46b00d5
--- /dev/null
+++ b/docs/master/Mix.Utils.html
@@ -0,0 +1,351 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Utils</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Utils
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Utilities used throughout Mix and tasks.</p>
+
+<h2>Conversions</h2>
+
+<p>This module handles two types of conversions:</p>
+
+<ul>
+<li><p>From command names to module names, i.e. how the command
+<code>deps.get</code> translates to <code>Deps.Get</code> and vice-versa;</p></li>
+<li><p>From underscore to camelize, i.e. how the file path
+<code>my_project</code> translates to <code>MyProject</code>;</p></li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#camelize/1">camelize/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#command_to_module/2">command_to_module/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#command_to_module_name/1">command_to_module_name/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#config_merge/2">config_merge/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#extract_files/2">extract_files/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#extract_stale/2">extract_stale/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#manifest/2">manifest/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#mix_home/0">mix_home/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#mix_path/0">mix_path/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#module_name_to_command/2">module_name_to_command/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#read_path/1">read_path/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#relative_to_cwd/1">relative_to_cwd/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#source/1">source/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#stale?/2">stale?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#underscore/1">underscore/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="camelize/1">
+    <strong>camelize(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Converts the given string to camelize format.</p>
+
+<h2>Examples</h2>
+
+<pre><code>Mix.Utils.camelize &quot;foo_bar&quot; #=&gt; &quot;FooBar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L233" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="command_to_module/2">
+    <strong>command_to_module(command, at // Elixir)</strong>
+  </p>
+  <div class="docstring"><p>Takes a <code>command</code> name and try to load a module
+with the command name converted to a module name
+in the given <code>at</code> scope.</p>
+
+<p>Returns <code>{ :module, module }</code> in case a module
+exists and is loaded, <code>{ :error, reason }</code> otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>Mix.Utils.command_to_module(&quot;compile&quot;, Mix.Tasks)
+#=&gt; { :module, Mix.Tasks.Compile }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L68" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="command_to_module_name/1">
+    <strong>command_to_module_name(s)</strong>
+  </p>
+  <div class="docstring"><p>Takes a command and converts it to a module name format.</p>
+
+<h2>Examples</h2>
+
+<pre><code>command_to_module_name(&quot;compile.elixir&quot;)
+#=&gt; &quot;Compile.Elixir&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L310" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="config_merge/2">
+    <strong>config_merge(old, new)</strong>
+  </p>
+  <div class="docstring"><p>Merges two configs recursively, merging keyword lists
+and concatenating normal lists.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L155" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="extract_files/2">
+    <strong>extract_files(paths, exts_or_pattern)</strong>
+  </p>
+  <div class="docstring"><p>Extract files from a list of paths.</p>
+
+<p>In case any of the paths is a directory, the directory is looped
+recursively searching for the given extensions or the given pattern.
+When looking up directories, files starting with &quot;.&quot; are ignored.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L133" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="extract_stale/2">
+    <strong>extract_stale(sources, targets)</strong>
+  </p>
+  <div class="docstring"><p>Extract all stale sources compared to the given targets.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L84" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="manifest/2">
+    <strong>manifest(file, fun)</strong>
+  </p>
+  <div class="docstring"><p>Generates a manifest containing all files generated
+during a given compilation step. It receives the manifest
+file name and a function to execute. The result of the
+function is compared to the manifest in order do detect
+the files removed from the manifest file.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L115" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="mix_home/0">
+    <strong>mix_home()</strong>
+  </p>
+  <div class="docstring"><p>Gets the mix home. It defaults to <code>~/.mix</code> unless the
+MIX_HOME environment variable is set.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L21" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="mix_path/0">
+    <strong>mix_path()</strong>
+  </p>
+  <div class="docstring"><p>Gets all extra paths defined in the environment variable
+MIX<em>PATH. MIX</em>PATH may contain multiple paths. If on windows,
+those paths should be separated by <code>;</code>, if on unix systems,
+use <code>:</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L31" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="module_name_to_command/2">
+    <strong>module_name_to_command(module, nesting // 0)</strong>
+  </p>
+  <div class="docstring"><p>Takes a module and converts it to a command. The nesting
+argument can be given in order to remove the nesting of
+module.</p>
+
+<h2>Examples</h2>
+
+<pre><code>module_name_to_command(Mix.Tasks.Compile, 2)
+#=&gt; &quot;compile&quot;
+
+module_name_to_command(&quot;Mix.Tasks.Compile.Elixir&quot;, 2)
+#=&gt; &quot;compile.elixir&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L290" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="read_path/1">
+    <strong>read_path(path)</strong>
+  </p>
+  <div class="docstring"><p>Opens and reads content from either a URL or a local filesystem path.
+Used by local.install and local.rebar.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L332" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="relative_to_cwd/1">
+    <strong>relative_to_cwd(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns the given path string relative to the current
+working directory.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L269" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="source/1">
+    <strong>source(module)</strong>
+  </p>
+  <div class="docstring"><p>Gets the source location of a module as a binary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="stale?/2">
+    <strong>stale?(sources, targets)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if any of the sources are stale
+compared to the given target.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L77" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="underscore/1">
+    <strong>underscore(atom)</strong>
+  </p>
+  <div class="docstring"><p>Converts the given atom or binary to underscore format.</p>
+
+<p>If an atom is given, it is assumed to be an Elixir module,
+so it is converted to a binary and then processed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>Mix.Utils.underscore &quot;FooBar&quot;  #=&gt; &quot;foo_bar&quot;
+Mix.Utils.underscore &quot;Foo.Bar&quot; #=&gt; &quot;foo/bar&quot;
+Mix.Utils.underscore Foo.Bar   #=&gt; &quot;foo/bar&quot;
+</code></pre>
+
+<p>In general, underscore can be thought as the reverse of
+camelize, however, in some cases formatting may be lost:</p>
+
+<pre><code>Mix.Utils.underscore &quot;SAPExample&quot;  #=&gt; &quot;sap_example&quot;
+Mix.Utils.camelize   &quot;sap_example&quot; #=&gt; &quot;SapExample&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L192" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Mix.html b/docs/master/Mix.html
new file mode 100644
index 000000000..47cc98b28
--- /dev/null
+++ b/docs/master/Mix.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Mix is a build tool that provides tasks for creating, compiling, testing
+(and soon deploying) Elixir projects. Mix is inspired by the Leiningen
+build tool for Clojure and was written by one of its contributors.</p>
+
+<p>This module works as a facade for accessing the most common functionality
+in Elixir, as the shell and the current project configuration.</p>
+
+<p>For getting started with Elixir, checkout out the guide available in
+<a href="http://elixir-lang.org">Elixir&#39;s website</a>.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#env/0">env/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#env/1">env/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#loadpaths/0">loadpaths/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#project/0">project/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#shell/0">shell/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#shell/1">shell/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="env/0">
+    <strong>env()</strong>
+  </p>
+  <div class="docstring"><p>Returns the mix environment.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix.ex#L34" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="env/1">
+    <strong>env(env)</strong>
+  </p>
+  <div class="docstring"><p>Changes the current mix env. Project configuration loaded
+per environment is not going to be reloaded.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix.ex#L42" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="loadpaths/0">
+    <strong>loadpaths()</strong>
+  </p>
+  <div class="docstring"><p>Starts mix and loads the project and dependencies into
+one step. Useful when invoking mix from an external tool.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix.ex#L58" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="project/0">
+    <strong>project()</strong>
+  </p>
+  <div class="docstring"><p>Retrieves the current project configuration. If there
+isn&#39;t a project defined, this function will simply
+return an empty keyword list. This allows many mix
+tasks to work without a need for an underlying project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix.ex#L88" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="shell/0">
+    <strong>shell()</strong>
+  </p>
+  <div class="docstring"><p>The shell is a wrapper for doing IO.</p>
+
+<p>It contains conveniences for asking the user information,
+printing status and so forth. The fact it is also swappable
+allow developers to use a test shell, that simply sends the
+messages to the current process.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix.ex#L71" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="shell/1">
+    <strong>shell(shell)</strong>
+  </p>
+  <div class="docstring"><p>Sets the current shell.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix.ex#L78" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Module.html b/docs/master/Module.html
new file mode 100644
index 000000000..5dea0302b
--- /dev/null
+++ b/docs/master/Module.html
@@ -0,0 +1,572 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Module</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Module
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module provides many functions to deal with modules during
+compilation time. It allows a developer to dynamically attach
+documentation, add, delete and register attributes and so forth.</p>
+
+<p>After the module is compiled, using many of the functions in
+this module will raise errors, since it is out of their purpose
+to inspect runtime data. Most of the runtime data can be inspected
+via the <code>__info__(attr)</code> function attached to each compiled module.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#add_doc/6">add_doc/6</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#concat/1">concat/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#concat/2">concat/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#create/3">create/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defines?/2">defines?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defines?/3">defines?/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#definitions_in/1">definitions_in/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#definitions_in/2">definitions_in/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete_attribute/2">delete_attribute/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#eval_quoted/4">eval_quoted/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_attribute/2">get_attribute/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#make_overridable/2">make_overridable/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#open?/1">open?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#overridable?/2">overridable?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_attribute/3">put_attribute/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#register_attribute/3">register_attribute/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#safe_concat/1">safe_concat/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#safe_concat/2">safe_concat/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/1">split/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_binary/1">to_binary/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="add_doc/6">
+    <strong>add_doc(module, line, kind, tuple, signature, doc)</strong>
+  </p>
+  <div class="docstring"><p>Attaches documentation to a given function. It expects
+the module the function belongs to, the line (a non negative
+integer), the kind (def or defmacro), a tuple representing
+the function and its arity and the documentation, which should
+be either a binary or a boolean.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule MyModule do
+  Module.add_doc(__MODULE__, __ENV__.line + 1, :def, { :version, 0 }, [], &quot;Manually added docs&quot;)
+  def version, do: 1
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L202" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="concat/1">
+    <strong>concat(list)</strong>
+  </p>
+  <div class="docstring"><p>Concatenates the list of aliases and returns a new alias.
+It handles char lists, binaries and atoms.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Module.concat([Foo, Bar])
+Foo.Bar
+iex&gt; Module.concat([Foo, &quot;Bar&quot;])
+Foo.Bar
+iex&gt; Module.concat([Foo, &#39;Bar&#39;])
+Foo.Bar
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L127" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="concat/2">
+    <strong>concat(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Concatenates the two given aliases and returns a new alias.
+It handles char lists, binaries and atoms.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Module.concat(Foo, Bar)
+Foo.Bar
+iex&gt; Module.concat(Foo, &quot;Bar&quot;)
+Foo.Bar
+iex&gt; Module.concat(Foo, &#39;Bar&#39;)
+Foo.Bar
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L145" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="create/3">
+    <strong>create(module, quoted, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Creates a module with the given name and given by
+the given quoted expressions. The line where the module
+is defined and its file can be given as options.</p>
+
+<h2>Examples</h2>
+
+<pre><code>contents =
+  quote do
+    def world, do: true
+  end
+
+Module.create(Hello, contents, __ENV__.location)
+
+Hello.world #=&gt; true
+</code></pre>
+
+<h2>Differences with <code>defmodule</code></h2>
+
+<p><code>Module.create</code> works similarly to <code>defmodule</code> and
+return the same results. While one could also use
+<code>defmodule</code> to define modules dynamically, this
+function is preferred when the module body is given
+by a quoted expression.</p>
+
+<p>Another important distinction is that <code>Module.create</code>
+allows you to control the environment variables used
+when defining the module, while <code>defmodule</code> automatically
+shares the same environment.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L102" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defines?/2">
+    <strong>defines?(module, tuple)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the module defines the given function or macro.
+Use <code>defines?/3</code> to assert for an specific type.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Example do
+  Module.defines? __MODULE__, { :version, 0 } #=&gt; false
+  def version, do: 1
+  Module.defines? __MODULE__, { :version, 0 } #=&gt; true
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L297" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defines?/3">
+    <strong>defines?(module, tuple, kind)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the module defines a function or macro with the
+given <code>kind</code>. <code>kind</code> can be either <code>:def</code>, <code>:defp</code>,
+<code>:defmacro</code> or <code>:defmacrop</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Example do
+  Module.defines? __MODULE__, { :version, 0 }, :defp #=&gt; false
+  def version, do: 1
+  Module.defines? __MODULE__, { :version, 0 }, :defp #=&gt; false
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L317" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="definitions_in/1">
+    <strong>definitions_in(module)</strong>
+  </p>
+  <div class="docstring"><p>Return all functions defined in the given module.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Example do
+  def version, do: 1
+  Module.definitions_in __MODULE__ #=&gt; [{:version,1}]
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L337" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="definitions_in/2">
+    <strong>definitions_in(module, kind)</strong>
+  </p>
+  <div class="docstring"><p>Returns all functions defined in te given module according
+to its kind.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Example do
+  def version, do: 1
+  Module.definitions_in __MODULE__, :def  #=&gt; [{:version,1}]
+  Module.definitions_in __MODULE__, :defp #=&gt; []
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L356" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete_attribute/2">
+    <strong>delete_attribute(module, key)</strong>
+  </p>
+  <div class="docstring"><p>Deletes all attributes that matches the given key.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule MyModule do
+  Module.put_attribute __MODULE__, :custom_threshold_for_lib, 10
+  Module.delete_attribute __MODULE__, :custom_threshold_for_lib
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L467" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="eval_quoted/4">
+    <strong>eval_quoted(module, quoted, binding // [], opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Evaluates the quoted contents in the given module&#39;s context.</p>
+
+<p>A list of environment options can also be given as argument.
+See <code>Code.eval_string</code> for more information.</p>
+
+<p>Raises an error if the module was already compiled.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Foo do
+  contents = quote do: (def sum(a, b), do: a + b)
+  Module.eval_quoted __MODULE__, contents
+end
+
+Foo.sum(1, 2) #=&gt; 3
+</code></pre>
+
+<p>For convenience, you can my pass <code>__ENV__</code> as argument and
+all options will be automatically extracted from the environment:</p>
+
+<pre><code>defmodule Foo do
+  contents = quote do: (def sum(a, b), do: a + b)
+  Module.eval_quoted __MODULE__, contents, [], __ENV__
+end
+
+Foo.sum(1, 2) #=&gt; 3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L58" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_attribute/2">
+    <strong>get_attribute(module, key)</strong>
+  </p>
+  <div class="docstring"><p>Gets the given attribute from a module. If the attribute
+was marked as accumulate with <code>Module.register_attribute</code>,
+a list is always returned.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Foo do
+  Module.put_attribute __MODULE__, :value, 1
+  Module.get_attribute __MODULE__, :value #=&gt; 1
+
+  Module.register_attribute __MODULE__, :value, accumulate: true
+  Module.put_attribute __MODULE__, :value, 1
+  Module.get_attribute __MODULE__, :value #=&gt; [1]
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L444" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="make_overridable/2">
+    <strong>make_overridable(module, tuples)</strong>
+  </p>
+  <div class="docstring"><p>Makes the given functions in the given module overridable.
+An overridable function is lazily defined, allowing a
+developer to customize it.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L367" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="open?/1">
+    <strong>open?(module)</strong>
+  </p>
+  <div class="docstring"><p>Check if a module is open, i.e. it is currently being defined
+and its attributes and functions can be modified.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L25" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="overridable?/2">
+    <strong>overridable?(module, tuple)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the given tuple in module is marked as overridable.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L392" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_attribute/3">
+    <strong>put_attribute(module, key, value)</strong>
+  </p>
+  <div class="docstring"><p>Puts an Erlang attribute to the given module with the given
+key and value. The semantics of putting the attribute depends
+if the attribute was registered or not via <code>register_attribute/2</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule MyModule do
+  Module.put_attribute __MODULE__, :custom_threshold_for_lib, 10
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L408" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="register_attribute/3">
+    <strong>register_attribute(module, new, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Registers an attribute. By registering an attribute, a developer
+is able to customize how Elixir will store and accumulate the
+attribute values.</p>
+
+<h2>Options</h2>
+
+<p>When registering an attribute, two options can be given:</p>
+
+<ul>
+<li><p><code>:accumulate</code> - Several calls to the same attribute will
+accumulate instead of override the previous one. New attributes
+are always added to the top of the accumulated list.</p></li>
+<li><p><code>:persist</code> - The attribute will be persisted in the Erlang
+Abstract Format. Useful when interfacing with Erlang libraries.</p></li>
+</ul>
+
+<p>By default, both options are true. Which means that registering
+an attribute without passing any options will revert the attribute
+behavior to exactly the same expected in :</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule MyModule do
+  Module.register_attribute __MODULE__,
+    :custom_threshold_for_lib,
+    accumulate: true, persist: false
+
+  @custom_threshold_for_lib 10
+  @custom_threshold_for_lib 20
+  @custom_threshold_for_lib #=&gt; [20, 10]
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L506" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="safe_concat/1">
+    <strong>safe_concat(list)</strong>
+  </p>
+  <div class="docstring"><p>Concatenates the list aliases and returns a new alias only
+if the alias was already referenced. If the alias was not
+referenced yet, fails with ArgumentError.
+It handles char lists, binaries and atoms.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Module.safe_concat([Unknown, Module])
+** (ArgumentError) argument error
+
+iex&gt; Module.safe_concat([List, Chars])
+List.Chars
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L164" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="safe_concat/2">
+    <strong>safe_concat(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Concatenates the two aliases and returns a new alias only
+if the alias was already referenced. If the alias was not
+referenced yet, fails with ArgumentError.
+It handles char lists, binaries and atoms.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Module.safe_concat(Unknown, Module)
+** (ArgumentError) argument error
+
+iex&gt; Module.safe_concat(List, Chars)
+List.Chars
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L183" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/1">
+    <strong>split(module)</strong>
+  </p>
+  <div class="docstring"><p>Split the given module name into binary parts.</p>
+
+<h2>Examples</h2>
+
+<pre><code>Module.split Very.Long.Module.Name.And.Even.Longer
+#=&gt; [&quot;Very&quot;, &quot;Long&quot;, &quot;Module&quot;, &quot;Name&quot;, &quot;And&quot;, &quot;Even&quot;, &quot;Longer&quot;]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L530" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_binary/1">
+    <strong>to_binary(module)</strong>
+  </p>
+  <div class="docstring"><p>Convert a module name to binary without the Elixir prefix.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L537" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Node.html b/docs/master/Node.html
new file mode 100644
index 000000000..8bb1aaccd
--- /dev/null
+++ b/docs/master/Node.html
@@ -0,0 +1,340 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Node</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Node
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Functions related to Erlang nodes.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#alive?/0">alive?/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#connect/1">connect/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#disconnect/1">disconnect/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_cookie/0">get_cookie/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list/0">list/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list/1">list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#monitor/2">monitor/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#monitor/3">monitor/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#self/0">self/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#set_cookie/2">set_cookie/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/2">spawn/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/3">spawn/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/4">spawn/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/5">spawn/5</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn_link/2">spawn_link/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn_link/4">spawn_link/4</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="alive?/0">
+    <strong>alive?()</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the local node is alive; that is, if the node can be
+part of a distributed system. Otherwise, it returns false.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L21" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="connect/1">
+    <strong>connect(node)</strong>
+  </p>
+  <div class="docstring"><p>Establishes a connection to Node. Returns true if successful,
+false if not, and the atom <code>:ignored</code> if the local node is not
+alive.</p>
+
+<p>See <a href="http://erlang.org/doc/man/net_kernel.html#connect_node-1">http://erlang.org/doc/man/net_kernel.html#connect_node-1</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L90" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="disconnect/1">
+    <strong>disconnect(node)</strong>
+  </p>
+  <div class="docstring"><p>Forces the disconnection of a node. This will appear to the <code>node</code> as if
+the local node has crashed. This BIF is mainly used in the Erlang network
+authentication protocols. Returns true if disconnection succeeds, otherwise
+false. If the local node is not alive, the function returns ignored.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#disconnect_node-1">http://www.erlang.org/doc/man/erlang.html#disconnect_node-1</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L78" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_cookie/0">
+    <strong>get_cookie()</strong>
+  </p>
+  <div class="docstring"><p>Returns the magic cookie of the local node, if the node is alive;
+otherwise <code>:nocookie</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L183" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list/0">
+    <strong>list()</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of all visible nodes in the system, excluding
+the local node. Same as list(visible).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L30" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list/1">
+    <strong>list(args)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of nodes according to argument given. The result
+returned when the argument is a list, is the list of nodes
+satisfying the disjunction(s) of the list elements.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#nodes-1">http://www.erlang.org/doc/man/erlang.html#nodes-1</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L43" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="monitor/2">
+    <strong>monitor(node, flag)</strong>
+  </p>
+  <div class="docstring"><p>Monitors the status of the node. If flag is true, monitoring is
+turned on. If flag is false, monitoring is turned off.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#monitor_node-2">http://www.erlang.org/doc/man/erlang.html#monitor_node-2</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L54" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="monitor/3">
+    <strong>monitor(node, flag, options)</strong>
+  </p>
+  <div class="docstring"><p>Behaves as monitor<em>node/2 except that it allows an extra
+option to be given, namely :allow</em>passive_connect.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#monitor_node-3">http://www.erlang.org/doc/man/erlang.html#monitor_node-3</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L65" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="self/0">
+    <strong>self()</strong>
+  </p>
+  <div class="docstring"><p>Returns the current node. It returns the same as the built-in node().</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L12" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="set_cookie/2">
+    <strong>set_cookie(node // Node.self(), cookie)</strong>
+  </p>
+  <div class="docstring"><p>Sets the magic cookie of <code>node</code> to the atom <code>cookie</code>. The default node
+is <code>Node.self</code>, the local node. If node is the local node, the function also
+sets the cookie of all other unknown nodes to <code>cookie</code>.</p>
+
+<p>This function will raise <code>FunctionClauseError</code> if the given node is not alive.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L175" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/2">
+    <strong>spawn(node, fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of <code>fun</code>
+on <code>node</code>. If <code>node</code> does not exist, a useless pid is returned.</p>
+
+<p>Check <a href="http://www.erlang.org/doc/man/erlang.html#spawn-2">http://www.erlang.org/doc/man/erlang.html#spawn-2</a> for
+the list of available options.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L102" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/3">
+    <strong>spawn(node, fun, opts)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of <code>fun</code>
+on <code>node</code>. If <code>node</code> does not exist, a useless pid is returned.</p>
+
+<p>Check <a href="http://www.erlang.org/doc/man/erlang.html#spawn_opt-3">http://www.erlang.org/doc/man/erlang.html#spawn_opt-3</a> for
+the list of available options.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L114" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/4">
+    <strong>spawn(node, module, fun, args)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of
+<code>module.function(args)</code> on <code>node</code>. If <code>node</code> does not exists,
+a useless pid is returned.</p>
+
+<p>Check <a href="http://www.erlang.org/doc/man/erlang.html#spawn-4">http://www.erlang.org/doc/man/erlang.html#spawn-4</a> for
+the list of available options.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L127" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/5">
+    <strong>spawn(node, module, fun, args, opts)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of
+<code>module.function(args)</code> on <code>node</code>. If <code>node</code> does not exists,
+a useless pid is returned.</p>
+
+<p>Check <a href="http://www.erlang.org/doc/man/erlang.html#spawn_opt-5">http://www.erlang.org/doc/man/erlang.html#spawn_opt-5</a> for
+the list of available options.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L140" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn_link/2">
+    <strong>spawn_link(node, fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of <code>fun</code>
+on <code>node</code>. A link is created between the calling process and the
+new process, atomically. If <code>node</code> does not exist, a useless pid is returned
+(and due to the link, an exit signal with exit reason :noconnection will be
+received).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L152" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn_link/4">
+    <strong>spawn_link(node, module, fun, args)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of
+<code>module.function(args)</code> on <code>node</code>. A link is created between the calling
+process and the new process, atomically. If <code>node</code> does not exist, a useless
+pid is returned (and due to the link, an exit signal with exit reason
+:noconnection will be received).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L164" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/OptionParser.html b/docs/master/OptionParser.html
new file mode 100644
index 000000000..df2a1db42
--- /dev/null
+++ b/docs/master/OptionParser.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>OptionParser</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        OptionParser
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/option_parser.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#parse/2">parse/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse_head/2">parse_head/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="parse/2">
+    <strong>parse(argv, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Parses the argv and returns one tuple with parsed options
+and the arguments.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; OptionParser.parse([&quot;--debug&quot;])
+{ [debug: true], [] }
+
+iex&gt; OptionParser.parse([&quot;--source&quot;, &quot;lib&quot;])
+{ [source: &quot;lib&quot;], [] }
+
+iex&gt; OptionParser.parse([&quot;--source&quot;, &quot;lib&quot;, &quot;test/enum_test.exs&quot;, &quot;--verbose&quot;])
+{ [source: &quot;lib&quot;, verbose: true], [&quot;test/enum_test.exs&quot;] }
+</code></pre>
+
+<h2>Aliases</h2>
+
+<p>A set of aliases can be given as second argument:</p>
+
+<pre><code>iex&gt; OptionParser.parse([&quot;-d&quot;], aliases: [d: :debug])
+{ [debug: true], [] }
+</code></pre>
+
+<h2>Switches</h2>
+
+<p>Extra information about switches can be given as argument too.
+This is useful in order to say a switch must behave as a boolean
+or if duplicated switches should be kept, overriden or accumulated.</p>
+
+<p>The following types are supported:</p>
+
+<ul>
+<li><code>:boolean</code> - Mark the given switch as boolean. Boolean switches
+           never consumes the following value unless it is
+           true or false;</li>
+</ul>
+
+<p>The following extra options are supported:</p>
+
+<ul>
+<li><code>:keep</code> - Keep duplicated items in the list instead of overriding;</li>
+</ul>
+
+<p>Examples:</p>
+
+<pre><code>iex&gt; OptionParser.parse([&quot;--unlock&quot;, &quot;path/to/file&quot;], switches: [unlock: :boolean])
+{ [unlock: true], [&quot;path/to/file&quot;] }
+
+iex&gt; OptionParser.parse([&quot;--unlock&quot;, &quot;false&quot;, &quot;path/to/file&quot;], switches: [unlock: :boolean])
+{ [unlock: false], [&quot;path/to/file&quot;] }
+</code></pre>
+
+<h2>Negation switches</h2>
+
+<p>Any switches starting with <code>--no-</code> are always considered to be
+booleans and never parse the next value:</p>
+
+<pre><code>iex&gt; OptionParser.parse([&quot;--no-op&quot;, &quot;path/to/file&quot;])
+{ [no_op: true], [&quot;path/to/file&quot;] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/option_parser.ex#L57" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse_head/2">
+    <strong>parse_head(argv, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Similar to parse but only parses the head of the argv.
+I.e. as soon as it finds a non switch, it stops parsing.</p>
+
+<p>Check <code>parse/2</code> for more info.</p>
+
+<h2>Example</h2>
+
+<pre><code>iex&gt; OptionParser.parse_head([&quot;--source&quot;, &quot;lib&quot;, &quot;test/enum_test.exs&quot;, &quot;--verbose&quot;])
+{ [source: &quot;lib&quot;], [&quot;test/enum_test.exs&quot;, &quot;--verbose&quot;] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/option_parser.ex#L73" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Path.html b/docs/master/Path.html
new file mode 100644
index 000000000..1d78855fa
--- /dev/null
+++ b/docs/master/Path.html
@@ -0,0 +1,535 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Path</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Path
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module provides conveniences for manipulating or
+retrieving file system paths.</p>
+
+<p>The functions in this module may receive a char list or
+a binary as argument and will return a value of the same
+type.</p>
+
+<p>The majority of the functions in this module do not
+interact with the file system, except for a few functions
+that require it (like <code>Path.wildcard</code> and <code>Path.expand</code>).</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#absname/1">absname/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#absname/2">absname/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#basename/1">basename/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#basename/2">basename/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#dirname/1">dirname/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#expand/1">expand/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#expand/2">expand/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#extname/1">extname/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#join/1">join/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#join/2">join/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#relative/1">relative/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#relative_to/2">relative_to/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rootname/1">rootname/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rootname/2">rootname/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/1">split/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#type/1">type/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#wildcard/1">wildcard/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="absname/1">
+    <strong>absname(path)</strong>
+  </p>
+  <div class="docstring"><p>Converts the given path to an absolute one. Differently from
+<code>Path.expand/1</code>, no attempt is made to resolve <code>..</code>, <code>.</code> or <code>~</code>.</p>
+
+<h2>Unix examples</h2>
+
+<pre><code>Path.absname(&quot;foo&quot;)
+#=&gt; &quot;/usr/local/foo&quot;
+
+Path.absname(&quot;../x&quot;)
+#=&gt; &quot;/usr/local/../x&quot;
+</code></pre>
+
+<h2>Windows</h2>
+
+<pre><code>Path.absname(&quot;foo&quot;).
+&quot;D:/usr/local/foo&quot;
+Path.absname(&quot;../x&quot;).
+&quot;D:/usr/local/../x&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L40" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="absname/2">
+    <strong>absname(path, relative_to)</strong>
+  </p>
+  <div class="docstring"><p>Builds a path from <code>relative_to</code> to <code>path</code>. If <code>path</code> is already
+an absolute path, <code>relative_to</code> is ignored. See also <code>Path.relative/2</code>.</p>
+
+<p>Differently from <code>Path.expand/2</code>, no attempt is made to
+resolve <code>..</code>, <code>.</code> or <code>~</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.absname(&quot;foo&quot;, &quot;bar&quot;)
+&quot;bar/foo&quot;
+
+iex&gt; Path.absname(&quot;../x&quot;, &quot;bar&quot;)
+&quot;bar/../x&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L60" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="basename/1">
+    <strong>basename(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns the last component of the path or the path
+itself if it does not contain any directory separators.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.basename(&quot;foo&quot;)
+&quot;foo&quot;
+
+iex&gt; Path.basename(&quot;foo/bar&quot;)
+&quot;bar&quot;
+
+iex&gt; Path.basename(&quot;/&quot;)
+&quot;&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L255" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="basename/2">
+    <strong>basename(path, extension)</strong>
+  </p>
+  <div class="docstring"><p>Returns the last component of <code>path</code> with the <code>extension</code>
+stripped. This function should be used to remove a specific
+extension which may, or may not, be there.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.basename(&quot;~/foo/bar.ex&quot;, &quot;.ex&quot;)
+&quot;bar&quot;
+iex&gt; Path.basename(&quot;~/foo/bar.exs&quot;, &quot;.ex&quot;)
+&quot;bar.exs&quot;
+iex&gt; Path.basename(&quot;~/foo/bar.old.ex&quot;, &quot;.ex&quot;)
+&quot;bar.old&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L274" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="dirname/1">
+    <strong>dirname(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns the directory component of <code>path</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>Path.dirname(&quot;/foo/bar.ex&quot;)
+#=&gt; &quot;/foo&quot;
+Path.dirname(&quot;/foo/bar/baz.ex&quot;)
+#=&gt; &quot;/foo/bar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L289" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="expand/1">
+    <strong>expand(path)</strong>
+  </p>
+  <div class="docstring"><p>Converts the path to an absolute one and expands
+any <code>.</code> and <code>..</code> characters and a leading <code>~</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.expand(&quot;/foo/bar/../bar&quot;)
+&quot;/foo/bar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L74" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="expand/2">
+    <strong>expand(path, relative_to)</strong>
+  </p>
+  <div class="docstring"><p>Expands the path relative to the path given as the second argument
+expanding any <code>.</code> and <code>..</code> characters. If the path is already an
+absolute path, <code>relative_to</code> is ignored.</p>
+
+<p>Note, that this function treats <code>path</code> with leading <code>~</code> as
+an absolute one.</p>
+
+<p>The second argument is first expanded to an absolute path.</p>
+
+<h2>Examples</h2>
+
+<pre><code># Assuming that the absolute path to baz is /quux/baz
+Path.expand(&quot;foo/bar/../bar&quot;, &quot;baz&quot;)
+#=&gt; &quot;/quux/baz/foo/bar&quot;
+
+iex&gt; Path.expand(&quot;foo/bar/../bar&quot;, &quot;/baz&quot;)
+&quot;/baz/foo/bar&quot;
+iex&gt; Path.expand(&quot;/foo/bar/../bar&quot;, &quot;/baz&quot;)
+&quot;/foo/bar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L100" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="extname/1">
+    <strong>extname(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns the extension of the last component of <code>path</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.extname(&quot;foo.erl&quot;)
+&quot;.erl&quot;
+iex&gt; Path.extname(&quot;~/foo/bar&quot;)
+&quot;&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L304" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="join/1">
+    <strong>join(list1)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string with one or more path components joined by the path separator.
+This function should be used to convert a list of strings to a path.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.join([&quot;~&quot;, &quot;foo&quot;])
+&quot;~/foo&quot;
+iex&gt; Path.join([&quot;foo&quot;])
+&quot;foo&quot;
+iex&gt; Path.join([&quot;/&quot;, &quot;foo&quot;, &quot;bar&quot;])
+&quot;/foo/bar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L353" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="join/2">
+    <strong>join(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Joins two paths.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.join(&quot;foo&quot;, &quot;bar&quot;)
+&quot;foo/bar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L369" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="relative/1">
+    <strong>relative(name)</strong>
+  </p>
+  <div class="docstring"><p>Forces the path to be a relative path.</p>
+
+<h2>Unix examples</h2>
+
+<pre><code>Path.relative(&quot;/usr/local/bin&quot;)   #=&gt; &quot;usr/local/bin&quot;
+Path.relative(&quot;usr/local/bin&quot;)    #=&gt; &quot;usr/local/bin&quot;
+Path.relative(&quot;../usr/local/bin&quot;) #=&gt; &quot;../usr/local/bin&quot;
+</code></pre>
+
+<h2>Windows examples</h2>
+
+<pre><code>Path.relative(&quot;D:/usr/local/bin&quot;) #=&gt; &quot;usr/local/bin&quot;
+Path.relative(&quot;usr/local/bin&quot;)    #=&gt; &quot;usr/local/bin&quot;
+Path.relative(&quot;D:bar.ex&quot;)         #=&gt; &quot;bar.ex&quot;
+Path.relative(&quot;/bar/foo.ex&quot;)      #=&gt; &quot;bar/foo.ex&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L146" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="relative_to/2">
+    <strong>relative_to(path, from)</strong>
+  </p>
+  <div class="docstring"><p>Returns the given <code>path</code> relative to the given <code>from</code> path.
+In other words, it tries to strip the <code>from</code> prefix from <code>path</code>.</p>
+
+<p>This function does not query the file system, so it assumes
+no symlinks in between the paths.</p>
+
+<p>In case a direct relative path cannot be found, it returns
+the original path.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.relative_to(&quot;/usr/local/foo&quot;, &quot;/usr/local&quot;)
+&quot;foo&quot;
+iex&gt; Path.relative_to(&quot;/usr/local/foo&quot;, &quot;/&quot;)
+&quot;usr/local/foo&quot;
+iex&gt; Path.relative_to(&quot;/usr/local/foo&quot;, &quot;/etc&quot;)
+&quot;/usr/local/foo&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L214" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rootname/1">
+    <strong>rootname(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns the <code>path</code> with the <code>extension</code> stripped.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.rootname(&quot;/foo/bar&quot;)
+&quot;/foo/bar&quot;
+iex&gt; Path.rootname(&quot;/foo/bar.ex&quot;)
+&quot;/foo/bar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L319" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rootname/2">
+    <strong>rootname(path, extension)</strong>
+  </p>
+  <div class="docstring"><p>Returns the <code>path</code> with the <code>extension</code> stripped. This function should be used to
+remove a specific extension which might, or might not, be there.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.rootname(&quot;/foo/bar.erl&quot;, &quot;.erl&quot;)
+&quot;/foo/bar&quot;
+iex&gt; Path.rootname(&quot;/foo/bar.erl&quot;, &quot;.ex&quot;)
+&quot;/foo/bar.erl&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L335" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/1">
+    <strong>split(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list with the path split by the path separator.
+If an empty string is given, returns the root path.</p>
+
+<h2>Examples</h2>
+
+<pre><code> iex&gt; Path.split(&quot;&quot;)
+ [&quot;/&quot;]
+ iex&gt; Path.split(&quot;foo&quot;)
+ [&quot;foo&quot;]
+ iex&gt; Path.split(&quot;/foo/bar&quot;)
+ [&quot;/&quot;, &quot;foo&quot;, &quot;bar&quot;]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L436" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="type/1">
+    <strong>type(name)</strong>
+  </p>
+  <div class="docstring"><p>Returns the path type.</p>
+
+<h2>Unix examples</h2>
+
+<pre><code>Path.type(&quot;/usr/local/bin&quot;)   #=&gt; :absolute
+Path.type(&quot;usr/local/bin&quot;)    #=&gt; :relative
+Path.type(&quot;../usr/local/bin&quot;) #=&gt; :relative
+Path.type(&quot;~/file&quot;)           #=&gt; :relative
+</code></pre>
+
+<h2>Windows examples</h2>
+
+<pre><code>Path.type(&quot;D:/usr/local/bin&quot;) #=&gt; :absolute
+Path.type(&quot;usr/local/bin&quot;)    #=&gt; :relative
+Path.type(&quot;D:bar.ex&quot;)         #=&gt; :volumerelative
+Path.type(&quot;/bar/foo.ex&quot;)      #=&gt; :volumerelative
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L122" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="wildcard/1">
+    <strong>wildcard(glob)</strong>
+  </p>
+  <div class="docstring"><p>Traverses paths according to the given <code>glob</code> expression.</p>
+
+<p>The wildcard looks like an ordinary path, except that certain
+&quot;wildcard characters&quot; are interpreted in a special way. The
+following characters are special:</p>
+
+<ul>
+<li><code>?</code> - Matches one character.</li>
+<li><code>*</code> - Matches any number of characters up to the end of
+    the filename, the next dot, or the next slash.</li>
+<li><code>**</code> - Two adjacent <c>*</c>&#39;s used as a single pattern will
+     match all files and zero or more directories and subdirectories.</li>
+<li><code>[char1,char2,...]</code> - Matches any of the characters listed. Two characters
+                    separated by a hyphen will match a range of characters.</li>
+<li><code>{item1,item2,...}</code> - Matches one of the alternatives.</li>
+</ul>
+
+<p>Other characters represent themselves. Only paths that have
+exactly the same character in the same position will match. Note
+that matching is case-sensitive; i.e. &quot;a&quot; will not match &quot;A&quot;.</p>
+
+<h2>Examples</h2>
+
+<p>Imagine you have a directory called <code>projects</code> with three Elixir projects
+inside of it: <code>elixir</code>, <code>ex_doc</code> and <code>dynamo</code>. You can find all <code>.beam</code> files
+inside the ebin directory of each project as follows:</p>
+
+<pre><code>Path.wildcard(&quot;projects/*/ebin/**/*.beam&quot;)
+</code></pre>
+
+<p>If you want to search for both <code>.beam</code> and <code>.app</code> files, you could do:</p>
+
+<pre><code>Path.wildcard(&quot;projects/*/ebin/**/*.{beam,app}&quot;)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L473" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Port.html b/docs/master/Port.html
new file mode 100644
index 000000000..692618c5a
--- /dev/null
+++ b/docs/master/Port.html
@@ -0,0 +1,190 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Port</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Port
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Functions related to Erlang ports.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#call/3">call/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#close/1">close/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#command/3">command/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#connect/2">connect/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#control/3">control/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#info/1">info/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#info/2">info/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list/0">list/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#open/2">open/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="call/3">
+    <strong>call(port, operation, data)</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#port_call-3">http://www.erlang.org/doc/man/erlang.html#port_call-3</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L44" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="close/1">
+    <strong>close(port)</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#port_close-1">http://www.erlang.org/doc/man/erlang.html#port_close-1</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L16" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="command/3">
+    <strong>command(port, data, options // [])</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#port_command-2">http://www.erlang.org/doc/man/erlang.html#port_command-2</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L23" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="connect/2">
+    <strong>connect(port, pid)</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#port_connect-2">http://www.erlang.org/doc/man/erlang.html#port_connect-2</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L30" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="control/3">
+    <strong>control(port, operation, data)</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#port_control-3">http://www.erlang.org/doc/man/erlang.html#port_control-3</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L37" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="info/1">
+    <strong>info(port)</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#port_info-1">http://www.erlang.org/doc/man/erlang.html#port_info-1</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L51" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="info/2">
+    <strong>info(port, item)</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#port_info-2">http://www.erlang.org/doc/man/erlang.html#port_info-2</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L58" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list/0">
+    <strong>list()</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#ports-0">http://www.erlang.org/doc/man/erlang.html#ports-0</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L65" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="open/2">
+    <strong>open(name, settings)</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#open_port-2">http://www.erlang.org/doc/man/erlang.html#open_port-2</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L9" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Process.html b/docs/master/Process.html
new file mode 100644
index 000000000..c9199afbe
--- /dev/null
+++ b/docs/master/Process.html
@@ -0,0 +1,590 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Process</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Process
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module provides convenience functions around processes and
+the process dictionary. In Erlang, most of these functions are
+auto-imported, but in Elixir they are grouped in a module for
+convenience. Notice that these functions, different from Erlang&#39;s,
+always return nil instead of undefined. You can use their Erlang
+version if you want the undefined value.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#alive?/1">alive?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete/0">delete/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete/1">delete/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#demonitor/2">demonitor/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#exit/2">exit/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#flag/2">flag/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#flag/3">flag/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/0">get/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/2">get/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_keys/1">get_keys/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#group_leader/0">group_leader/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#group_leader/2">group_leader/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#info/1">info/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#info/2">info/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#link/1">link/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list/0">list/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#monitor/1">monitor/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put/2">put/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#register/2">register/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#registered/0">registered/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/1">spawn/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/2">spawn/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/3">spawn/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/4">spawn/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn_link/1">spawn_link/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn_link/3">spawn_link/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn_monitor/1">spawn_monitor/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn_monitor/3">spawn_monitor/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unlink/1">unlink/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unregister/1">unregister/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#whereis/1">whereis/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="alive?/1">
+    <strong>alive?(pid)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the process exists and is alive, that is,
+is not exiting and has not exited. Otherwise, returns false.</p>
+
+<p><code>pid</code> must refer to a process at the local node.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L18" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete/0">
+    <strong>delete()</strong>
+  </p>
+  <div class="docstring"><p>Deletes all items in the dictionary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L64" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete/1">
+    <strong>delete(key)</strong>
+  </p>
+  <div class="docstring"><p>Deletes the given key from the dictionary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L72" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="demonitor/2">
+    <strong>demonitor(monitor_ref, options // [])</strong>
+  </p>
+  <div class="docstring"><p>If monitor_ref is a reference which the calling process
+obtained by calling monitor/1, this monitoring is turned off.
+If the monitoring is already turned off, nothing happens.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#demonitor-2">http://www.erlang.org/doc/man/erlang.html#demonitor-2</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L215" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="exit/2">
+    <strong>exit(pid, reason)</strong>
+  </p>
+  <div class="docstring"><p>Sends an exit signal with the given reason to the pid.</p>
+
+<p>The following behavior apply if reason is any term except <code>:normal</code> or <code>:kill</code>:</p>
+
+<p>1) If pid is not trapping exits, pid itself will exist with the given reason;</p>
+
+<p>2) If pid is trapping exits, the exit signal is transformed into a message
+   {&#39;EXIT&#39;, from, reason} and delivered to the message queue of pid;</p>
+
+<p>3) If reason is the atom <code>:normal</code>, pid will not exit. If it is trapping exits,
+   the exit signal is transformed into a message {&#39;EXIT&#39;, from, :normal} and
+   delivered to its message queue;</p>
+
+<p>4) If reason is the atom <code>:kill</code>, that is if <code>exit(pid, :kill)</code> is called, an
+   untrappable exit signal is sent to pid which will unconditionally exit with
+   exit reason <code>:killed</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>Process.exit(pid, :kill)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L100" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="flag/2">
+    <strong>flag(flag, value)</strong>
+  </p>
+  <div class="docstring"><p>Sets certain flags for the process which calls this function.
+Returns the old value of the flag.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#process_flag-2">http://www.erlang.org/doc/man/erlang.html#process_flag-2</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L325" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="flag/3">
+    <strong>flag(pid, flag, value)</strong>
+  </p>
+  <div class="docstring"><p>Sets certain flags for the process Pid, in the same manner as flag/2.
+Returns the old value of the flag. The allowed values for Flag are
+only a subset of those allowed in flag/2, namely: save_calls.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#process_flag-3">http://www.erlang.org/doc/man/erlang.html#process_flag-3</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L337" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/0">
+    <strong>get()</strong>
+  </p>
+  <div class="docstring"><p>Returns all key-values in the dictionary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L26" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/2">
+    <strong>get(key, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value for the given key.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L35" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_keys/1">
+    <strong>get_keys(value)</strong>
+  </p>
+  <div class="docstring"><p>Returns all keys that have the given <code>value</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L48" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="group_leader/0">
+    <strong>group_leader()</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of the group leader for the process which evaluates the function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L294" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="group_leader/2">
+    <strong>group_leader(leader, pid)</strong>
+  </p>
+  <div class="docstring"><p>Sets the group leader of Pid to GroupLeader. Typically, this is used when a processes
+started from a certain shell should have another group leader than <code>:init</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L303" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="info/1">
+    <strong>info(pid)</strong>
+  </p>
+  <div class="docstring"><p>Returns information about the process identified by pid.
+Use this only for debugging information.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#process_info-1">http://www.erlang.org/doc/man/erlang.html#process_info-1</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L348" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="info/2">
+    <strong>info(pid, spec)</strong>
+  </p>
+  <div class="docstring"><p>Returns information about the process identified by pid
+or undefined if the process is not alive.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#process_info-2">http://www.erlang.org/doc/man/erlang.html#process_info-2</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L359" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="link/1">
+    <strong>link(pid)</strong>
+  </p>
+  <div class="docstring"><p>Creates a link between the calling process and another process
+(or port) <code>pid</code>, if there is not such a link already.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#link-1">http://www.erlang.org/doc/man/erlang.html#link-1</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L241" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list/0">
+    <strong>list()</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of process identifiers corresponding to all the
+processes currently existing on the local node.</p>
+
+<p>Note that a process that is exiting, exists but is not alive, i.e.,
+alive?/1 will return false for a process that is exiting,
+but its process identifier will be part of the result returned.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#processes-0">http://www.erlang.org/doc/man/erlang.html#processes-0</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L230" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="monitor/1">
+    <strong>monitor(item)</strong>
+  </p>
+  <div class="docstring"><p>The calling process starts monitoring the item given.
+It returns the monitor reference.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#monitor-2">http://www.erlang.org/doc/man/erlang.html#monitor-2</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L202" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put/2">
+    <strong>put(key, value)</strong>
+  </p>
+  <div class="docstring"><p>Stores the given key-value in the process dictionary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L56" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="register/2">
+    <strong>register(pid, name)</strong>
+  </p>
+  <div class="docstring"><p>Associates the name with a pid or a port identifier. name, which must
+be an atom, can be used instead of the pid / port identifier in the
+send operator (name &lt;- message).</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#register-2">http://www.erlang.org/doc/man/erlang.html#register-2</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L265" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="registered/0">
+    <strong>registered()</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of names which have been registered using register/2.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L311" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/1">
+    <strong>spawn(fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of <code>fun</code>.
+It behaves exactly the same as <code>Kernel.spawn/1</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L109" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/2">
+    <strong>spawn(fun, opts)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of <code>fun</code>.</p>
+
+<p>It also accepts extra options, for the list of available options
+check <a href="http://www.erlang.org/doc/man/erlang.html#spawn_opt-2">http://www.erlang.org/doc/man/erlang.html#spawn_opt-2</a></p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L126" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/3">
+    <strong>spawn(mod, fun, args)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of
+<code>module.function(args)</code>. The new process created will be placed in the system
+scheduler queue and be run some time later.</p>
+
+<p>It behaves exactly the same as the <code>Kernel.spawn/3</code> function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L138" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/4">
+    <strong>spawn(mod, fun, args, opts)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of
+<code>module.function(args)</code>. The new process created will be placed in the system
+scheduler queue and be run some time later.</p>
+
+<p>It also accepts extra options, for the list of available options
+check <a href="http://www.erlang.org/doc/man/erlang.html#spawn_opt-4">http://www.erlang.org/doc/man/erlang.html#spawn_opt-4</a></p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L152" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn_link/1">
+    <strong>spawn_link(fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of <code>fun</code>.
+A link is created between the calling process and the new
+process, atomically.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L162" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn_link/3">
+    <strong>spawn_link(mod, fun, args)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of
+<code>module.function(args)</code>. A link is created between the calling process
+and the new process, atomically. Otherwise works like spawn/3.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L172" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn_monitor/1">
+    <strong>spawn_monitor(fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of <code>fun</code>
+and reference for a monitor created to the new process.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L181" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn_monitor/3">
+    <strong>spawn_monitor(mod, fun, args)</strong>
+  </p>
+  <div class="docstring"><p>A new process is started by the application of <code>module.function(args)</code>
+and the process is monitored at the same time. Returns the pid and a
+reference for the monitor. Otherwise works like spawn/3.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L191" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unlink/1">
+    <strong>unlink(pid)</strong>
+  </p>
+  <div class="docstring"><p>Removes the link, if there is one, between the calling process and
+the process or port referred to by <code>pid</code>. Returns true and does not
+fail, even if there is no link or <code>id</code> does not exist</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#unlink-1">http://www.erlang.org/doc/man/erlang.html#unlink-1</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L253" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unregister/1">
+    <strong>unregister(name)</strong>
+  </p>
+  <div class="docstring"><p>Removes the registered name, associated with a pid or a port identifier.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#unregister-1">http://www.erlang.org/doc/man/erlang.html#unregister-1</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L275" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="whereis/1">
+    <strong>whereis(name)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid or port identifier with the registered name.
+Returns undefined if the name is not registered.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#whereis-1">http://www.erlang.org/doc/man/erlang.html#whereis-1</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L286" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Protocol.UndefinedError.html b/docs/master/Protocol.UndefinedError.html
new file mode 100644
index 000000000..f6c558f53
--- /dev/null
+++ b/docs/master/Protocol.UndefinedError.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Protocol.UndefinedError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Protocol.UndefinedError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L70" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>protocol:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>structure:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L71" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Range.Iterator.Number.html b/docs/master/Range.Iterator.Number.html
new file mode 100644
index 000000000..9352f45bc
--- /dev/null
+++ b/docs/master/Range.Iterator.Number.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Range.Iterator.Number</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Range.Iterator.Number
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L29" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#count/2">count/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/4">reduce/4</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="count/2">
+    <strong>count(first, arg2)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L55" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/4">
+    <strong>reduce(first, arg2, acc, fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L30" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Range.Iterator.html b/docs/master/Range.Iterator.html
new file mode 100644
index 000000000..af2ab52b8
--- /dev/null
+++ b/docs/master/Range.Iterator.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Range.Iterator</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Range.Iterator
+        
+          <small>protocol</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L7" target="_blank" class="view_source">Source</a>
+
+      
+        <h2 id="implementations">Implementations</h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Range.Iterator.Number.html">Number</a>
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#count/2">count/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/4">reduce/4</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="count/2">
+    <strong>count(first, range)</strong>
+  </p>
+  <div class="docstring"><p>Count how many items are in the range.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L13" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/4">
+    <strong>reduce(first, range, acc, fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L8" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Range.html b/docs/master/Range.html
new file mode 100644
index 000000000..1f9c03e48
--- /dev/null
+++ b/docs/master/Range.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Range</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Range
+        
+          <small>record</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Defines a Range.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>first:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>last:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Record.html b/docs/master/Record.html
new file mode 100644
index 000000000..d94a836f2
--- /dev/null
+++ b/docs/master/Record.html
@@ -0,0 +1,217 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Record</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Record
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Functions to define Elixir records</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/record.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#deffunctions/2">deffunctions/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defmacros/4">defmacros/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defrecord/3">defrecord/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defrecordp/2">defrecordp/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#deftypes/3">deftypes/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#extract/2">extract/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#import/2">import/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="deffunctions/2">
+    <strong>deffunctions(values, env)</strong>
+  </p>
+  <div class="docstring"><p>Defines record functions skipping the module definition.
+This is called directly by <code>defrecord</code>. It expects the record
+values, a set of options and the module environment.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule CustomRecord do
+  Record.deffunctions [:name, :age], __ENV__
+  Record.deftypes [:name, :age], [name: :binary, age: :integer], __ENV__
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/record.ex#L97" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defmacros/4">
+    <strong>defmacros(name, values, env, tag // nil)</strong>
+  </p>
+  <div class="docstring"><p>Defines macros for manipulating records. This is called
+directly by <code>defrecordp</code>. It expects the macro name, the
+record values and the environment.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule CustomRecord do
+  Record.defmacros :user, [:name, :age], __ENV__
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/record.ex#L156" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defrecord/3">
+    <strong>defrecord(name, values, opts)</strong>
+  </p>
+  <div class="docstring"><p>Main entry point for records definition. It defines a module
+with the given <code>name</code> and the fields specified in <code>values</code>.
+This is invoked directly by <code>Kernel.defrecord</code>, so check it
+for more information and documentation.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/record.ex#L25" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defrecordp/2">
+    <strong>defrecordp(name, fields)</strong>
+  </p>
+  <div class="docstring"><p>Main entry point for private records definition. It defines
+a set of macros with the given <code>name</code> and the fields specified
+in <code>values</code>. This is invoked directly by <code>Kernel.defrecordp</code>,
+so check it for more information and documentation.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/record.ex#L78" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="deftypes/3">
+    <strong>deftypes(values, types, env)</strong>
+  </p>
+  <div class="docstring"><p>Defines types and specs for the record.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/record.ex#L125" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="extract/2">
+    <strong>extract(name, opts)</strong>
+  </p>
+  <div class="docstring"><p>Extract record information from an Erlang file and
+return the fields as a list of tuples.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defrecord FileInfo, Record.extract(:file_info, from_lib: &quot;kernel/include/file.hrl&quot;)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/record.ex#L15" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="import/2">
+    <strong>import(module, list2)</strong>
+  </p>
+  <div class="docstring"><p>Import public record definition as a set of private macros (as defined by defrecordp/2)</p>
+
+<h2>Usage</h2>
+
+<p>Record.import Record.Module, as: macro_name</p>
+
+<h2>Example</h2>
+
+<p>defmodule Test do
+     Record.import File.Stat, as: :file_stat</p>
+
+<pre><code> def size(file_stat(size: size)), do: size
+</code></pre>
+
+<p>end</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/record.ex#L66" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Regex.CompileError.html b/docs/master/Regex.CompileError.html
new file mode 100644
index 000000000..f6a1047dc
--- /dev/null
+++ b/docs/master/Regex.CompileError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Regex.CompileError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Regex.CompileError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L49" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "regex could not be compiled"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Regex.html b/docs/master/Regex.html
new file mode 100644
index 000000000..57cfb49fc
--- /dev/null
+++ b/docs/master/Regex.html
@@ -0,0 +1,382 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Regex</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Regex
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Regular expressions for Elixir built on top of the re module
+in the Erlang Standard Library. More information can be found
+on re documentation: <a href="http://www.erlang.org/doc/man/re.html">http://www.erlang.org/doc/man/re.html</a></p>
+
+<p>Regular expressions in Elixir can be created using Regex.compile!
+or using the special form with <code>%r</code>:</p>
+
+<pre><code># A simple regular expressions that matches foo anywhere in the string
+%r/foo/
+
+# A regular expression with case insensitive options and handle unicode chars
+%r/foo/iu
+</code></pre>
+
+<p>The re module provides several options, the one available in Elixir, followed by
+their shortcut in parenthesis, are:</p>
+
+<ul>
+<li>unicode (u) - enable unicode specific patterns like \p</li>
+<li>caseless (i) - add case insensitivity</li>
+<li>dotall (s) - causes dot to match newlines and also set newline to anycrlf.
+The new line setting can be overwritten by setting <code>(*CR)</code> or <code>(*LF)</code> or
+<code>(*CRLF)</code> or <code>(*ANY)</code> according to re documentation</li>
+<li>multiline (m) - causes <code>^</code> and <code>$</code> to mark the beginning and end of each line.
+You need to use <code>\A</code> and <code>\z</code> to match the end or beginning of the string</li>
+<li>extended (x) - whitespace characters are ignored except when escaped and
+allow <code>#</code> to delimit comments</li>
+<li>firstline (f) - forces the unanchored pattern to match before or at the first
+newline, though the matched text may continue over the newline</li>
+<li>ungreedy (r) - invert the &quot;greediness&quot; of the regexp</li>
+<li>groups (g) - compile with info about groups available</li>
+</ul>
+
+<p>The options not available are:</p>
+
+<ul>
+<li>anchored - not available, use <code>^</code> or <code>\A</code> instead</li>
+<li>dollar_endonly - not available, use <code>\z</code> instead</li>
+<li>no<em>auto</em>capture - not available, use <code>?:</code> instead</li>
+<li>newline - not available, use <code>(*CR)</code> or <code>(*LF)</code> or <code>(*CRLF)</code> or <code>(*ANYCRLF)</code>
+or <code>(*ANY)</code> at the beginning of the regexp according to the re documentation</li>
+</ul>
+
+<p>Most of the functions in this module accept either a binary or a char list
+as subject. The result is based on the argument (a binary will return
+a binary, a char list will return a char list).</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#captures/3">captures/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compile/2">compile/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compile!/2">compile!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#groups/1">groups/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#index/2">index/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#match?/2">match?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#opts/1">opts/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#re_pattern/1">re_pattern/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#replace/4">replace/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#run/3">run/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#scan/3">scan/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#source/1">source/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/3">split/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="captures/3">
+    <strong>captures(regex, string, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Returns the given captures as a list of tuples.
+Requires the regex to be compiled with the groups option.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.captures(%r/c(?&lt;foo&gt;d)/g, &quot;abcd&quot;)
+[foo: &quot;d&quot;]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L158" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compile/2">
+    <strong>compile(source, options // &quot;&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Compiles the regular expression according to the given options.</p>
+
+<p>It returns <code>{ :ok, regex }</code> in case of success,
+<code>{ :error, reason }</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L57" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compile!/2">
+    <strong>compile!(source, options // &quot;&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Compiles the regular expression according to the given options.
+Fails with <code>Regex.CompileError</code> if the regex cannot be compiled.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L75" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="groups/1">
+    <strong>groups(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Returns list of named groups in regex.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.groups(%r/(?&lt;foo&gt;foo)/g)
+[:foo]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L213" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="index/2">
+    <strong>index(arg1, string)</strong>
+  </p>
+  <div class="docstring"><p>Runs the regular expression against the given string
+and returns the index (zero indexes) where the first
+match occurs, nil otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.index(%r/c(d)/, &quot;abcd&quot;)
+2
+iex&gt; Regex.index(%r/e/, &quot;abcd&quot;)
+nil
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L95" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="match?/2">
+    <strong>match?(arg1, string)</strong>
+  </p>
+  <div class="docstring"><p>Returns a boolean if there was a match or not.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.match?(%r/foo/, &quot;foo&quot;)
+true
+iex&gt; Regex.match?(%r/foo/, &quot;bar&quot;)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L113" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="opts/1">
+    <strong>opts(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Returns the regex options as a string.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.opts(%r(foo)m)
+&quot;m&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L200" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="re_pattern/1">
+    <strong>re_pattern(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Returns the underlying <code>re_pattern</code> in the regular expression.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L174" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="replace/4">
+    <strong>replace(arg1, string, replacement, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Receives a regex, a binary and a replacement and returns a new
+binary where the all matches are replaced by replacement.</p>
+
+<p>Inside the replacement, you can either give &quot;&amp;&quot; to access the
+whole regular expression or \N, where N is in integer to access
+a specific matching parens. You can also set global to false
+if you want to replace just the first occurrence.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.replace(%r/d/, &quot;abc&quot;, &quot;d&quot;)
+&quot;abc&quot;
+iex&gt; Regex.replace(%r/b/, &quot;abc&quot;, &quot;d&quot;)
+&quot;adc&quot;
+iex&gt; Regex.replace(%r/b/, &quot;abc&quot;, &quot;[&amp;]&quot;)
+&quot;a[b]c&quot;
+iex&gt; Regex.replace(%r/b/, &quot;abc&quot;, &quot;[\\&amp;]&quot;)
+&quot;a[&amp;]c&quot;
+iex&gt; Regex.replace(%r/(b)/, &quot;abc&quot;, &quot;[\\1]&quot;)
+&quot;a[b]c&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L287" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="run/3">
+    <strong>run(regex, string, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Runs the regular expression against the given string.
+It returns a list with all matches, nil if no match ocurred, or []
+if it matched, /g was specified, but nothing was captured.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.run(%r/c(d)/, &quot;abcd&quot;)
+[&quot;cd&quot;, &quot;d&quot;]
+iex&gt; Regex.run(%r/e/, &quot;abcd&quot;)
+nil
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L130" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="scan/3">
+    <strong>scan(regex, string, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Same as run, but scans the target several times collecting all matches of
+the regular expression. A list is returned with each match. If the item in
+the list is a binary, it means there were no captures. If the item is another
+list, each element in this secondary list is a capture.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.scan(%r/c(d|e)/, &quot;abcd abce&quot;)
+[[&quot;d&quot;], [&quot;e&quot;]]
+iex&gt; Regex.scan(%r/c(?:d|e)/, &quot;abcd abce&quot;)
+[&quot;cd&quot;, &quot;ce&quot;]
+iex&gt; Regex.scan(%r/e/, &quot;abcd&quot;)
+[]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L233" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="source/1">
+    <strong>source(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Returns the regex source as binary.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.source(%r(foo))
+&quot;foo&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L187" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/3">
+    <strong>split(regex, string, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Split the given target in the number of parts specified.
+If no ammount of parts is given, it defaults to :infinity.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L249" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/RuntimeError.html b/docs/master/RuntimeError.html
new file mode 100644
index 000000000..c3e2dffd2
--- /dev/null
+++ b/docs/master/RuntimeError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>RuntimeError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        RuntimeError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "runtime error"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/String.html b/docs/master/String.html
new file mode 100644
index 000000000..56e7b85a8
--- /dev/null
+++ b/docs/master/String.html
@@ -0,0 +1,933 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>String</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        String
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A String in Elixir is a UTF-8 encoded binary.</p>
+
+<h2>String and binary operations</h2>
+
+<p>The functions in this module act according to the
+Unicode Standard, version 6.2.0. For example,
+<code>titlecase</code>, <code>downcase</code>, <code>strip</code> are provided by this
+module.</p>
+
+<p>Besides this module, Elixir provides more low-level
+operations that works directly with binaries. Some
+of those can be found in the <code>Kernel</code> module, as:</p>
+
+<ul>
+<li><code>binary_part/2</code> and <code>binary_part/3</code> - retrieves part of the binary</li>
+<li><code>bit_size/1</code> and <code>byte_size/1</code> - size related functions</li>
+<li><code>is_bitstring/1</code> and <code>is_binary/1</code> - type checking function</li>
+<li>Plus a bunch of conversion functions, like <code>binary_to_atom/2</code>,
+<code>binary_to_integer/2</code>, <code>binary_to_term/1</code> and their opposite
+like <code>integer_to_binary/2</code></li>
+</ul>
+
+<p>Finally, <a href="http://erlang.org/doc/man/binary.html">the <code>:binary</code> module</a>
+provides a couple other functions that works on the byte level.</p>
+
+<h2>Codepoints and graphemes</h2>
+
+<p>As per the Unicode Standard, a codepoint is an Unicode
+Character, which may be represented by one or more bytes.
+For example, the character &quot;é&quot; is represented with two
+bytes:</p>
+
+<pre><code>iex&gt; string = &quot;é&quot;
+...&gt; byte_size(string)
+2
+</code></pre>
+
+<p>Furthermore, this module also presents the concept of
+graphemes, which are multiple characters that may be
+&quot;perceived as a single character&quot; by readers. For example,
+the same &quot;é&quot; character written above could be represented
+by the letter &quot;e&quot; followed by the accent ́:</p>
+
+<pre><code>iex&gt; string = &quot;\x{0065}\x{0301}&quot;
+...&gt; byte_size(string)
+3
+</code></pre>
+
+<p>Although the example above is made of two characters, it is
+perceived by users as one.</p>
+
+<p>Graphemes can also be two characters that are interpreted
+as one by some languages. For example, some languages may
+consider &quot;ch&quot; as a grapheme. However, since this information
+depends on the locale, it is not taken into account by this
+module.</p>
+
+<p>In general, the functions in this module rely on the Unicode
+Standard, but does not contain any of the locale specific
+behaviour.</p>
+
+<h2>Integer codepoints</h2>
+
+<p>Although codepoints could be represented as integers, this
+module represents all codepoints as strings. For example:</p>
+
+<pre><code>iex&gt; String.codepoints(&quot;josé&quot;)
+[&quot;j&quot;, &quot;o&quot;, &quot;s&quot;, &quot;é&quot;]
+</code></pre>
+
+<p>There are a couple of ways to retrieve a character integer
+codepoint. One may use the <code>?</code> special macro:</p>
+
+<pre><code>iex&gt; ?j
+106
+iex&gt; ?é
+233
+</code></pre>
+
+<p>Or also via pattern matching:</p>
+
+<pre><code>iex&gt; &lt;&lt; eacute :: utf8 &gt;&gt; = &quot;é&quot;
+...&gt; eacute
+233
+</code></pre>
+
+<p>As we have seen above, codepoints can be inserted into
+a string by their hexadecimal code:</p>
+
+<pre><code>&quot;jos\x{0065}\x{0301}&quot; #=&gt;
+&quot;josé&quot;
+</code></pre>
+
+<h2>Self-synchronization</h2>
+
+<p>The UTF-8 encoding is self-synchronizing. This means that
+if malformed data (i.e., data that is not possible according
+to the definition of the encoding) is encountered, only one
+codepoint needs to be rejected.</p>
+
+<p>This module relies on this behaviour to ignore such invalid
+characters. For example, <code>String.length</code> is going to return
+a correct result even if an invalid codepoint is fed into it.</p>
+
+<p>In other words, this module expects invalid data to be detected
+when retrieving data from the external source. For example, a
+driver that reads strings from a database will be the one
+responsible to check the validity of the encoding.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#at/2">at/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#capitalize/1">capitalize/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#codepoints/1">codepoints/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#downcase/1">downcase/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#duplicate/2">duplicate/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ends_with?/2">ends_with?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#first/1">first/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#graphemes/1">graphemes/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#last/1">last/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#length/1">length/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#lstrip/1">lstrip/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#lstrip/2">lstrip/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#next_codepoint/1">next_codepoint/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#next_grapheme/1">next_grapheme/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#printable?/1">printable?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#replace/4">replace/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rstrip/1">rstrip/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rstrip/2">rstrip/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#slice/3">slice/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/1">split/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/3">split/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#starts_with?/2">starts_with?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#strip/1">strip/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#strip/2">strip/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_float/1">to_float/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_integer/1">to_integer/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#upcase/1">upcase/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#valid?/1">valid?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#valid_character?/1">valid_character?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#valid_codepoint?/1">valid_codepoint?/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="at/2">
+    <strong>at(string, position)</strong>
+  </p>
+  <div class="docstring"><p>Returns the grapheme in the <code>position</code> of the given utf8 <code>string</code>.
+If <code>position</code> is greater than <code>string</code> length, than it returns <code>nil</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.at(&quot;elixir&quot;, 0)
+&quot;e&quot;
+iex&gt; String.at(&quot;elixir&quot;, 1)
+&quot;l&quot;
+iex&gt; String.at(&quot;elixir&quot;, 10)
+nil
+iex&gt; String.at(&quot;elixir&quot;, -1)
+&quot;r&quot;
+iex&gt; String.at(&quot;elixir&quot;, -10)
+nil
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L651" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="capitalize/1">
+    <strong>capitalize(string)</strong>
+  </p>
+  <div class="docstring"><p>Converts the first character in the given string to
+titlecase and the remaining to downcase.</p>
+
+<p>This relies on the titlecase information provided
+by the Unicode Standard. Note this function makes
+no attempt in capitalizing all words in the string
+(usually known as titlecase).</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.capitalize(&quot;abcd&quot;)
+&quot;Abcd&quot;
+iex&gt; String.capitalize(&quot;ﬁn&quot;)
+&quot;Fin&quot;
+iex&gt; String.capitalize(&quot;josé&quot;)
+&quot;José&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L249" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="codepoints/1">
+    <strong>codepoints(string)</strong>
+  </p>
+  <div class="docstring"><p>Returns all codepoints in the string.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.codepoints(&quot;josé&quot;)
+[&quot;j&quot;, &quot;o&quot;, &quot;s&quot;, &quot;é&quot;]
+iex&gt; String.codepoints(&quot;оптими зации&quot;)
+[&quot;о&quot;,&quot;п&quot;,&quot;т&quot;,&quot;и&quot;,&quot;м&quot;,&quot;и&quot;,&quot; &quot;,&quot;з&quot;,&quot;а&quot;,&quot;ц&quot;,&quot;и&quot;,&quot;и&quot;]
+iex&gt; String.codepoints(&quot;ἅἪῼ&quot;)
+[&quot;ἅ&quot;,&quot;Ἢ&quot;,&quot;ῼ&quot;]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L438" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="downcase/1">
+    <strong>downcase(binary)</strong>
+  </p>
+  <div class="docstring"><p>Convert all characters on the given string to downcase.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.downcase(&quot;ABCD&quot;)
+&quot;abcd&quot;
+iex&gt; String.downcase(&quot;AB 123 XPTO&quot;)
+&quot;ab 123 xpto&quot;
+iex&gt; String.downcase(&quot;JOSÉ&quot;)
+&quot;josé&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L227" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="duplicate/2">
+    <strong>duplicate(subject, n)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary <code>subject</code> duplicated <code>n</code> times.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.duplicate(&quot;abc&quot;, 1)
+&quot;abc&quot;
+iex&gt; String.duplicate(&quot;abc&quot;, 2)
+&quot;abcabc&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L420" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ends_with?/2">
+    <strong>ends_with?(string, suffixes)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>string</code> ends with any of the suffixes given, otherwise
+false. <code>suffixes</code> can be either a single suffix or a list of suffixes.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.ends_with? &quot;language&quot;, &quot;age&quot;
+true
+iex&gt; String.ends_with? &quot;language&quot;, [&quot;youth&quot;, &quot;age&quot;]
+true
+iex&gt; String.ends_with? &quot;language&quot;, [&quot;youth&quot;, &quot;elixir&quot;]
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L838" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="first/1">
+    <strong>first(string)</strong>
+  </p>
+  <div class="docstring"><p>Returns the first grapheme from an utf8 string,
+nil if the string is empty.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.first(&quot;elixir&quot;)
+&quot;e&quot;
+iex&gt; String.first(&quot;եոգլի&quot;)
+&quot;ե&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L579" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="graphemes/1">
+    <strong>graphemes(string)</strong>
+  </p>
+  <div class="docstring"><p>Returns unicode graphemes in the string.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.graphemes(&quot;Ā̀stute&quot;)
+[&quot;Ā̀&quot;,&quot;s&quot;,&quot;t&quot;,&quot;u&quot;,&quot;t&quot;,&quot;e&quot;]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L548" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="last/1">
+    <strong>last(string)</strong>
+  </p>
+  <div class="docstring"><p>Returns the last grapheme from an utf8 string,
+nil if the string is empty.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.last(&quot;elixir&quot;)
+&quot;r&quot;
+iex&gt; String.last(&quot;եոգլի&quot;)
+&quot;ի&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L599" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="length/1">
+    <strong>length(string)</strong>
+  </p>
+  <div class="docstring"><p>Returns the number of unicode graphemes in an utf8 string.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.length(&quot;elixir&quot;)
+6
+iex&gt; String.length(&quot;եոգլի&quot;)
+5
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L621" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="lstrip/1">
+    <strong>lstrip(binary)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string where leading Unicode whitespace
+has been removed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.lstrip(&quot;   abc  &quot;)
+&quot;abc  &quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L313" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="lstrip/2">
+    <strong>lstrip(other, char)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string where leading <code>char</code> have been removed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.lstrip(&quot;_  abc  _&quot;, ?_)
+&quot;  abc  _&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L327" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="next_codepoint/1">
+    <strong>next_codepoint(string)</strong>
+  </p>
+  <div class="docstring"><p>Returns the next codepoint in a String.</p>
+
+<p>The result is a tuple with the codepoint and the
+remaining of the string or <code>:no_codepoint</code> in case
+the string reached its end.</p>
+
+<p>As the other functions in the String module, this
+function does not check for the validity of the codepoint.
+That said, if an invalid codepoint is found, it will
+be returned by this function.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.next_codepoint(&quot;josé&quot;)
+{ &quot;j&quot;, &quot;osé&quot; }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L459" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="next_grapheme/1">
+    <strong>next_grapheme(string)</strong>
+  </p>
+  <div class="docstring"><p>Returns the next grapheme in a String.</p>
+
+<p>The result is a tuple with the grapheme and the
+remaining of the string or <code>:no_grapheme</code> in case
+the String reached its end.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.next_grapheme(&quot;josé&quot;)
+{ &quot;j&quot;, &quot;osé&quot; }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L564" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="printable?/1">
+    <strong>printable?(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Checks if a string is printable considering it is encoded
+as UTF-8. Returns true if so, false otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.printable?(&quot;abc&quot;)
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L121" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="replace/4">
+    <strong>replace(subject, pattern, replacement, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Returns a new binary based on <code>subject</code> by replacing the parts
+matching <code>pattern</code> for <code>replacement</code>. By default, it replaces
+all entries, except if the <code>global</code> option is set to false.</p>
+
+<p>If the replaced part must be used in <code>replacement</code>, then the
+position or the positions where it is to be inserted must be
+specified by using the option <code>insert_replaced</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.replace(&quot;a,b,c&quot;, &quot;,&quot;, &quot;-&quot;)
+&quot;a-b-c&quot;
+iex&gt; String.replace(&quot;a,b,c&quot;, &quot;,&quot;, &quot;-&quot;, global: false)
+&quot;a-b,c&quot;
+iex&gt; String.replace(&quot;a,b,c&quot;, &quot;b&quot;, &quot;[]&quot;, insert_replaced: 1)
+&quot;a,[b],c&quot;
+iex&gt; String.replace(&quot;a,b,c&quot;, &quot;,&quot;, &quot;[]&quot;, insert_replaced: 2)
+&quot;a[],b[],c&quot;
+iex&gt; String.replace(&quot;a,b,c&quot;, &quot;,&quot;, &quot;[]&quot;, insert_replaced: [1,1])
+&quot;a[,,]b[,,]c&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L393" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rstrip/1">
+    <strong>rstrip(binary)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string where trailing Unicode whitespace
+has been removed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.rstrip(&quot;   abc  &quot;)
+&quot;   abc&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L265" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rstrip/2">
+    <strong>rstrip(string, char)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string where trailing <code>char</code> have been removed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.rstrip(&quot;   abc _&quot;, ?_)
+&quot;   abc &quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L278" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="slice/3">
+    <strong>slice(string, start, len)</strong>
+  </p>
+  <div class="docstring"><p>Returns a substring starting at the offset given by the first, and
+a length given by the second.
+If the offset is greater than string length, than it returns nil.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.slice(&quot;elixir&quot;, 1, 3)
+&quot;lix&quot;
+iex&gt; String.slice(&quot;elixir&quot;, 1, 10)
+&quot;lixir&quot;
+iex&gt; String.slice(&quot;elixir&quot;, 10, 3)
+nil
+iex&gt; String.slice(&quot;elixir&quot;, -4, 4)
+&quot;ixir&quot;
+iex&gt; String.slice(&quot;elixir&quot;, -10, 3)
+nil
+iex&gt; String.slice(&quot;a&quot;, 0, 1500)
+&quot;a&quot;
+iex&gt; String.slice(&quot;a&quot;, 1, 1500)
+&quot;&quot;
+iex&gt; String.slice(&quot;a&quot;, 2, 1500)
+nil
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L700" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/1">
+    <strong>split(binary)</strong>
+  </p>
+  <div class="docstring"><p>Splits a string on sub strings at each Unicode whitespace
+occurrence with leading and trailing whitespace ignored.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.split(&quot;foo bar&quot;)
+[&quot;foo&quot;, &quot;bar&quot;]
+iex&gt; String.split(&quot;foo&quot; &lt;&gt; &lt;&lt;194,133&gt;&gt; &lt;&gt; &quot;bar&quot;)
+[&quot;foo&quot;, &quot;bar&quot;]
+iex&gt; String.split(&quot; foo bar &quot;)
+[&quot;foo&quot;, &quot;bar&quot;]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L156" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/3">
+    <strong>split(binary, pattern, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Divides a string into sub strings based on a pattern,
+returning a list of these sub string. The pattern can
+be a string, a list of strings or a regular expression.</p>
+
+<p>The string is split into as many parts as possible by
+default, unless the <code>global</code> option is set to false.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.split(&quot;a,b,c&quot;, &quot;,&quot;)
+[&quot;a&quot;, &quot;b&quot;, &quot;c&quot;]
+iex&gt; String.split(&quot;a,b,c&quot;, &quot;,&quot;, global: false)
+[&quot;a&quot;, &quot;b,c&quot;]
+
+iex&gt; String.split(&quot;1,2 3,4&quot;, [&quot; &quot;, &quot;,&quot;])
+[&quot;1&quot;, &quot;2&quot;, &quot;3&quot;, &quot;4&quot;]
+
+iex&gt; String.split(&quot;a,b,c&quot;, %r{,})
+[&quot;a&quot;, &quot;b&quot;, &quot;c&quot;]
+iex&gt; String.split(&quot;a,b,c&quot;, %r{,}, global: false)
+[&quot;a&quot;, &quot;b,c&quot;]
+iex&gt; String.split(&quot;a,b&quot;, %r{\.})
+[&quot;a,b&quot;]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L186" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="starts_with?/2">
+    <strong>starts_with?(string, prefixes)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>string</code> starts with any of the prefixes given, otherwise
+false. <code>prefixes</code> can be either a single prefix or a list of prefixes.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.starts_with? &quot;elixir&quot;, &quot;eli&quot;
+true
+iex&gt; String.starts_with? &quot;elixir&quot;, [&quot;erlang&quot;, &quot;elixir&quot;]
+true
+iex&gt; String.starts_with? &quot;elixir&quot;, [&quot;erlang&quot;, &quot;ruby&quot;]
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L814" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="strip/1">
+    <strong>strip(string)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string where leading/trailing Unicode whitespace
+has been removed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.strip(&quot;   abc  &quot;)
+&quot;abc&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L347" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="strip/2">
+    <strong>strip(string, char)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string where leading/trailing <code>char</code> have been
+removed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.strip(&quot;a  abc  a&quot;, ?a)
+&quot;  abc  &quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L363" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_float/1">
+    <strong>to_float(string)</strong>
+  </p>
+  <div class="docstring"><p>Converts a string to a float. If successful, returns a
+tuple of form {float, remainder of string}. If unsuccessful,
+returns :error. If given an integer value, will return
+same as to_integer/1.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.to_float(&quot;34&quot;)
+{34.0,&quot;&quot;}
+iex&gt; String.to_float(&quot;34.25&quot;)
+{34.25,&quot;&quot;}
+</code></pre>
+
+<p>iex&gt; String.to<em>float(&quot;56.5xyz&quot;)
+   {56.5,&quot;xyz&quot;}
+    iex&gt; String.to</em>float(&quot;pi&quot;)
+    :error</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L784" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_integer/1">
+    <strong>to_integer(string)</strong>
+  </p>
+  <div class="docstring"><p>Converts a string to an integer. If successful, returns a
+tuple of form {integer, remainder of string}. If unsuccessful,
+returns :error.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.to_integer(&quot;34&quot;)
+{34,&quot;&quot;}
+iex&gt; String.to_integer(&quot;34.5&quot;)
+{34,&quot;.5&quot;}
+iex&gt; String.to_integer(&quot;three&quot;)
+:error
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L756" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="upcase/1">
+    <strong>upcase(binary)</strong>
+  </p>
+  <div class="docstring"><p>Convert all characters on the given string to upcase.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.upcase(&quot;abcd&quot;)
+&quot;ABCD&quot;
+iex&gt; String.upcase(&quot;ab 123 xpto&quot;)
+&quot;AB 123 XPTO&quot;
+iex&gt; String.upcase(&quot;josé&quot;)
+&quot;JOSÉ&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L211" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="valid?/1">
+    <strong>valid?(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Checks whether <code>str</code> contains only valid characters.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.valid?(&quot;a&quot;)
+true
+iex&gt; String.valid?(&quot;ø&quot;)
+true
+iex&gt; String.valid?(&lt;&lt;0xffff :: 16&gt;&gt;)
+false
+iex&gt; String.valid?(&quot;asd&quot; &lt;&gt; &lt;&lt;0xffff :: 16&gt;&gt;)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L485" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="valid_character?/1">
+    <strong>valid_character?(codepoint)</strong>
+  </p>
+  <div class="docstring"><p>Checks whether <code>str</code> is a valid character.</p>
+
+<p>All characters are codepoints, but some codepoints
+are not valid characters. They may be reserved, private,
+or other.</p>
+
+<p>More info at: <a href="http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters#Noncharacters">http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters#Noncharacters</a></p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.valid_character?(&quot;a&quot;)
+true
+iex&gt; String.valid_character?(&quot;ø&quot;)
+true
+iex&gt; String.valid_character?(&quot;\x{ffff}&quot;)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L513" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="valid_codepoint?/1">
+    <strong>valid_codepoint?(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Checks whether <code>str</code> is a valid codepoint.</p>
+
+<p>Note that the empty string is considered invalid, as are
+strings containing multiple codepoints.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.valid_codepoint?(&quot;a&quot;)
+true
+iex&gt; String.valid_codepoint?(&quot;ø&quot;)
+true
+iex&gt; String.valid_codepoint?(&lt;&lt;0xffff :: 16&gt;&gt;)
+false
+iex&gt; String.valid_codepoint?(&quot;asdf&quot;)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L535" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/Supervisor.Behaviour.html b/docs/master/Supervisor.Behaviour.html
new file mode 100644
index 000000000..b1ded59c6
--- /dev/null
+++ b/docs/master/Supervisor.Behaviour.html
@@ -0,0 +1,278 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Supervisor.Behaviour</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Supervisor.Behaviour
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module is a convenience to define Supervisor
+callbacks in Elixir. By using this module, you get
+the module behaviour automatically tagged as
+<code>:supervisor</code> and some helper functions are imported
+to make defining supervisors easier.</p>
+
+<p>For more information on supervisors, please check the
+remaining functions defined in this module or refer to
+the following:</p>
+
+<p><a href="http://www.erlang.org/doc/man/supervisor.html">http://www.erlang.org/doc/man/supervisor.html</a>
+<a href="http://www.erlang.org/doc/design_principles/sup_princ.html">http://www.erlang.org/doc/design_principles/sup_princ.html</a>
+<a href="http://learnyousomeerlang.com/supervisors">http://learnyousomeerlang.com/supervisors</a></p>
+
+<h2>Example</h2>
+
+<pre><code>defmodule ExUnit.Sup do
+  use Supervisor.Behaviour
+
+  def init(user_options) do
+    tree = [ worker(ExUnit.Runner, [user_options]) ]
+    supervise(tree, strategy: :one_for_one)
+  end
+end
+
+{ :ok, pid } = :supervisor.start_link(MyServer, [])
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/supervisor/behaviour.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#supervise/2">supervise/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#supervisor/3">supervisor/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#worker/3">worker/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="supervise/2">
+    <strong>supervise(children, options)</strong>
+  </p>
+  <div class="docstring"><p>Receives a list of children (worker or supervisors) to
+supervise and a set of options. Returns a tuple containing
+the supervisor specification.</p>
+
+<h2>Examples</h2>
+
+<pre><code>supervise children, strategy: :one_for_one
+</code></pre>
+
+<h2>Options</h2>
+
+<ul>
+<li><p><code>:strategy</code> - the restart strategy option It can be either
+<code>:one_for_one</code>, <code>:rest_for_one</code>, <code>:one_for_all</code> and
+<code>:simple_one_for_one</code>;</p></li>
+<li><p><code>:max_restarts</code> - the maximum amount of restarts allowed in
+a time frame. Defaults to 5;</p></li>
+<li><p><code>:max_seconds</code> - the time frame in which max_restarts applies.
+Defaults to 5;</p></li>
+</ul>
+
+<p>The <code>:strategy</code> option is required and by default maximum 5 restarts
+are allowed in 5 seconds.</p>
+
+<h2>Strategies</h2>
+
+<ul>
+<li><p><code>:one_for_one</code> - If a child process terminates, only that
+process is restarted;</p></li>
+<li><p><code>:one_for_all</code> - If a child process terminates, all other child
+processes are terminated and then all child processes, including
+the terminated one, are restarted;</p></li>
+<li><p><code>:rest_for_one</code> - If a child process terminates, the &quot;rest&quot; of
+the child processes, i.e. the child processes after the terminated
+process in start order, are terminated. Then the terminated child
+process and the rest of the child processes are restarted;</p></li>
+<li><p><code>:simple_one_for_one</code> - Similar to <code>:one_for_one</code> but suits better
+when dynamically attaching children;</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/supervisor/behaviour.ex#L82" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="supervisor/3">
+    <strong>supervisor(module, args, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Defines the given <code>module</code> as a supervisor which will be started
+with the given arguments.</p>
+
+<pre><code>supervisor ExUnit.Runner, [], restart: :permanent
+</code></pre>
+
+<p>By default, the function <code>:start_link</code> is invoked on the given module.</p>
+
+<h2>Options</h2>
+
+<ul>
+<li><p><code>:id</code> - a name used to identify the child specification
+internally by the supervisor. Defaults to the module name;</p></li>
+<li><p><code>:function</code> - the function to invoke on the child to start it.
+Defaults to <code>:start_link</code>;</p></li>
+<li><p><code>:restart</code> - defines when the child process should restart.
+Defaults to <code>:permanent</code>;</p></li>
+<li><p><code>:shutdown</code> - defines how a child process should be terminated.
+Defaults to <code>5000</code>;</p></li>
+<li><p><code>:modules</code> - it should be a list with one element <code>[module]</code>,
+where module is the name of the callback module only if the
+child process is a supervisor, gen<em>server or gen</em>fsm. If the
+child process is a gen_event, modules should be <code>:dynamic</code>.
+Defaults to a list with the given module;</p></li>
+</ul>
+
+<h2>Restart values</h2>
+
+<p>The following restart values are supported:</p>
+
+<ul>
+<li><p><code>:permanent</code> - the child process is always restarted;</p></li>
+<li><p><code>:temporary</code> - the child process is never restarted (not even
+when the supervisor&#39;s strategy is <code>:rest_for_one</code> or <code>:one_for_all</code>);</p></li>
+<li><p><code>:transient</code> - the child process is restarted only if it
+terminates abnormally, i.e. with another exit reason than
+<code>:normal</code>, <code>:shutdown</code> or <code>{ :shutdown, term }</code>;</p></li>
+</ul>
+
+<h2>Shutdown values</h2>
+
+<p>The following shutdown values are supported:</p>
+
+<ul>
+<li><p><code>:brutal_kill</code> - the child process is unconditionally terminated
+using <code>exit(child, :kill)</code>;</p></li>
+<li><p><code>:infinity</code> - if the child process is a supervisor, it is a mechanism
+to give the subtree enough time to shutdown. It can also be used with
+workers with care;</p></li>
+<li><p>Finally, it can also be any integer meaning that the supervisor tells
+the child process to terminate by calling <code>exit(child, :shutdown)</code> and
+then waits for an exit signal back. If no exit signal is received within
+the specified time (in miliseconds), the child process is unconditionally
+terminated using <code>exit(child, :kill)</code>;</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/supervisor/behaviour.ex#L169" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="worker/3">
+    <strong>worker(module, args, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Defines the given <code>module</code> as a worker which will be started
+with the given arguments.</p>
+
+<pre><code>worker ExUnit.Runner, [], restart: :permanent
+</code></pre>
+
+<p>By default, the function <code>:start_link</code> is invoked on the given module.</p>
+
+<h2>Options</h2>
+
+<ul>
+<li><p><code>:id</code> - a name used to identify the child specification
+internally by the supervisor. Defaults to the module name;</p></li>
+<li><p><code>:function</code> - the function to invoke on the child to start it.
+Defaults to <code>:start_link</code>;</p></li>
+<li><p><code>:restart</code> - defines when the child process should restart.
+Defaults to <code>:permanent</code>;</p></li>
+<li><p><code>:shutdown</code> - defines how a child process should be terminated.
+Defaults to <code>5000</code>;</p></li>
+<li><p><code>:modules</code> - it should be a list with one element <code>[module]</code>,
+where module is the name of the callback module only if the
+child process is a supervisor, gen<em>server or gen</em>fsm. If the
+child process is a gen_event, modules should be <code>:dynamic</code>.
+Defaults to a list with the given module;</p></li>
+</ul>
+
+<h2>Restart values</h2>
+
+<p>The following restart values are supported:</p>
+
+<ul>
+<li><p><code>:permanent</code> - the child process is always restarted;</p></li>
+<li><p><code>:temporary</code> - the child process is never restarted (not even
+when the supervisor&#39;s strategy is <code>:rest_for_one</code> or <code>:one_for_all</code>);</p></li>
+<li><p><code>:transient</code> - the child process is restarted only if it
+terminates abnormally, i.e. with another exit reason than
+<code>:normal</code>, <code>:shutdown</code> or <code>{ :shutdown, term }</code>;</p></li>
+</ul>
+
+<h2>Shutdown values</h2>
+
+<p>The following shutdown values are supported:</p>
+
+<ul>
+<li><p><code>:brutal_kill</code> - the child process is unconditionally terminated
+using <code>exit(child, :kill)</code>;</p></li>
+<li><p><code>:infinity</code> - if the child process is a supervisor, it is a mechanism
+to give the subtree enough time to shutdown. It can also be used with
+workers with care;</p></li>
+<li><p>Finally, it can also be any integer meaning that the supervisor tells
+the child process to terminate by calling <code>exit(child, :shutdown)</code> and
+then waits for an exit signal back. If no exit signal is received within
+the specified time (in miliseconds), the child process is unconditionally
+terminated using <code>exit(child, :kill)</code>;</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/supervisor/behaviour.ex#L155" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/SyntaxError.html b/docs/master/SyntaxError.html
new file mode 100644
index 000000000..382ba6c27
--- /dev/null
+++ b/docs/master/SyntaxError.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>SyntaxError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        SyntaxError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L6" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>file:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>line:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>description:</strong> "syntax error"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L7" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/System.NoAccessCwdError.html b/docs/master/System.NoAccessCwdError.html
new file mode 100644
index 000000000..055290365
--- /dev/null
+++ b/docs/master/System.NoAccessCwdError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>System.NoAccessCwdError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        System.NoAccessCwdError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L8" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "could not get a current working directory, the current location is not accessible"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/System.NoHomeError.html b/docs/master/System.NoHomeError.html
new file mode 100644
index 000000000..93a871b7b
--- /dev/null
+++ b/docs/master/System.NoHomeError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>System.NoHomeError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        System.NoHomeError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L2" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "could not find the user home, please set the HOME environment variable"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/System.NoTmpDirError.html b/docs/master/System.NoTmpDirError.html
new file mode 100644
index 000000000..ce033c338
--- /dev/null
+++ b/docs/master/System.NoTmpDirError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>System.NoTmpDirError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        System.NoTmpDirError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L5" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "could not get a writable temporary directory, please set the TMPDIR environment variable"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/System.html b/docs/master/System.html
new file mode 100644
index 000000000..41352bf9d
--- /dev/null
+++ b/docs/master/System.html
@@ -0,0 +1,401 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>System</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        System
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>The System module provides access to some variables used or
+maintained by the VM and to functions that interact strongly
+with the VM or the host system.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#argv/0">argv/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#at_exit/1">at_exit/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#build_info/0">build_info/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cmd/1">cmd/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cwd/0">cwd/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cwd!/0">cwd!/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#find_executable/1">find_executable/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_env/0">get_env/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_env/1">get_env/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_pid/0">get_pid/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#halt/2">halt/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_env/1">put_env/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_env/2">put_env/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#stacktrace/0">stacktrace/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#tmp_dir/0">tmp_dir/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#tmp_dir!/0">tmp_dir!/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#user_home/0">user_home/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#user_home!/0">user_home!/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#version/0">version/0</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="argv/0">
+    <strong>argv()</strong>
+  </p>
+  <div class="docstring"><p>Returns the list of command-line arguments passed to the program.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L57" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="at_exit/1">
+    <strong>at_exit(fun)</strong>
+  </p>
+  <div class="docstring"><p>Registers a function that will be invoked
+at the end of program execution. Useful for
+invoking a hook in a &quot;script&quot; mode.</p>
+
+<p>The function must expect the exit status code
+as argument.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L157" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="build_info/0">
+    <strong>build_info()</strong>
+  </p>
+  <div class="docstring"><p>Returns a keywords list with version, git tag info and date.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cmd/1">
+    <strong>cmd(command)</strong>
+  </p>
+  <div class="docstring"><p>Executes <code>command</code> in a command shell of the target OS,
+captures the standard output of the command and returns
+the result as a binary.</p>
+
+<p>If <code>command</code> is a char list, a char list is returned.
+Returns a binary otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L171" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cwd/0">
+    <strong>cwd()</strong>
+  </p>
+  <div class="docstring"><p>Returns the current working directory or nil if one
+is not available.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L65" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cwd!/0">
+    <strong>cwd!()</strong>
+  </p>
+  <div class="docstring"><p>Returns the current working directory or raises <code>System.NoAccessCwdError</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L75" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="find_executable/1">
+    <strong>find_executable(command)</strong>
+  </p>
+  <div class="docstring"><p>This functions looks up an executable program given
+its name using the environment variable PATH on Unix
+and Windows.</p>
+
+<p>If <code>command</code> is a char list, a char list is returned.
+Returns a binary otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L189" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_env/0">
+    <strong>get_env()</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of all environment variables. Each environment variable is
+given as a single string of the format &quot;VarName=Value&quot;, where VarName is the
+name of the variable and Value its value.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L206" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_env/1">
+    <strong>get_env(varname)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value of the environment variable
+<code>varname</code> as a binary, or nil if the environment
+variable is undefined.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L216" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_pid/0">
+    <strong>get_pid()</strong>
+  </p>
+  <div class="docstring"><p>Returns the process identifier of the current Erlang emulator
+in the format most commonly used by the operating system environment.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/os.html#getpid-0">http://www.erlang.org/doc/man/os.html#getpid-0</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L230" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="halt/2">
+    <strong>halt(status // 0, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Halts the Erlang runtime system where the first argument status must be a
+non-negative integer, the atom <code>:abort</code> or any type that can be converted
+to a char list.</p>
+
+<ul>
+<li><p>If an integer, the runtime system exits with the integer value which
+is returned to the Operating System;</p></li>
+<li><p>If <code>:abort</code>, the runtime system aborts producing a core dump, if that is
+enabled in the operating system;</p></li>
+<li><p>If a char list, an erlang crash dump is produced with status as slogan,
+and then the runtime system exits with status code 1;</p></li>
+</ul>
+
+<p>Note that on many platforms, only the status codes 0-255 are supported
+by the operating system.</p>
+
+<p>For integer status, Erlang runtime system closes all ports and allows async
+threads to finish their operations before exiting. To exit without such
+flushing, pass options [flush: false] instead.</p>
+
+<p>For more information, check: <a href="http://www.erlang.org/doc/man/erlang.html#halt-2">http://www.erlang.org/doc/man/erlang.html#halt-2</a></p>
+
+<h2>Examples</h2>
+
+<pre><code>System.halt(0)
+System.halt(1, flush: false)
+System.halt(:abort)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L294" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_env/1">
+    <strong>put_env(dict)</strong>
+  </p>
+  <div class="docstring"><p>Sets a new value for each environment variable corresponding
+to each key in <code>dict</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L246" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_env/2">
+    <strong>put_env(varname, value)</strong>
+  </p>
+  <div class="docstring"><p>Sets a new <code>value</code> for the environment variable <code>varname</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L236" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="stacktrace/0">
+    <strong>stacktrace()</strong>
+  </p>
+  <div class="docstring"><p>Gets Elixir&#39;s stacktrace.</p>
+
+<p>Notice the Erlang VM (and therefore this function) does not
+return the current stacktrace but rather the stacktrace of the
+latest exception.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L257" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="tmp_dir/0">
+    <strong>tmp_dir()</strong>
+  </p>
+  <div class="docstring"><p>Returns a writable temporary directory.
+It searches for directories in the following order:</p>
+
+<ol>
+<li>The directory named by the TMPDIR environment variable</li>
+<li>The directory named by the TEMP environment variable</li>
+<li>The directory named by the TMP environment variable</li>
+<li><code>C:\TMP</code> on Windows or <code>/tmp</code> on Unix</li>
+<li> As a last resort, the current working directory</li>
+</ol>
+
+<p>Returns nil if none of the above are writable.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L119" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="tmp_dir!/0">
+    <strong>tmp_dir!()</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>tmp_dir</code> but raises <code>System.NoTmpDirError</code>
+instead of returning nil if no temp dir is set.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L131" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="user_home/0">
+    <strong>user_home()</strong>
+  </p>
+  <div class="docstring"><p>Returns the user home (platform independent).
+It returns nil if no user home is set.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L83" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="user_home!/0">
+    <strong>user_home!()</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>user_home</code> but raises <code>System.NoHomeError</code>
+instead of returning nil if no user home is set.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L91" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="version/0">
+    <strong>version()</strong>
+  </p>
+  <div class="docstring"><p>Returns Elixir&#39;s version as binary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L43" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/SystemLimitError.html b/docs/master/SystemLimitError.html
new file mode 100644
index 000000000..a40eceb77
--- /dev/null
+++ b/docs/master/SystemLimitError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>SystemLimitError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        SystemLimitError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L4" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "a system limit has been reached"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/TokenMissingError.html b/docs/master/TokenMissingError.html
new file mode 100644
index 000000000..b64385810
--- /dev/null
+++ b/docs/master/TokenMissingError.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>TokenMissingError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        TokenMissingError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L12" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>file:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>line:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>description:</strong> "expression is incomplete"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L13" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/URI.FTP.html b/docs/master/URI.FTP.html
new file mode 100644
index 000000000..ac3fe05f1
--- /dev/null
+++ b/docs/master/URI.FTP.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>URI.FTP</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        URI.FTP
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/ftp.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#default_port/0">default_port/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse/1">parse/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="default_port/0">
+    <strong>default_port()</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/ftp.ex#L3" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse/1">
+    <strong>parse(info)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/ftp.ex#L4" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/URI.HTTP.html b/docs/master/URI.HTTP.html
new file mode 100644
index 000000000..d863de87e
--- /dev/null
+++ b/docs/master/URI.HTTP.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>URI.HTTP</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        URI.HTTP
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/http.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#default_port/0">default_port/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse/1">parse/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="default_port/0">
+    <strong>default_port()</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/http.ex#L3" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse/1">
+    <strong>parse(info)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/http.ex#L4" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/URI.HTTPS.html b/docs/master/URI.HTTPS.html
new file mode 100644
index 000000000..65522bb9d
--- /dev/null
+++ b/docs/master/URI.HTTPS.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>URI.HTTPS</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        URI.HTTPS
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/https.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#default_port/0">default_port/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse/1">parse/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="default_port/0">
+    <strong>default_port()</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/https.ex#L3" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse/1">
+    <strong>parse(info)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/https.ex#L4" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/URI.LDAP.html b/docs/master/URI.LDAP.html
new file mode 100644
index 000000000..b2642e83f
--- /dev/null
+++ b/docs/master/URI.LDAP.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>URI.LDAP</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        URI.LDAP
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/ldap.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#default_port/0">default_port/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse/1">parse/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="default_port/0">
+    <strong>default_port()</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/ldap.ex#L3" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse/1">
+    <strong>parse(info)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/ldap.ex#L6" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/URI.Parser.html b/docs/master/URI.Parser.html
new file mode 100644
index 000000000..f6dafe4da
--- /dev/null
+++ b/docs/master/URI.Parser.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>URI.Parser</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        URI.Parser
+        
+          <small>behaviour</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Defines the behavior for each URI.Parser.
+Check URI.HTTP for a possible implementation.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/parser.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+        <h2 id="callbacks_summary">Callbacks summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#default_port/0">default_port/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse/1">parse/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="callbacks_details" class="details_list">
+          <h2>Callbacks</h2>
+          <div class="detail">
+  <p class="signature" id="default_port/0">
+    <strong>default_port()</strong>
+  </p>
+  <div class="docstring"><p>Responsible for returning the default port.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/parser.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse/1">
+    <strong>parse(uri_info :: URI.Info.t())</strong>
+  </p>
+  <div class="docstring"><p>Responsible for parsing extra URL information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/parser.ex#L12" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/URI.SFTP.html b/docs/master/URI.SFTP.html
new file mode 100644
index 000000000..b553e74a7
--- /dev/null
+++ b/docs/master/URI.SFTP.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>URI.SFTP</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        URI.SFTP
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/sftp.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#default_port/0">default_port/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse/1">parse/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="default_port/0">
+    <strong>default_port()</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/sftp.ex#L3" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse/1">
+    <strong>parse(info)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/sftp.ex#L4" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/URI.TFTP.html b/docs/master/URI.TFTP.html
new file mode 100644
index 000000000..698c394b9
--- /dev/null
+++ b/docs/master/URI.TFTP.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>URI.TFTP</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        URI.TFTP
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/tftp.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#default_port/0">default_port/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse/1">parse/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="default_port/0">
+    <strong>default_port()</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/tftp.ex#L3" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse/1">
+    <strong>parse(info)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/tftp.ex#L4" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/URI.html b/docs/master/URI.html
new file mode 100644
index 000000000..d75d6ff46
--- /dev/null
+++ b/docs/master/URI.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>URI</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        URI
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Utilities for working with and creating URIs.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#decode/1">decode/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#decode_query/2">decode_query/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#encode/1">encode/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#encode_query/1">encode_query/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse/1">parse/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#query_decoder/1">query_decoder/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="decode/1">
+    <strong>decode(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Unpercent (URL) decodes a URI.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri.ex#L94" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="decode_query/2">
+    <strong>decode_query(q, dict // HashDict.new())</strong>
+  </p>
+  <div class="docstring"><p>Given a query string of the form &quot;key1=value1&amp;key=value2...&quot;, produces an
+orddict with one entry for each key-value pair. Each key and value will be a
+binary. It also does percent-unescaping of both keys and values.</p>
+
+<p>Use decoder/1 if you want to customize or iterate each value manually.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri.ex#L31" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="encode/1">
+    <strong>encode(s)</strong>
+  </p>
+  <div class="docstring"><p>Percent (URL) encodes a URI.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri.ex#L72" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="encode_query/1">
+    <strong>encode_query(l)</strong>
+  </p>
+  <div class="docstring"><p>Takes an enumerable (containing a sequence of two-item tuples)
+and returns a string of k=v&amp;k2=v2... where keys and values are
+URL encoded as per encode. Keys and values can be any term
+that implements the Binary.Chars protocol (i.e. can be converted
+to binary).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse/1">
+    <strong>parse(s)</strong>
+  </p>
+  <div class="docstring"><p>Parses a URI into components.</p>
+
+<p>URIs have portions that are handled specially for the
+particular scheme of the URI. For example, http and https
+have different default ports. Sometimes the parsing
+of portions themselves are different. This parser
+is extensible via behavior modules. If you have a
+module named URI.MYSCHEME with a function called
+&#39;parse&#39; that takes a single argument, the generically
+parsed URI, that function will be called when this
+parse function is passed a URI of that scheme. This
+allows you to build on top of what the URI library
+currently offers. You also need to define default_port
+which takes 0 arguments and returns the default port
+for that particular scheme. Take a look at URI.HTTPS for an
+example of one of these extension modules.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri.ex#L128" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="query_decoder/1">
+    <strong>query_decoder(q)</strong>
+  </p>
+  <div class="docstring"><p>Returns an iterator function over the query string that decodes
+the query string in steps.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/UndefinedFunctionError.html b/docs/master/UndefinedFunctionError.html
new file mode 100644
index 000000000..cd9fb5042
--- /dev/null
+++ b/docs/master/UndefinedFunctionError.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>UndefinedFunctionError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        UndefinedFunctionError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L48" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>module:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>function:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>arity:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/master/css/full_list.css b/docs/master/css/full_list.css
new file mode 100644
index 000000000..d504c4bed
--- /dev/null
+++ b/docs/master/css/full_list.css
@@ -0,0 +1,57 @@
+body { 
+  margin: 0;
+  font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; 
+  font-size: 13px;
+  height: 101%;
+  overflow-x: hidden;
+}
+
+h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; }
+.clear { clear: both; }
+#search { position: absolute; right: 5px; top: 9px; padding-left: 24px; }
+#content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; }
+#full_list { padding: 0; list-style: none; margin-left: 0; }
+#full_list ul { padding: 0; }
+#full_list li { padding: 5px; padding-left: 12px; margin: 0; font-size: 1.1em; list-style: none; }
+#noresults { padding: 7px 12px; }
+#content.insearch #noresults { margin-left: 7px; }
+ul.collapsed ul, ul.collapsed li { display: none; }
+ul.collapsed.search_uncollapsed { display: block; }
+ul.collapsed.search_uncollapsed li { display: list-item; }
+li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; }
+li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; }
+li { color: #888; cursor: pointer; }
+li.deprecated { text-decoration: line-through; font-style: italic; }
+li.r1 { background: #f0f0f0; }
+li.r2 { background: #fafafa; }
+li:hover { background: #ddd; }
+li small:before { content: "("; }
+li small:after { content: ")"; }
+li small.search_info { display: none; }
+a:link, a:visited { text-decoration: none; color: #05a; }
+li.clicked { background: #05a; color: #ccc; }
+li.clicked a:link, li.clicked a:visited { color: #eee; }
+li.clicked a.toggle { opacity: 0.5; background-position: bottom right; }
+li.collapsed.clicked a.toggle { background-position: top right; }
+#nav { margin: 5px 0 10px 5px; font-size: 0.9em; display: none; color: #aaa; }
+#nav a:link, #nav a:visited { color: #358; }
+#nav a:hover { background: transparent; color: #5af; }
+#nav span { border-left: 1px solid #ccc; padding: 0 5px; display: block; float: left }
+#nav span:first-child { border-left: 0; border-radius: 3px; }
+#nav span.selected { text-decoration: underline; }
+
+.frames #content h1 { margin-top: 0; }
+.frames li { white-space: nowrap; cursor: normal; }
+.frames li small { display: block; font-size: 0.8em; }
+.frames li small:before { content: ""; }
+.frames li small:after { content: ""; }
+.frames li small.search_info { display: none; }
+.frames #search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; }
+.frames #content.insearch #search { background-position: center right; }
+.frames #search input { width: 110px; }
+.frames #nav { display: block; }
+
+#full_list.insearch li { display: none; }
+#full_list.insearch li.found { display: list-item; padding-left: 10px; }
+#full_list.insearch li a.toggle { display: none; }
+#full_list.insearch li small.search_info { display: block; }
diff --git a/docs/master/css/style.css b/docs/master/css/style.css
new file mode 100644
index 000000000..1a845c355
--- /dev/null
+++ b/docs/master/css/style.css
@@ -0,0 +1,131 @@
+body {
+  padding: 0 20px;
+  font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
+  font-size: 13px;
+}
+
+body.frames { padding: 0 5px; }
+
+h1 { font-size: 25px; border-top: 0px; margin-top: 0; padding-top: 4px; }
+h1 small { color: #888; font-size: 18px }
+
+h2 {
+  padding: 0;
+  padding-bottom: 3px;
+  border-bottom: 1px #aaa solid;
+  font-size: 1.4em;
+  margin: 1.8em 0 0.5em;
+}
+
+.clear { clear: both; }
+
+li.r1 { background: #f0f0f0; }
+li.r2 { background: #fafafa; }
+
+div.docstring, p.docstring { margin-right: 6em; }
+.docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 0; }
+.docstring h1 { font-size: 1.2em; }
+.docstring h2 { font-size: 1.1em; }
+.docstring h3, .docstring h4 { font-size: 1em; padding-top: 10px; }
+.docstring pre {
+  padding: 0.5em;
+  border: #ffe0bb dotted 1px;
+  background: #fffde8;
+}
+
+p.signature {
+  font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace;
+  padding: 6px 10px; margin-top: 18px;
+  background: #e5e8ff; border: 1px solid #d8d8e5; -moz-border-radius: 3px; -webkit-border-radius: 3px;
+}
+
+a:link, a:visited { text-decoration: none; color: #05a; }
+a:hover { color: #27c; }
+
+.detail { border-top: 1px dotted #aaa; margin-top: 15px; padding-top: 0; }
+.detail:nth-child(2) { border: 0; }
+
+/* Summary */
+ul.summary {
+  list-style: none;
+  font-family: monospace;
+  font-size: 1em;
+  line-height: 1.5em;
+  margin: 0;
+  padding: 0;
+}
+ul.summary li { display: inline-block; margin: 0px 5px 0px 0px; line-height: 2.6em;}
+ul.summary a:link, ul.summary a:visited {
+  text-decoration: none; font-size: 1.1em;
+}
+ul.summary .summary_signature {
+  padding: 5px 7px; padding-right: 4px;
+  background: #eaeaff; border: 1px solid #dfdfe5;
+  -moz-border-radius: 3px; -webkit-border-radius: 3px;
+}
+ul.summary .summary_signature:hover { background: #eeeeff; cursor: pointer; }
+
+/* File contents */
+#filecontents li > p, .docstring li > p { margin: 0px; }
+#filecontents ul, .docstring ul { padding-left: 20px; }
+
+#filecontents dl, .docstring dl { border: 1px solid #ccc; }
+#filecontents dt, .docstring dt { background: #ddd; font-weight: bold; padding: 3px 5px; }
+#filecontents dd, .docstring dd { padding: 5px 0px; margin-left: 18px; }
+#filecontents dd > p, .docstring dd > p { margin: 0px; }
+#filecontents dl.box, dl.box {
+  border: 0;
+  width: 520px;
+  font-size: 1em;
+}
+#filecontents dl.box dt, dl.box dt {
+  float: left;
+  display: block;
+  width: 100px;
+  margin: 0;
+  text-align: right;
+  font-weight: bold;
+  background: transparent;
+  border: 1px solid #aaa;
+  border-width: 1px 0px 0px 1px;
+  padding: 6px 0;
+  padding-right: 10px;
+}
+#filecontents dl.box dd, dl.box dd {
+  float: left;
+  display: block;
+  width: 380px;
+  margin: 0;
+  padding: 6px 0;
+  padding-right: 20px;
+  border: 1px solid #aaa;
+  border-width: 1px 1px 0 0;
+}
+#filecontents dl.box .last, dl.box .last {
+  border-bottom: 1px solid #aaa;
+}
+#filecontents dl.box .r1, dl.box .r1 { background: #eee; }
+
+/* Footer */
+#footer { margin-top: 15px; border-top: 1px solid #ccc; text-align: center; padding: 7px 0; color: #999; }
+
+/* TOC */
+#toc {
+  padding: 20px; padding-right: 30px; border: 1px solid #ddd; float: right; background: #fff; margin-left: 20px; margin-bottom: 20px;
+  max-width: 300px;
+  -webkit-box-shadow: -2px 2px 6px #bbb;
+  -moz-box-shadow: -2px 2px 6px #bbb;
+  z-index: 5000;
+  position: relative;
+}
+#toc.nofloat { float: none; max-width: none; border: none; padding: 0; margin: 20px 0; -webkit-box-shadow: none; -moz-box-shadow: none; }
+#toc.nofloat.hidden { padding: 0; background: 0; margin-bottom: 5px; }
+#toc .title { margin: 0; }
+#toc ol { padding-left: 1.8em; }
+#toc li { font-size: 1.1em; line-height: 1.7em; }
+#toc > ol > li { font-size: 1.1em; font-weight: bold; }
+#toc ol > ol { font-size: 0.9em; }
+#toc ol ol > ol { padding-left: 2.3em; }
+#toc ol + li { margin-top: 0.3em; }
+#toc.hidden { padding: 10px; background: #f6f6f6; -webkit-box-shadow: none; -moz-box-shadow: none; }
+#filecontents h1 + #toc.nofloat { margin-top: 0; }
\ No newline at end of file
diff --git a/docs/master/index.html b/docs/master/index.html
new file mode 100644
index 000000000..ba88e3113
--- /dev/null
+++ b/docs/master/index.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+	<title>Elixir v0.9.1 Documentation</title>
+</head>
+<frameset cols="20%,*">
+  <frame name="list" src="modules_list.html" />
+  <frame name="main" src="Kernel.html" />
+</frameset>
+</html>
\ No newline at end of file
diff --git a/docs/master/js/app.js b/docs/master/js/app.js
new file mode 100644
index 000000000..adfc739f7
--- /dev/null
+++ b/docs/master/js/app.js
@@ -0,0 +1,61 @@
+function fixOutsideWorldLinks() {
+  $('a').each(function() {
+    if (window.location.host != this.host) this.target = '_parent';
+  });
+}
+
+function generateTOC() {
+  if ($('#filecontents').length === 0) return;
+  var _toc = $('<ol class="top"></ol>');
+  var show = false;
+  var toc = _toc;
+  var counter = 0;
+  var tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
+  var i;
+  if ($('#filecontents h1').length > 1) tags.unshift('h1');
+  for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; }
+  var lastTag = parseInt(tags[0][1], 10);
+  $(tags.join(', ')).each(function() {
+    if (this.id == "filecontents") return;
+    show = true;
+    var thisTag = parseInt(this.tagName[1], 10);
+    if (this.id.length === 0) {
+      var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_');
+      if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; }
+      this.id = proposedId;
+    }
+    if (thisTag > lastTag) { 
+      for (i = 0; i < thisTag - lastTag; i++) { 
+        var tmp = $('<ol/>'); toc.append(tmp); toc = tmp; 
+      } 
+    }
+    if (thisTag < lastTag) { 
+      for (i = 0; i < lastTag - thisTag; i++) toc = toc.parent(); 
+    }
+    toc.append('<li><a href="#' + this.id + '">' + $(this).text() + '</a></li>');
+    lastTag = thisTag;
+  });
+  if (!show) return;
+  html = '<div id="toc"><p class="title"><a class="hide_toc" href="#"><strong>Table of Contents</strong></a> <small>(<a href="#" class="float_toc">left</a>)</small></p></div>';
+  $('#content').prepend(html);
+  $('#toc').append(_toc);
+  $('#toc .hide_toc').toggle(function() { 
+    $('#toc .top').slideUp('fast');
+    $('#toc').toggleClass('hidden');
+    $('#toc .title small').toggle();
+  }, function() {
+    $('#toc .top').slideDown('fast');
+    $('#toc').toggleClass('hidden');
+    $('#toc .title small').toggle();
+  });
+  $('#toc .float_toc').toggle(function() { 
+    $(this).text('float');
+    $('#toc').toggleClass('nofloat');
+  }, function() {
+    $(this).text('left');
+    $('#toc').toggleClass('nofloat');
+  });
+}
+
+$(fixOutsideWorldLinks);
+$(generateTOC);
\ No newline at end of file
diff --git a/docs/master/js/full_list.js b/docs/master/js/full_list.js
new file mode 100644
index 000000000..2e4016283
--- /dev/null
+++ b/docs/master/js/full_list.js
@@ -0,0 +1,167 @@
+var inSearch = null;
+var searchIndex = 0;
+var searchCache = [];
+var searchString = '';
+var regexSearchString = '';
+var caseSensitiveMatch = false;
+var ignoreKeyCodeMin = 8;
+var ignoreKeyCodeMax = 46;
+var commandKey = 91;
+
+RegExp.escape = function(text) {
+  return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
+}
+
+function fullListSearch() {
+  // generate cache
+  searchCache = [];
+  $('#full_list li').each(function() {
+    var link = $(this).find('.object_link a');
+    var fullName = link.attr('title').split(' ')[0];
+    searchCache.push({name:link.text(), fullName:fullName, node:$(this), link:link});
+  });
+  
+  $('#search input').keyup(function(evnt) {
+    if ((evnt.keyCode > ignoreKeyCodeMin && evnt.keyCode < ignoreKeyCodeMax)
+         || evnt.keyCode == commandKey)
+      return;
+    searchString = this.value;
+    caseSensitiveMatch = searchString.match(/[A-Z]/) != null;
+    regexSearchString = RegExp.escape(searchString);
+    if (searchString === "") {
+      clearTimeout(inSearch);
+      inSearch = null;
+      $('ul .search_uncollapsed').removeClass('search_uncollapsed');
+      $('#full_list, #content').removeClass('insearch');
+      $('#full_list li').removeClass('found').each(function() {
+        var link = $(this).find('.object_link a');
+        link.text(link.text()); 
+      });
+      if (clicked) {
+        clicked.parents('ul').each(function() {
+          $(this).removeClass('collapsed').prev().removeClass('collapsed');
+        });
+      }
+      highlight();
+    }
+    else {
+      if (inSearch) clearTimeout(inSearch);
+      searchIndex = 0;
+      lastRowClass = '';
+      $('#full_list, #content').addClass('insearch');
+      $('#noresults').text('');
+      searchItem();
+    }
+  });
+  
+  $('#search input').focus();
+  $('#full_list').after("<div id='noresults'></div>");
+}
+
+var lastRowClass = '';
+function searchItem() {
+  for (var i = 0; i < searchCache.length / 50; i++) {
+    var item = searchCache[searchIndex];
+    var searchName = (searchString.indexOf('.') != -1 ? item.fullName : item.name);
+    var matchString = regexSearchString;
+    var matchRegexp = new RegExp(matchString, caseSensitiveMatch ? "" : "i");
+    if (searchName.match(matchRegexp) == null) {
+      item.node.removeClass('found');
+    }
+    else {
+      item.node.css('padding-left', '10px').addClass('found');
+      item.node.parents().addClass('search_uncollapsed');
+      item.node.removeClass(lastRowClass).addClass(lastRowClass == 'r1' ? 'r2' : 'r1');
+      lastRowClass = item.node.hasClass('r1') ? 'r1' : 'r2';
+      item.link.html(item.name.replace(matchRegexp, "<strong>$&</strong>"));
+    }
+
+    if (searchCache.length === searchIndex + 1) {
+      searchDone();
+      return;
+    }
+    else {
+      searchIndex++;
+    }
+  }
+  inSearch = setTimeout('searchItem()', 0);
+}
+
+function searchDone() {
+  highlight(true);
+  if ($('#full_list li:visible').size() === 0) {
+    $('#noresults').text('No results were found.').hide().fadeIn();
+  }
+  else {
+    $('#noresults').text('');
+  }
+  $('#content').removeClass('insearch');
+  clearTimeout(inSearch);
+  inSearch = null;
+}
+
+clicked = null;
+function linkList() {
+  $('#full_list li, #full_list li a:last').click(function(evt) {
+    if ($(this).hasClass('toggle')) return true;
+    if (this.tagName.toLowerCase() == "li") {
+      var toggle = $(this).children('a.toggle');
+      if (toggle.size() > 0 && evt.pageX < toggle.offset().left) {
+        toggle.click();
+        return false;
+      }
+    }
+    if (clicked) clicked.removeClass('clicked');
+    var win = window.top.frames.main ? window.top.frames.main : window.parent;
+    if (this.tagName.toLowerCase() == "a") {
+      clicked = $(this).parent('li').addClass('clicked');
+      win.location = this.href;
+    }
+    else {
+      clicked = $(this).addClass('clicked');
+      win.location = $(this).find('a:last').attr('href');
+    }
+    return false;
+  });
+}
+
+function collapse() {
+  if (!$('#full_list').hasClass('class')) return;
+  $('#full_list.class a.toggle').click(function() { 
+    $(this).parent().toggleClass('collapsed').next().toggleClass('collapsed');
+    highlight();
+    return false; 
+  });
+  $('#full_list.class ul').each(function() {
+    $(this).addClass('collapsed').prev().addClass('collapsed');
+  });
+  // $('#full_list.class').children().removeClass('collapsed');
+  highlight();
+}
+
+function highlight(no_padding) {
+  var n = 1;
+  $('#full_list li:visible').each(function() {
+    var next = n == 1 ? 2 : 1;
+    $(this).removeClass("r" + next).addClass("r" + n);
+    if (!no_padding && $('#full_list').hasClass('class')) {
+      $(this).css('padding-left', (10 + $(this).parents('ul').size() * 15) + 'px');
+    }
+    n = next;
+  });
+}
+
+function escapeShortcut() {
+  $(document).keydown(function(evt) {
+    if (evt.which == 27) {
+      $('#search_frame', window.top.document).slideUp(100);
+      $('#search a', window.top.document).removeClass('active inactive');
+      $(window.top).focus();
+    }
+  });
+}
+
+$(escapeShortcut);
+$(fullListSearch);
+$(linkList);
+$(collapse);
diff --git a/docs/master/js/jquery.js b/docs/master/js/jquery.js
new file mode 100644
index 000000000..f78f96a12
--- /dev/null
+++ b/docs/master/js/jquery.js
@@ -0,0 +1,16 @@
+/*!
+ * jQuery JavaScript Library v1.5.2
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Thu Mar 31 15:28:23 2011 -0400
+ */
+(function(a,b){function ci(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cf(a){if(!b_[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";b_[a]=c}return b_[a]}function ce(a,b){var c={};d.each(cd.concat.apply([],cd.slice(0,b)),function(){c[this]=a});return c}function b$(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bZ(){try{return new a.XMLHttpRequest}catch(b){}}function bY(){d(a).unload(function(){for(var a in bW)bW[a](0,1)})}function bS(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h==="string"&&(f[h.toLowerCase()]=a.converters[h]);l=k,k=e[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=f[m]||f["* "+k];if(!n){p=b;for(o in f){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=f[j[1]+" "+k];if(p){o=f[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&d.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bR(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bQ(a,b,c,e){if(d.isArray(b)&&b.length)d.each(b,function(b,f){c||bs.test(a)?e(a,f):bQ(a+"["+(typeof f==="object"||d.isArray(f)?b:"")+"]",f,c,e)});else if(c||b==null||typeof b!=="object")e(a,b);else if(d.isArray(b)||d.isEmptyObject(b))e(a,"");else for(var f in b)bQ(a+"["+f+"]",b[f],c,e)}function bP(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bJ,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bP(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bP(a,c,d,e,"*",g));return l}function bO(a){return function(b,c){typeof b!=="string"&&(c=b,b="*");if(d.isFunction(c)){var e=b.toLowerCase().split(bD),f=0,g=e.length,h,i,j;for(;f<g;f++)h=e[f],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bq(a,b,c){var e=b==="width"?bk:bl,f=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return f;d.each(e,function(){c||(f-=parseFloat(d.css(a,"padding"+this))||0),c==="margin"?f+=parseFloat(d.css(a,"margin"+this))||0:f-=parseFloat(d.css(a,"border"+this+"Width"))||0});return f}function bc(a,b){b.src?d.ajax({url:b.src,async:!1,dataType:"script"}):d.globalEval(b.text||b.textContent||b.innerHTML||""),b.parentNode&&b.parentNode.removeChild(b)}function bb(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function ba(a,b){if(b.nodeType===1){var c=b.nodeName.toLowerCase();b.clearAttributes(),b.mergeAttributes(a);if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(d.expando)}}function _(a,b){if(b.nodeType===1&&d.hasData(a)){var c=d.expando,e=d.data(a),f=d.data(b,e);if(e=e[c]){var g=e.events;f=f[c]=d.extend({},e);if(g){delete f.handle,f.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)d.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function $(a,b){return d.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Q(a,b,c){if(d.isFunction(b))return d.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return d.grep(a,function(a,d){return a===b===c});if(typeof b==="string"){var e=d.grep(a,function(a){return a.nodeType===1});if(L.test(b))return d.filter(b,e,!c);b=d.filter(b,e)}return d.grep(a,function(a,e){return d.inArray(a,b)>=0===c})}function P(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function H(a,b){return(a&&a!=="*"?a+".":"")+b.replace(t,"`").replace(u,"&")}function G(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,p=[],q=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;i<t.length;i++)g=t[i],g.origType.replace(r,"")===a.type?q.push(g.selector):t.splice(i--,1);f=d(a.target).closest(q,a.currentTarget);for(j=0,k=f.length;j<k;j++){m=f[j];for(i=0;i<t.length;i++){g=t[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,e=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,e=d(a.relatedTarget).closest(g.selector)[0];(!e||e!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){f=p[j];if(c&&f.level>c)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function E(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function y(){return!0}function x(){return!1}function i(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function h(a,c,e){if(e===b&&a.nodeType===1){e=a.getAttribute("data-"+c);if(typeof e==="string"){try{e=e==="true"?!0:e==="false"?!1:e==="null"?null:d.isNaN(e)?g.test(e)?d.parseJSON(e):e:parseFloat(e)}catch(f){}d.data(a,c,e)}else e=b}return e}var c=a.document,d=function(){function G(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(G,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x,y,z=Object.prototype.toString,A=Object.prototype.hasOwnProperty,B=Array.prototype.push,C=Array.prototype.slice,D=String.prototype.trim,E=Array.prototype.indexOf,F={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.2",length:0,size:function(){return this.length},toArray:function(){return C.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?B.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),x.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(C.apply(this,arguments),"slice",C.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:B,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){e=i[c],f=a[c];if(i===f)continue;l&&f&&(d.isPlainObject(f)||(g=d.isArray(f)))?(g?(g=!1,h=e&&d.isArray(e)?e:[]):h=e&&d.isPlainObject(e)?e:{},i[c]=d.extend(l,h,f)):f!==b&&(i[c]=f)}return i},d.extend({noConflict:function(b){a.$=f,b&&(a.jQuery=e);return d},isReady:!1,readyWait:1,ready:function(a){a===!0&&d.readyWait--;if(!d.readyWait||a!==!0&&!d.isReady){if(!c.body)return setTimeout(d.ready,1);d.isReady=!0;if(a!==!0&&--d.readyWait>0)return;x.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=d._Deferred();if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",y,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",y),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&G()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):F[z.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!A.call(a,"constructor")&&!A.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||A.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g<h;)if(c.apply(a[g++],e)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(var j=a[0];g<h&&c.call(j,g,j)!==!1;j=a[++g]){}return a},trim:D?function(a){return a==null?"":D.call(a)}:function(a){return a==null?"":(a+"").replace(j,"").replace(k,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var e=d.type(a);a.length==null||e==="string"||e==="function"||e==="regexp"||d.isWindow(a)?B.call(c,a):d.merge(c,a)}return c},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length==="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,b,c){var d=[],e;for(var f=0,g=a.length;f<g;f++)e=b(a[f],f,c),e!=null&&(d[d.length]=e);return d.concat.apply([],d)},guid:1,proxy:function(a,c,e){arguments.length===2&&(typeof c==="string"?(e=a,a=e[c],c=b):c&&!d.isFunction(c)&&(e=c,c=b)),!c&&a&&(c=function(){return a.apply(e||this,arguments)}),a&&(c.guid=a.guid=a.guid||c.guid||d.guid++);return c},access:function(a,c,e,f,g,h){var i=a.length;if(typeof c==="object"){for(var j in c)d.access(a,j,c[j],f,g,e);return a}if(e!==b){f=!h&&f&&d.isFunction(e);for(var k=0;k<i;k++)g(a[k],c,f?e.call(a[k],k,g(a[k],c)):e,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){F["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),E&&(d.inArray=function(a,b){return E.call(b,a)}),i.test(" ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?y=function(){c.removeEventListener("DOMContentLoaded",y,!1),d.ready()}:c.attachEvent&&(y=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",y),d.ready())});return d}(),e="then done fail isResolved isRejected promise".split(" "),f=[].slice;d.extend({_Deferred:function(){var a=[],b,c,e,f={done:function(){if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this},resolveWith:function(d,f){if(!e&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(d,f)}finally{b=[d,f],c=0}}return this},resolve:function(){f.resolveWith(this,arguments);return this},isResolved:function(){return c||b},cancel:function(){e=1,a=[];return this}};return f},Deferred:function(a){var b=d._Deferred(),c=d._Deferred(),f;d.extend(b,{then:function(a,c){b.done(a).fail(c);return this},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,promise:function(a){if(a==null){if(f)return f;f=a={}}var c=e.length;while(c--)a[e[c]]=b[e[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?f.call(arguments,0):c,--g||h.resolveWith(h,f.call(b,0))}}var b=arguments,c=0,e=b.length,g=e,h=e<=1&&a&&d.isFunction(a.promise)?a:d.Deferred();if(e>1){for(;c<e;c++)b[c]&&d.isFunction(b[c].promise)?b[c].promise().then(i(c),h.reject):--g;g||h.resolveWith(h,b)}else h!==a&&h.resolveWith(h,e?[a]:[]);return h.promise()}}),function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0,reliableMarginRight:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e)}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(a.style.width="1px",a.style.marginRight="0",d.support.reliableMarginRight=(parseInt(c.defaultView.getComputedStyle(a,null).marginRight,10)||0)===0),b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function");return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}}();var g=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!i(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,g=b.nodeType,h=g?d.cache:b,j=g?b[d.expando]:d.expando;if(!h[j])return;if(c){var k=e?h[j][f]:h[j];if(k){delete k[c];if(!i(k))return}}if(e){delete h[j][f];if(!i(h[j]))return}var l=h[j][f];d.support.deleteExpando||h!=a?delete h[j]:h[j]=null,l?(h[j]={},g||(h[j].toJSON=d.noop),h[j][f]=l):g&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var f=this[0].attributes,g;for(var i=0,j=f.length;i<j;i++)g=f[i].name,g.indexOf("data-")===0&&(g=g.substr(5),h(this[0],g,e[g]))}}return e}if(typeof a==="object")return this.each(function(){d.data(this,a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(c===b){e=this.triggerHandler("getData"+k[1]+"!",[k[0]]),e===b&&this.length&&(e=d.data(this[0],a),e=h(this[0],a,e));return e===b&&k[1]?this.data(k[0]):e}return this.each(function(){var b=d(this),e=[k[0],c];b.triggerHandler("setData"+k[1]+"!",e),d.data(this,a,c),b.triggerHandler("changeData"+k[1]+"!",e)})},removeData:function(a){return this.each(function(){d.removeData(this,a)})}}),d.extend({queue:function(a,b,c){if(a){b=(b||"fx")+"queue";var e=d._data(a,b);if(!c)return e||[];!e||d.isArray(c)?e=d._data(a,b,d.makeArray(c)):e.push(c);return e}},dequeue:function(a,b){b=b||"fx";var c=d.queue(a,b),e=c.shift();e==="inprogress"&&(e=c.shift()),e&&(b==="fx"&&c.unshift("inprogress"),e.call(a,function(){d.dequeue(a,b)})),c.length||d.removeData(a,b+"queue",!0)}}),d.fn.extend({queue:function(a,c){typeof a!=="string"&&(c=a,a="fx");if(c===b)return d.queue(this[0],a);return this.each(function(b){var e=d.queue(this,a,c);a==="fx"&&e[0]!=="inprogress"&&d.dequeue(this,a)})},dequeue:function(a){return this.each(function(){d.dequeue(this,a)})},delay:function(a,b){a=d.fx?d.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){d.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var j=/[\n\t\r]/g,k=/\s+/,l=/\r/g,m=/^(?:href|src|style)$/,n=/^(?:button|input)$/i,o=/^(?:button|input|object|select|textarea)$/i,p=/^a(?:rea)?$/i,q=/^(?:radio|checkbox)$/i;d.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"},d.fn.extend({attr:function(a,b){return d.access(this,a,b,!0,d.attr)},removeAttr:function(a,b){return this.each(function(){d.attr(this,a,""),this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.addClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"){var b=(a||"").split(k);for(var c=0,e=this.length;c<e;c++){var f=this[c];if(f.nodeType===1)if(f.className){var g=" "+f.className+" ",h=f.className;for(var i=0,j=b.length;i<j;i++)g.indexOf(" "+b[i]+" ")<0&&(h+=" "+b[i]);f.className=d.trim(h)}else f.className=a}}return this},removeClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"||a===b){var c=(a||"").split(k);for(var e=0,f=this.length;e<f;e++){var g=this[e];if(g.nodeType===1&&g.className)if(a){var h=(" "+g.className+" ").replace(j," ");for(var i=0,l=c.length;i<l;i++)h=h.replace(" "+c[i]+" "," ");g.className=d.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,e=typeof b==="boolean";if(d.isFunction(a))return this.each(function(c){var e=d(this);e.toggleClass(a.call(this,c,e.attr("class"),b),b)});return this.each(function(){if(c==="string"){var f,g=0,h=d(this),i=b,j=a.split(k);while(f=j[g++])i=e?i:!h.hasClass(f),h[i?"addClass":"removeClass"](f)}else if(c==="undefined"||c==="boolean")this.className&&d._data(this,"__className__",this.className),this.className=this.className||a===!1?"":d._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(j," ").indexOf(b)>-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var j=i?f:0,k=i?f+1:h.length;j<k;j++){var m=h[j];if(m.selected&&(d.support.optDisabled?!m.disabled:m.getAttribute("disabled")===null)&&(!m.parentNode.disabled||!d.nodeName(m.parentNode,"optgroup"))){a=d(m).val();if(i)return a;g.push(a)}}if(i&&!g.length&&h.length)return d(h[f]).val();return g}if(q.test(c.type)&&!d.support.checkOn)return c.getAttribute("value")===null?"on":c.value;return(c.value||"").replace(l,"")}return b}var n=d.isFunction(a);return this.each(function(b){var c=d(this),e=a;if(this.nodeType===1){n&&(e=a.call(this,b,c.val())),e==null?e="":typeof e==="number"?e+="":d.isArray(e)&&(e=d.map(e,function(a){return a==null?"":a+""}));if(d.isArray(e)&&q.test(this.type))this.checked=d.inArray(c.val(),e)>=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=m.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&n.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var k=a.getAttributeNode("tabIndex");return k&&k.specified?k.value:o.test(a.nodeName)||p.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var l=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return l===null?b:l}h&&(a[c]=e);return a[c]}});var r=/\.(.*)$/,s=/^(?:textarea|input|select)$/i,t=/\./g,u=/ /g,v=/[^\w\s.|`]/g,w=function(a){return a.replace(v,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=x;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(a){return typeof d!=="undefined"&&d.event.triggered!==a.type?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=x);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),w).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))d.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=d.event.special[h]||{};for(j=f||0;j<p.length;j++){q=p[j];if(e.guid===q.guid){if(l||n.test(q.namespace))f==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(f!=null)break}}if(p.length===0||f!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&d.removeEvent(a,h,s.handle),g=null,delete t[h]}if(d.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,d.isEmptyObject(s)&&d.removeData(a,b,!0)}}},trigger:function(a,c,e){var f=a.type||a,g=arguments[3];if(!g){a=typeof a==="object"?a[d.expando]?a:d.extend(d.Event(f),a):d.Event(f),f.indexOf("!")>=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(r,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=a.type,l[m]())}catch(p){}k&&(l["on"+m]=k),d.event.triggered=b}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l<m;l++){var n=f[l];if(e||h.test(n.namespace)){c.handler=n.handler,c.data=n.data,c.handleObj=n;var o=n.handler.apply(this,k);o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[d.expando])return a;var e=a;a=d.Event(e);for(var f=this.props.length,g;f;)g=this.props[--f],a[g]=e[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=c.documentElement,i=c.body;a.pageX=a.clientX+(h&&h.scrollLeft||i&&i.scrollLeft||0)-(h&&h.clientLeft||i&&i.clientLeft||0),a.pageY=a.clientY+(h&&h.scrollTop||i&&i.scrollTop||0)-(h&&h.clientTop||i&&i.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:d.proxy,special:{ready:{setup:d.bindReady,teardown:d.noop},live:{add:function(a){d.event.add(this,H(a.origType,a.selector),d.extend({},a,{handler:G,guid:a.handler.guid}))},remove:function(a){d.event.remove(this,H(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){d.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},d.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},d.Event=function(a){if(!this.preventDefault)return new d.Event(a);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?y:x):this.type=a,this.timeStamp=d.now(),this[d.expando]=!0},d.Event.prototype={preventDefault:function(){this.isDefaultPrevented=y;var a=this.originalEvent;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=y;var a=this.originalEvent;a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=y,this.stopPropagation()},isDefaultPrevented:x,isPropagationStopped:x,isImmediatePropagationStopped:x};var z=function(a){var b=a.relatedTarget;try{if(b&&b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&(a.type=a.data,d.event.handle.apply(this,arguments))}catch(e){}},A=function(a){a.type=a.data,d.event.handle.apply(this,arguments)};d.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){d.event.special[a]={setup:function(c){d.event.add(this,b,c&&c.selector?A:z,a)},teardown:function(a){d.event.remove(this,b,a&&a.selector?A:z)}}}),d.support.submitBubbles||(d.event.special.submit={setup:function(a,b){if(this.nodeName&&this.nodeName.toLowerCase()!=="form")d.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&d(b).closest("form").length&&E("submit",this,arguments)}),d.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&d(b).closest("form").length&&a.keyCode===13&&E("submit",this,arguments)});else return!1},teardown:function(a){d.event.remove(this,".specialSubmit")}});if(!d.support.changeBubbles){var B,C=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},D=function D(a){var c=a.target,e,f;if(s.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=C(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:D,beforedeactivate:D,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&D.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&D.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",C(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in B)d.event.add(this,c+".specialChange",B[c]);return s.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return s.test(this.nodeName)}},B=d.event.special.change.filters,B.focus=B.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function f(a){var c=d.event.fix(a);c.type=b,c.originalEvent={},d.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var e=0;d.event.special[b]={setup:function(){e++===0&&c.addEventListener(a,f,!0)},teardown:function(){--e===0&&c.removeEventListener(a,f,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i<j;i++)d.event.add(this[i],a,h,e);return this}}),d.fn.extend({unbind:function(a,b){if(typeof a!=="object"||a.preventDefault)for(var e=0,f=this.length;e<f;e++)d.event.remove(this[e],a,b);else for(var c in a)this.unbind(c,a[c]);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){d.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var c=d.Event(a);c.preventDefault(),c.stopPropagation(),d.event.trigger(c,b,this[0]);return c.result}},toggle:function(a){var b=arguments,c=1;while(c<b.length)d.proxy(a,b[c++]);return this.click(d.proxy(a,function(e){var f=(d._data(this,"lastToggle"+a.guid)||0)%c;d._data(this,"lastToggle"+a.guid,f+1),e.preventDefault();return b[f].apply(this,arguments)||!1}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var F={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};d.each(["live","die"],function(a,c){d.fn[c]=function(a,e,f,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:d(this.context);if(typeof a==="object"&&!a.preventDefault){for(var o in a)n[c](o,e,a[o],m);return this}d.isFunction(e)&&(f=e,e=b),a=(a||"").split(" ");while((h=a[i++])!=null){j=r.exec(h),k="",j&&(k=j[0],h=h.replace(r,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,h==="focus"||h==="blur"?(a.push(F[h]+k),h=h+k):h=(F[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)d.event.add(n[p],"live."+H(h,m),{data:e,selector:m,handler:f,origType:h,origHandler:f,preType:l});else n.unbind("live."+H(h,m),f)}return this}}),d.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){d.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!=="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!=="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(f){if(f===!0)continue}else g=o=!0}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b==="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1){}a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!=="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!=="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!=="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return"text"===c&&(b===c||b===null)},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(a===b){g=!0;return 0}if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};d.find=k,d.expr=k.selectors,d.expr[":"]=d.expr.filters,d.unique=k.uniqueSort,d.text=k.getText,d.isXMLDoc=k.isXML,d.contains=k.contains}();var I=/Until$/,J=/^(?:parents|prevUntil|prevAll)/,K=/,/,L=/^.[^:#\[\.,]*$/,M=Array.prototype.slice,N=d.expr.match.POS,O={children:!0,contents:!0,next:!0,prev:!0};d.fn.extend({find:function(a){var b=this.pushStack("","find",a),c=0;for(var e=0,f=this.length;e<f;e++){c=b.length,d.find(a,this[e],b);if(e>0)for(var g=c;g<b.length;g++)for(var h=0;h<c;h++)if(b[h]===b[g]){b.splice(g--,1);break}}return b},has:function(a){var b=d(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(d.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(Q(this,a,!1),"not",a)},filter:function(a){return this.pushStack(Q(this,a,!0),"filter",a)},is:function(a){return!!a&&d.filter(a,this).length>0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e<f;e++)i=a[e],j[i]||(j[i]=d.expr.match.POS.test(i)?d(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=N.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e<f;e++){g=this[e];while(g){if(l?l.index(g)>-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(P(c[0])||P(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=M.call(arguments);I.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!O[a]?d.unique(f):f,(this.length>1||K.test(e))&&J.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var R=/ jQuery\d+="(?:\d+|null)"/g,S=/^\s+/,T=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,U=/<([\w:]+)/,V=/<tbody/i,W=/<|&#?\w+;/,X=/<(?:script|object|embed|option|style)/i,Y=/checked\s*(?:[^=]|=\s*.checked.)/i,Z={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};Z.optgroup=Z.option,Z.tbody=Z.tfoot=Z.colgroup=Z.caption=Z.thead,Z.th=Z.td,d.support.htmlSerialize||(Z._default=[1,"div<div>","</div>"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(R,""):null;if(typeof a!=="string"||X.test(a)||!d.support.leadingWhitespace&&S.test(a)||Z[(U.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(T,"<$1></$2>");try{for(var c=0,e=this.length;c<e;c++)this[c].nodeType===1&&(d.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(f){this.empty().append(a)}}return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(d.isFunction(a))return this.each(function(b){var c=d(this),e=c.html();c.replaceWith(a.call(this,b,e))});typeof a!=="string"&&(a=d(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;d(this).remove(),b?d(b).before(a):d(c).append(a)})}return this.length?this.pushStack(d(d.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,e){var f,g,h,i,j=a[0],k=[];if(!d.support.checkClone&&arguments.length===3&&typeof j==="string"&&Y.test(j))return this.each(function(){d(this).domManip(a,c,e,!0)});if(d.isFunction(j))return this.each(function(f){var g=d(this);a[0]=j.call(this,f,c?g.html():b),g.domManip(a,c,e)});if(this[0]){i=j&&j.parentNode,d.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?f={fragment:i}:f=d.buildFragment(a,this,k),h=f.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&d.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)e.call(c?$(this[l],g):this[l],f.cacheable||m>1&&l<n?d.clone(h,!0,!0):h)}k.length&&d.each(k,bc)}return this}}),d.buildFragment=function(a,b,e){var f,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]==="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!X.test(a[0])&&(d.support.checkClone||!Y.test(a[0]))&&(g=!0,h=d.fragments[a[0]],h&&(h!==1&&(f=h))),f||(f=i.createDocumentFragment(),d.clean(a,i,f,e)),g&&(d.fragments[a[0]]=h?f:1);return{fragment:f,cacheable:g}},d.fragments={},d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){d.fn[a]=function(c){var e=[],f=d(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&f.length===1){f[b](this[0]);return this}for(var h=0,i=f.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){ba(a,e),f=bb(a),g=bb(e);for(h=0;f[h];++h)ba(f[h],g[h])}if(b){_(a,e);if(c){f=bb(a),g=bb(e);for(h=0;f[h];++h)_(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||W.test(i)){if(typeof i==="string"){i=i.replace(T,"<$1></$2>");var j=(U.exec(i)||["",""])[1].toLowerCase(),k=Z[j]||Z._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=V.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]==="<table>"&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&S.test(i)&&m.insertBefore(b.createTextNode(S.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bd=/alpha\([^)]*\)/i,be=/opacity=([^)]*)/,bf=/-([a-z])/ig,bg=/([A-Z]|^ms)/g,bh=/^-?\d+(?:px)?$/i,bi=/^-?\d/,bj={position:"absolute",visibility:"hidden",display:"block"},bk=["Left","Right"],bl=["Top","Bottom"],bm,bn,bo,bp=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bm(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bm)return bm(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bf,bp)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bq(a,b,e):d.swap(a,bj,function(){f=bq(a,b,e)});if(f<=0){f=bm(a,b,b),f==="0px"&&bo&&(f=bo(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bh.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return be.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bd.test(f)?f.replace(bd,e):c.filter+" "+e}}),d(function(){d.support.reliableMarginRight||(d.cssHooks.marginRight={get:function(a,b){var c;d.swap(a,{display:"inline-block"},function(){b?c=bm(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bn=function(a,c,e){var f,g,h;e=e.replace(bg,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bo=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bh.test(d)&&bi.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bm=bn||bo,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var br=/%20/g,bs=/\[\]$/,bt=/\r?\n/g,bu=/#.*$/,bv=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bw=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bx=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,by=/^(?:GET|HEAD)$/,bz=/^\/\//,bA=/\?/,bB=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bC=/^(?:select|textarea)/i,bD=/\s+/,bE=/([?&])_=[^&]*/,bF=/(^|\-)([a-z])/g,bG=function(a,b,c){return b+c.toUpperCase()},bH=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bI=d.fn.load,bJ={},bK={},bL,bM;try{bL=c.location.href}catch(bN){bL=c.createElement("a"),bL.href="",bL=bL.href}bM=bH.exec(bL.toLowerCase())||[],d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bI)return bI.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("<div>").append(c.replace(bB,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bC.test(this.nodeName)||bw.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(bt,"\r\n")}}):{name:b.name,value:c.replace(bt,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bL,isLocal:bx.test(bM[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bO(bJ),ajaxTransport:bO(bK),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bR(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bS(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bF,bG)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bv.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bu,"").replace(bz,bM[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bD),e.crossDomain==null&&(q=bH.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bM[1]||q[2]!=bM[2]||(q[3]||(q[1]==="http:"?80:443))!=(bM[3]||(bM[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bP(bJ,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!by.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(bA.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bE,"$1_="+w);e.url=x+(x===e.url?(bA.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bP(bK,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bQ(g,a[g],c,f);return e.join("&").replace(br,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bT=d.now(),bU=/(\=)\?(&|$)|\?\?/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bT++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bU.test(b.url)||f&&bU.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bU,l),b.url===j&&(f&&(k=k.replace(bU,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bV=d.now(),bW,bX;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bZ()||b$()}:bZ,bX=d.ajaxSettings.xhr(),d.support.ajax=!!bX,d.support.cors=bX&&"withCredentials"in bX,bX=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),!a.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bW[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bW||(bW={},bY()),h=bV++,g.onreadystatechange=bW[h]=c):c()},abort:function(){c&&c(0,1)}}}});var b_={},ca=/^(?:toggle|show|hide)$/,cb=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cc,cd=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(ce("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)e=this[g],f=e.style.display,!d._data(e,"olddisplay")&&f==="none"&&(f=e.style.display=""),f===""&&d.css(e,"display")==="none"&&d._data(e,"olddisplay",cf(e.nodeName));for(g=0;g<h;g++){e=this[g],f=e.style.display;if(f===""||f==="none")e.style.display=d._data(e,"olddisplay")||""}return this},hide:function(a,b,c){if(a||a===0)return this.animate(ce("hide",3),a,b,c);for(var e=0,f=this.length;e<f;e++){var g=d.css(this[e],"display");g!=="none"&&!d._data(this[e],"olddisplay")&&d._data(this[e],"olddisplay",g)}for(e=0;e<f;e++)this[e].style.display="none";return this},_toggle:d.fn.toggle,toggle:function(a,b,c){var e=typeof a==="boolean";d.isFunction(a)&&d.isFunction(b)?this._toggle.apply(this,arguments):a==null||e?this.each(function(){var b=e?a:d(this).is(":hidden");d(this)[b?"show":"hide"]()}):this.animate(ce("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,e){var f=d.speed(b,c,e);if(d.isEmptyObject(a))return this.each(f.complete);return this[f.queue===!1?"each":"queue"](function(){var b=d.extend({},f),c,e=this.nodeType===1,g=e&&d(this).is(":hidden"),h=this;for(c in a){var i=d.camelCase(c);c!==i&&(a[i]=a[c],delete a[c],c=i);if(a[c]==="hide"&&g||a[c]==="show"&&!g)return b.complete.call(this);if(e&&(c==="height"||c==="width")){b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(d.css(this,"display")==="inline"&&d.css(this,"float")==="none")if(d.support.inlineBlockNeedsLayout){var j=cf(this.nodeName);j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)}else this.style.display="inline-block"}d.isArray(a[c])&&((b.specialEasing=b.specialEasing||{})[c]=a[c][1],a[c]=a[c][0])}b.overflow!=null&&(this.style.overflow="hidden"),b.curAnim=d.extend({},a),d.each(a,function(c,e){var f=new d.fx(h,b,c);if(ca.test(e))f[e==="toggle"?g?"show":"hide":e](a);else{var i=cb.exec(e),j=f.cur();if(i){var k=parseFloat(i[2]),l=i[3]||(d.cssNumber[c]?"":"px");l!=="px"&&(d.style(h,c,(k||1)+l),j=(k||1)/f.cur()*j,d.style(h,c,j+l)),i[1]&&(k=(i[1]==="-="?-1:1)*k+j),f.custom(j,k,l)}else f.custom(j,e,"")}});return!0})},stop:function(a,b){var c=d.timers;a&&this.queue([]),this.each(function(){for(var a=c.length-1;a>=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:ce("show",1),slideUp:ce("hide",1),slideToggle:ce("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!cc&&(cc=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||d.fx.stop()},interval:13,stop:function(){clearInterval(cc),cc=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){d.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),d.expr&&d.expr.filters&&(d.expr.filters.animated=function(a){return d.grep(d.timers,function(b){return a===b.elem}).length});var cg=/^t(?:able|d|h)$/i,ch=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?d.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,g=f.documentElement;if(!c||!d.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=f.body,i=ci(f),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||d.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||d.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:d.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);d.offset.initialize();var c,e=b.offsetParent,f=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(d.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===e&&(l+=b.offsetTop,m+=b.offsetLeft,d.offset.doesNotAddBorder&&(!d.offset.doesAddBorderForTableAndCells||!cg.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),f=e,e=b.offsetParent),d.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;d.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},d.offset={initialize:function(){var a=c.body,b=c.createElement("div"),e,f,g,h,i=parseFloat(d.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=(e==="absolute"||e==="fixed")&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=ch.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!ch.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=ci(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=ci(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window);
\ No newline at end of file
diff --git a/docs/master/modules_list.html b/docs/master/modules_list.html
new file mode 100644
index 000000000..a3b7b61c5
--- /dev/null
+++ b/docs/master/modules_list.html
@@ -0,0 +1,7642 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
+    <base id="base_target" target="_parent" />
+  </head>
+  <body class="frames">
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) {
+        document.getElementById('base_target').target = 'main';
+        document.body.className = 'frames';
+      }
+    </script>
+    <div id="content">
+      <h1 id="full_list_header">
+        <a href="http://elixir-lang.org/" target="_blank">Elixir v0.9.1</a>
+      </h1>
+      <div id="nav">
+        <span class="selected"><a target="_self" href="modules_list.html">
+          Modules
+        </a></span>
+        <span class=""><a target="_self" href="records_list.html">
+          Records
+        </a></span>
+        <span class=""><a target="_self" href="protocols_list.html">
+          Protocols
+        </a></span>
+        <div class="clear"></div>
+      </div>
+      <div id="search">Search: <input type="text" /></div>
+
+      <ul id="full_list" class="class">
+        <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Application.Behaviour.html" title="Application.Behaviour">Application.Behaviour</a>
+  </span>
+  <small class="search_info">Application.Behaviour</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Behaviour.html" title="Behaviour">Behaviour</a>
+  </span>
+  <small class="search_info">Behaviour</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Behaviour.html#defcallback/1">defcallback/1</a>
+      </span>
+      <small class="search_info">Behaviour</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Bitwise.html" title="Bitwise">Bitwise</a>
+  </span>
+  <small class="search_info">Bitwise</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#&amp;&amp;&amp;/2">&amp;&amp;&amp;/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#&lt;&lt;&lt;/2">&lt;&lt;&lt;/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#&gt;&gt;&gt;/2">&gt;&gt;&gt;/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#^^^/2">^^^/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#__using__/1">__using__/1</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#band/2">band/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#bnot/1">bnot/1</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#bor/2">bor/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#bsl/2">bsl/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#bsr/2">bsr/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#bxor/2">bxor/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#|||/2">|||/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#~~~/1">~~~/1</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Code.html" title="Code">Code</a>
+  </span>
+  <small class="search_info">Code</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#append_path/1">append_path/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#compile_quoted/2">compile_quoted/2</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#compile_string/2">compile_string/2</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#compiler_options/0">compiler_options/0</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#compiler_options/1">compiler_options/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#delete_path/1">delete_path/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#ensure_compiled/1">ensure_compiled/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#ensure_compiled?/1">ensure_compiled?/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#ensure_loaded/1">ensure_loaded/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#ensure_loaded?/1">ensure_loaded?/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#eval_quoted/3">eval_quoted/3</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#eval_string/3">eval_string/3</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#load_file/2">load_file/2</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#loaded_files/0">loaded_files/0</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#prepend_path/1">prepend_path/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#require_file/2">require_file/2</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#string_to_ast/2">string_to_ast/2</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#string_to_ast!/2">string_to_ast!/2</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#unload_files/1">unload_files/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dict.html" title="Dict">Dict</a>
+  </span>
+  <small class="search_info">Dict</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#values/1">values/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#update/4">update/4</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#update/3">update/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#to_list/1">to_list/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#take/2">take/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#split/2">split/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#size/1">size/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#put_new/3">put_new/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#put/3">put/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#pop/3">pop/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#pop/2">pop/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#merge/3">merge/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#merge/2">merge/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#keys/1">keys/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#has_key?/2">has_key?/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#get/3">get/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#get/2">get/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#equal?/2">equal?/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#empty/1">empty/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#drop/2">drop/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#delete/2">delete/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#delete/2">delete/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#drop/2">drop/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#empty/1">empty/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#equal?/2">equal?/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#fetch/2">fetch/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#fetch!/2">fetch!/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#get/3">get/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#has_key?/2">has_key?/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#keys/1">keys/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#merge/2">merge/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#merge/3">merge/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#pop/3">pop/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#put/3">put/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#put_new/3">put_new/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#size/1">size/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#split/2">split/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#take/2">take/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#to_list/1">to_list/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#update/3">update/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#update/4">update/4</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#values/1">values/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="EEx.html" title="EEx">EEx</a>
+  </span>
+  <small class="search_info">EEx</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="EEx.AssignsEngine.html" title="EEx.AssignsEngine">AssignsEngine</a>
+  </span>
+  <small class="search_info">EEx.AssignsEngine</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="EEx.Engine.html" title="EEx.Engine">Engine</a>
+  </span>
+  <small class="search_info">EEx.Engine</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.Engine.html#behaviour_info/1">behaviour_info/1</a>
+      </span>
+      <small class="search_info">EEx.Engine</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.Engine.html#handle_expr/3">handle_expr/3</a>
+      </span>
+      <small class="search_info">EEx.Engine</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.Engine.html#handle_text/2">handle_text/2</a>
+      </span>
+      <small class="search_info">EEx.Engine</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="EEx.SmartEngine.html" title="EEx.SmartEngine">SmartEngine</a>
+  </span>
+  <small class="search_info">EEx.SmartEngine</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.SmartEngine.html#handle_expr/3">handle_expr/3</a>
+      </span>
+      <small class="search_info">EEx.SmartEngine</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.SmartEngine.html#handle_text/2">handle_text/2</a>
+      </span>
+      <small class="search_info">EEx.SmartEngine</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="EEx.TransformerEngine.html" title="EEx.TransformerEngine">TransformerEngine</a>
+  </span>
+  <small class="search_info">EEx.TransformerEngine</small>
+</li>
+<ul>
+  
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.html#compile_file/2">compile_file/2</a>
+      </span>
+      <small class="search_info">EEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.html#compile_string/2">compile_string/2</a>
+      </span>
+      <small class="search_info">EEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.html#eval_file/3">eval_file/3</a>
+      </span>
+      <small class="search_info">EEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.html#eval_string/3">eval_string/3</a>
+      </span>
+      <small class="search_info">EEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.html#function_from_file/5">function_from_file/5</a>
+      </span>
+      <small class="search_info">EEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.html#function_from_string/5">function_from_string/5</a>
+      </span>
+      <small class="search_info">EEx</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Enum.html" title="Enum">Enum</a>
+  </span>
+  <small class="search_info">Enum</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#all?/2">all?/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#any?/2">any?/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#at/3">at/3</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#count/1">count/1</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#count/2">count/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#drop/2">drop/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#drop_while/2">drop_while/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#each/2">each/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#empty?/1">empty?/1</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#fetch/2">fetch/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#fetch!/2">fetch!/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#filter/2">filter/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#filter_map/3">filter_map/3</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#find/3">find/3</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#find_index/2">find_index/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#find_value/3">find_value/3</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#first/1">first/1</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#join/2">join/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#map/2">map/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#map_join/3">map_join/3</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#map_reduce/3">map_reduce/3</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#max/1">max/1</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#max/2">max/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#member?/2">member?/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#min/1">min/1</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#min/2">min/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#partition/2">partition/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#reduce/3">reduce/3</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#reverse/1">reverse/1</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#sort/1">sort/1</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#sort/2">sort/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#split/2">split/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#split_while/2">split_while/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#take/2">take/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#take_while/2">take_while/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#to_list/1">to_list/1</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#uniq/2">uniq/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#zip/2">zip/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.html" title="ExUnit">ExUnit</a>
+  </span>
+  <small class="search_info">ExUnit</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.Assertions.html" title="ExUnit.Assertions">Assertions</a>
+  </span>
+  <small class="search_info">ExUnit.Assertions</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#assert/1">assert/1</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#assert/2">assert/2</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#assert/4">assert/4</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#assert_in_delta/4">assert_in_delta/4</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#assert_raise/2">assert_raise/2</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#assert_raise/3">assert_raise/3</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#assert_receive/3">assert_receive/3</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#assert_received/2">assert_received/2</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#catch_error/1">catch_error/1</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#catch_exit/1">catch_exit/1</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#catch_throw/1">catch_throw/1</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#flunk/1">flunk/1</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#refute/1">refute/1</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#refute/2">refute/2</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#refute_in_delta/4">refute_in_delta/4</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#refute_receive/3">refute_receive/3</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#refute_received/2">refute_received/2</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.CLIFormatter.html" title="ExUnit.CLIFormatter">CLIFormatter</a>
+  </span>
+  <small class="search_info">ExUnit.CLIFormatter</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CLIFormatter.html#case_finished/2">case_finished/2</a>
+      </span>
+      <small class="search_info">ExUnit.CLIFormatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CLIFormatter.html#case_started/2">case_started/2</a>
+      </span>
+      <small class="search_info">ExUnit.CLIFormatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CLIFormatter.html#suite_finished/3">suite_finished/3</a>
+      </span>
+      <small class="search_info">ExUnit.CLIFormatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CLIFormatter.html#suite_started/1">suite_started/1</a>
+      </span>
+      <small class="search_info">ExUnit.CLIFormatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CLIFormatter.html#test_finished/2">test_finished/2</a>
+      </span>
+      <small class="search_info">ExUnit.CLIFormatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CLIFormatter.html#test_started/2">test_started/2</a>
+      </span>
+      <small class="search_info">ExUnit.CLIFormatter</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.Callbacks.html" title="ExUnit.Callbacks">Callbacks</a>
+  </span>
+  <small class="search_info">ExUnit.Callbacks</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Callbacks.html#setup/2">setup/2</a>
+      </span>
+      <small class="search_info">ExUnit.Callbacks</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Callbacks.html#setup_all/2">setup_all/2</a>
+      </span>
+      <small class="search_info">ExUnit.Callbacks</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Callbacks.html#teardown/2">teardown/2</a>
+      </span>
+      <small class="search_info">ExUnit.Callbacks</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Callbacks.html#teardown_all/2">teardown_all/2</a>
+      </span>
+      <small class="search_info">ExUnit.Callbacks</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.CaptureIO.html" title="ExUnit.CaptureIO">CaptureIO</a>
+  </span>
+  <small class="search_info">ExUnit.CaptureIO</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CaptureIO.html#capture_io/1">capture_io/1</a>
+      </span>
+      <small class="search_info">ExUnit.CaptureIO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CaptureIO.html#capture_io/2">capture_io/2</a>
+      </span>
+      <small class="search_info">ExUnit.CaptureIO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CaptureIO.html#capture_io/3">capture_io/3</a>
+      </span>
+      <small class="search_info">ExUnit.CaptureIO</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.Case.html" title="ExUnit.Case">Case</a>
+  </span>
+  <small class="search_info">ExUnit.Case</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Case.html#test/3">test/3</a>
+      </span>
+      <small class="search_info">ExUnit.Case</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.CaseTemplate.html" title="ExUnit.CaseTemplate">CaseTemplate</a>
+  </span>
+  <small class="search_info">ExUnit.CaseTemplate</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CaseTemplate.html#using/2">using/2</a>
+      </span>
+      <small class="search_info">ExUnit.CaseTemplate</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.DocTest.html" title="ExUnit.DocTest">DocTest</a>
+  </span>
+  <small class="search_info">ExUnit.DocTest</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.DocTest.html#doctest/2">doctest/2</a>
+      </span>
+      <small class="search_info">ExUnit.DocTest</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.Formatter.html" title="ExUnit.Formatter">Formatter</a>
+  </span>
+  <small class="search_info">ExUnit.Formatter</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Formatter.html#test_finished/2">test_finished/2</a>
+      </span>
+      <small class="search_info">ExUnit.Formatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Formatter.html#test_started/2">test_started/2</a>
+      </span>
+      <small class="search_info">ExUnit.Formatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Formatter.html#case_finished/2">case_finished/2</a>
+      </span>
+      <small class="search_info">ExUnit.Formatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Formatter.html#case_started/2">case_started/2</a>
+      </span>
+      <small class="search_info">ExUnit.Formatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Formatter.html#suite_finished/3">suite_finished/3</a>
+      </span>
+      <small class="search_info">ExUnit.Formatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Formatter.html#suite_started/1">suite_started/1</a>
+      </span>
+      <small class="search_info">ExUnit.Formatter</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.html#configure/1">configure/1</a>
+      </span>
+      <small class="search_info">ExUnit</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.html#run/0">run/0</a>
+      </span>
+      <small class="search_info">ExUnit</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.html#start/1">start/1</a>
+      </span>
+      <small class="search_info">ExUnit</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Exception.html" title="Exception">Exception</a>
+  </span>
+  <small class="search_info">Exception</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Exception.html#format_file_line/3">format_file_line/3</a>
+      </span>
+      <small class="search_info">Exception</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Exception.html#format_stacktrace/1">format_stacktrace/1</a>
+      </span>
+      <small class="search_info">Exception</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Exception.html#format_stacktrace_entry/2">format_stacktrace_entry/2</a>
+      </span>
+      <small class="search_info">Exception</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Exception.html#normalize/1">normalize/1</a>
+      </span>
+      <small class="search_info">Exception</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Exception.html#print_stacktrace/1">print_stacktrace/1</a>
+      </span>
+      <small class="search_info">Exception</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="File.html" title="File">File</a>
+  </span>
+  <small class="search_info">File</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#biniterator/1">biniterator/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#biniterator!/2">biniterator!/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cd/1">cd/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cd!/1">cd!/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cd!/2">cd!/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#close/1">close/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#copy/3">copy/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#copy!/3">copy!/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cp/3">cp/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cp!/3">cp!/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cp_r/3">cp_r/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cp_r!/3">cp_r!/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cwd/0">cwd/0</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cwd!/0">cwd!/0</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#dir?/1">dir?/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#exists?/1">exists?/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#iterator/1">iterator/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#iterator!/2">iterator!/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#ls/1">ls/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#ls!/1">ls!/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#mkdir/1">mkdir/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#mkdir!/1">mkdir!/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#mkdir_p/1">mkdir_p/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#mkdir_p!/1">mkdir_p!/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#open/2">open/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#open/3">open/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#open!/2">open!/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#open!/3">open!/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#read/1">read/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#read!/1">read!/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#regular?/1">regular?/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#rm/1">rm/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#rm!/1">rm!/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#rm_rf/1">rm_rf/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#rm_rf!/1">rm_rf!/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#rmdir/1">rmdir/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#rmdir!/1">rmdir!/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#stat/2">stat/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#stat!/2">stat!/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#touch/2">touch/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#touch!/2">touch!/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#write/3">write/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#write!/3">write!/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#write_stat/3">write_stat/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#write_stat!/3">write_stat!/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="GenEvent.Behaviour.html" title="GenEvent.Behaviour">GenEvent.Behaviour</a>
+  </span>
+  <small class="search_info">GenEvent.Behaviour</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="GenServer.Behaviour.html" title="GenServer.Behaviour">GenServer.Behaviour</a>
+  </span>
+  <small class="search_info">GenServer.Behaviour</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="HashDict.html" title="HashDict">HashDict</a>
+  </span>
+  <small class="search_info">HashDict</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#delete/2">delete/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#drop/2">drop/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#empty/1">empty/1</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#equal?/2">equal?/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#fetch/2">fetch/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#fetch!/2">fetch!/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#get/3">get/3</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#has_key?/2">has_key?/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#keys/1">keys/1</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#merge/3">merge/3</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#new/0">new/0</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#new/1">new/1</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#new/2">new/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#pop/3">pop/3</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#put/3">put/3</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#put_new/3">put_new/3</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#reduce/3">reduce/3</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#size/1">size/1</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#split/2">split/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#take/2">take/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#to_list/1">to_list/1</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#update/3">update/3</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#update/4">update/4</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#values/1">values/1</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="IEx.html" title="IEx">IEx</a>
+  </span>
+  <small class="search_info">IEx</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="IEx.Autocomplete.html" title="IEx.Autocomplete">Autocomplete</a>
+  </span>
+  <small class="search_info">IEx.Autocomplete</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Autocomplete.html#expand/1">expand/1</a>
+      </span>
+      <small class="search_info">IEx.Autocomplete</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="IEx.Helpers.html" title="IEx.Helpers">Helpers</a>
+  </span>
+  <small class="search_info">IEx.Helpers</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#c/2">c/2</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#cd/1">cd/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#flush/0">flush/0</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#h/0">h/0</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#h/1">h/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#import_file/1">import_file/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#l/1">l/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#ls/1">ls/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#m/0">m/0</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#pwd/0">pwd/0</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#r/0">r/0</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#r/1">r/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#s/1">s/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#t/1">t/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#v/0">v/0</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#v/1">v/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="IEx.Options.html" title="IEx.Options">Options</a>
+  </span>
+  <small class="search_info">IEx.Options</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#colors/0">colors/0</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#get/0">get/0</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#get/1">get/1</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#help/1">help/1</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#history_size/0">history_size/0</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#inspect/0">inspect/0</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#list/0">list/0</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#print_help/1">print_help/1</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#set/1">set/1</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#set/2">set/2</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.html#after_spawn/0">after_spawn/0</a>
+      </span>
+      <small class="search_info">IEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.html#after_spawn/1">after_spawn/1</a>
+      </span>
+      <small class="search_info">IEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.html#color/2">color/2</a>
+      </span>
+      <small class="search_info">IEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.html#color_fragment/1">color_fragment/1</a>
+      </span>
+      <small class="search_info">IEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.html#color_reset/0">color_reset/0</a>
+      </span>
+      <small class="search_info">IEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.html#started?/0">started?/0</a>
+      </span>
+      <small class="search_info">IEx</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="IO.html" title="IO">IO</a>
+  </span>
+  <small class="search_info">IO</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="IO.ANSI.html" title="IO.ANSI">ANSI</a>
+  </span>
+  <small class="search_info">IO.ANSI</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#black/0">black/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#black_background/0">black_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#blink_off/0">blink_off/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#blink_rapid/0">blink_rapid/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#blink_slow/0">blink_slow/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#blue/0">blue/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#blue_background/0">blue_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#bright/0">bright/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#conceal/0">conceal/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#crossed_out/0">crossed_out/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#cyan/0">cyan/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#cyan_background/0">cyan_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#default_background/0">default_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#default_color/0">default_color/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#encircled/0">encircled/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#escape/2">escape/2</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#escape_fragment/2">escape_fragment/2</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#faint/0">faint/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_1/0">font_1/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_2/0">font_2/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_3/0">font_3/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_4/0">font_4/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_5/0">font_5/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_6/0">font_6/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_7/0">font_7/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_8/0">font_8/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_9/0">font_9/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#framed/0">framed/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#green/0">green/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#green_background/0">green_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#inverse/0">inverse/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#italic/0">italic/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#magenta/0">magenta/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#magenta_background/0">magenta_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#no_underline/0">no_underline/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#normal/0">normal/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#not_framed_encircled/0">not_framed_encircled/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#not_italic/0">not_italic/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#not_overlined/0">not_overlined/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#overlined/0">overlined/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#primary_font/0">primary_font/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#red/0">red/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#red_background/0">red_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#reset/0">reset/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#reverse/0">reverse/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#terminal?/1">terminal?/1</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#underline/0">underline/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#white/0">white/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#white_background/0">white_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#yellow/0">yellow/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#yellow_background/0">yellow_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#binread/2">binread/2</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#binreadline/1">binreadline/1</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#binwrite/2">binwrite/2</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#getn/2">getn/2</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#getn/3">getn/3</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#gets/2">gets/2</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#inspect/3">inspect/3</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#puts/2">puts/2</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#read/2">read/2</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#readline/1">readline/1</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#write/2">write/2</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Kernel.html" title="Kernel">Kernel</a>
+  </span>
+  <small class="search_info">Kernel</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Kernel.CLI.html" title="Kernel.CLI">CLI</a>
+  </span>
+  <small class="search_info">Kernel.CLI</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.CLI.html#run/2">run/2</a>
+      </span>
+      <small class="search_info">Kernel.CLI</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Kernel.ParallelCompiler.html" title="Kernel.ParallelCompiler">ParallelCompiler</a>
+  </span>
+  <small class="search_info">Kernel.ParallelCompiler</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.ParallelCompiler.html#files/2">files/2</a>
+      </span>
+      <small class="search_info">Kernel.ParallelCompiler</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.ParallelCompiler.html#files_to_path/3">files_to_path/3</a>
+      </span>
+      <small class="search_info">Kernel.ParallelCompiler</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Kernel.ParallelRequire.html" title="Kernel.ParallelRequire">ParallelRequire</a>
+  </span>
+  <small class="search_info">Kernel.ParallelRequire</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.ParallelRequire.html#files/2">files/2</a>
+      </span>
+      <small class="search_info">Kernel.ParallelRequire</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Kernel.SpecialForms.html" title="Kernel.SpecialForms">SpecialForms</a>
+  </span>
+  <small class="search_info">Kernel.SpecialForms</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#&lt;&lt;&gt;&gt;/1">&lt;&lt;&gt;&gt;/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#[]/1">[]/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#__DIR__/0">__DIR__/0</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#__ENV__/0">__ENV__/0</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#__FILE__/0">__FILE__/0</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#__MODULE__/0">__MODULE__/0</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#__aliases__/1">__aliases__/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#__block__/1">__block__/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#__scope__/2">__scope__/2</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#alias/2">alias/2</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#alias!/1">alias!/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#bc/1">bc/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#import/2">import/2</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#lc/1">lc/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#quote/2">quote/2</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#require/2">require/2</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#unquote/1">unquote/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#unquote_splicing/1">unquote_splicing/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#var!/1">var!/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#var!/2">var!/2</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#{}/1">{}/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Kernel.Typespec.html" title="Kernel.Typespec">Typespec</a>
+  </span>
+  <small class="search_info">Kernel.Typespec</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#beam_callbacks/1">beam_callbacks/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#beam_specs/1">beam_specs/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#beam_types/1">beam_types/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#defcallback/1">defcallback/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#define_callback/3">define_callback/3</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#define_spec/3">define_spec/3</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#define_type/3">define_type/3</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#defines_callback?/3">defines_callback?/3</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#defines_spec?/3">defines_spec?/3</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#defines_type?/3">defines_type?/3</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#defopaque/1">defopaque/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#defspec/1">defspec/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#deftype/1">deftype/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#deftypep/1">deftypep/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#spec_to_ast/2">spec_to_ast/2</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#type_to_ast/1">type_to_ast/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#!/1">!/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#!=/2">!=/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#!==/2">!==/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#&amp;&amp;/2">&amp;&amp;/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#*/2">*/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#+/2">+/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#++/2">++/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#-/2">-/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#--/2">--/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#../2">../2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#//2">//2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#&lt;/2">&lt;/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#&lt;-/2">&lt;-/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#&lt;=/2">&lt;=/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#&lt;&gt;/2">&lt;&gt;/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#==/2">==/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#===/2">===/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#=~/2">=~/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#&gt;/2">&gt;/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#&gt;=/2">&gt;=/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#@/1">@/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#__B__/2">__B__/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#__C__/2">__C__/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#__R__/2">__R__/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#__W__/2">__W__/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#__b__/2">__b__/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#__c__/2">__c__/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#__r__/2">__r__/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#__w__/2">__w__/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#abs/1">abs/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#access/2">access/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#and/2">and/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#apply/2">apply/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#apply/3">apply/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#atom_to_binary/1">atom_to_binary/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#atom_to_binary/2">atom_to_binary/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#atom_to_list/1">atom_to_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_part/3">binary_part/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_atom/1">binary_to_atom/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_atom/2">binary_to_atom/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_existing_atom/1">binary_to_existing_atom/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_existing_atom/2">binary_to_existing_atom/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_float/1">binary_to_float/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_integer/1">binary_to_integer/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_integer/2">binary_to_integer/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_list/1">binary_to_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_list/3">binary_to_list/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_term/1">binary_to_term/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_term/2">binary_to_term/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#bit_size/1">bit_size/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#bitstring_to_list/1">bitstring_to_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#byte_size/1">byte_size/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#case/2">case/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#cond/1">cond/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#def/2">def/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#def/4">def/4</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defdelegate/2">defdelegate/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defexception/4">defexception/4</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defimpl/3">defimpl/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defmacro/2">defmacro/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defmacro/4">defmacro/4</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defmacrop/2">defmacrop/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defmacrop/4">defmacrop/4</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defmodule/2">defmodule/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defoverridable/1">defoverridable/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defp/2">defp/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defp/4">defp/4</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defprotocol/2">defprotocol/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defrecord/3">defrecord/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defrecordp/2">defrecordp/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#delete_elem/2">delete_elem/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#destructure/2">destructure/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#div/2">div/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#elem/2">elem/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#exit/1">exit/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#float/1">float/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#float_to_binary/1">float_to_binary/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#float_to_binary/2">float_to_binary/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#float_to_list/1">float_to_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#float_to_list/2">float_to_list/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#function/1">function/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#function/3">function/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#function_exported?/3">function_exported?/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#hd/1">hd/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#if/2">if/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#in/2">in/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#insert_elem/3">insert_elem/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#integer_to_binary/1">integer_to_binary/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#integer_to_binary/2">integer_to_binary/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#integer_to_list/1">integer_to_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#integer_to_list/2">integer_to_list/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#iolist_size/1">iolist_size/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#iolist_to_binary/1">iolist_to_binary/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_alive/0">is_alive/0</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_atom/1">is_atom/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_binary/1">is_binary/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_bitstring/1">is_bitstring/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_boolean/1">is_boolean/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_exception/1">is_exception/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_float/1">is_float/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_function/1">is_function/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_function/2">is_function/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_integer/1">is_integer/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_list/1">is_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_number/1">is_number/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_pid/1">is_pid/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_port/1">is_port/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_range/1">is_range/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_record/1">is_record/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_record/2">is_record/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_reference/1">is_reference/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_regex/1">is_regex/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_tuple/1">is_tuple/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#length/1">length/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_atom/1">list_to_atom/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_binary/1">list_to_binary/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_bitstring/1">list_to_bitstring/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_existing_atom/1">list_to_existing_atom/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_float/1">list_to_float/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_integer/1">list_to_integer/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_integer/2">list_to_integer/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_pid/1">list_to_pid/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_tuple/1">list_to_tuple/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#macro_exported?/3">macro_exported?/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#make_ref/0">make_ref/0</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#match?/2">match?/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#max/2">max/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#min/2">min/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#nil?/1">nil?/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#node/0">node/0</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#node/1">node/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#not/1">not/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#or/2">or/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#pid_to_list/1">pid_to_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#raise/1">raise/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#raise/2">raise/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#raise/3">raise/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#receive/1">receive/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#rem/2">rem/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#round/1">round/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#self/0">self/0</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#set_elem/3">set_elem/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#size/1">size/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#spawn/1">spawn/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#spawn/3">spawn/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#spawn_link/1">spawn_link/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#spawn_link/3">spawn_link/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#term_to_binary/1">term_to_binary/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#term_to_binary/2">term_to_binary/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#throw/1">throw/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#tl/1">tl/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#to_binary/1">to_binary/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#to_char_list/1">to_char_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#trunc/1">trunc/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#try/1">try/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#tuple_size/1">tuple_size/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#tuple_to_list/1">tuple_to_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#unless/2">unless/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#use/2">use/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#xor/2">xor/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#|&gt;/2">|&gt;/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#||/2">||/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Keyword.html" title="Keyword">Keyword</a>
+  </span>
+  <small class="search_info">Keyword</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#delete/2">delete/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#delete_first/2">delete_first/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#equal?/2">equal?/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#fetch/2">fetch/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#fetch!/2">fetch!/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#from_enum/1">from_enum/1</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#get/3">get/3</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#get_values/2">get_values/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#has_key?/2">has_key?/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#keys/1">keys/1</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#keyword?/1">keyword?/1</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#merge/2">merge/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#merge/3">merge/3</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#new/0">new/0</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#new/1">new/1</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#new/2">new/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#put/3">put/3</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#put_new/3">put_new/3</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#update/3">update/3</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#update/4">update/4</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#values/1">values/1</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="List.html" title="List">List</a>
+  </span>
+  <small class="search_info">List</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#concat/1">concat/1</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#concat/2">concat/2</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#delete/2">delete/2</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#duplicate/2">duplicate/2</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#flatten/1">flatten/1</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#flatten/2">flatten/2</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#foldl/3">foldl/3</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#foldr/3">foldr/3</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#insert_at/3">insert_at/3</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#keydelete/3">keydelete/3</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#keyfind/4">keyfind/4</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#keymember?/3">keymember?/3</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#keyreplace/4">keyreplace/4</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#keystore/4">keystore/4</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#last/1">last/1</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#unzip/1">unzip/1</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#wrap/1">wrap/1</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#zip/1">zip/1</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ListDict.html" title="ListDict">ListDict</a>
+  </span>
+  <small class="search_info">ListDict</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#delete/2">delete/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#drop/2">drop/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#empty/1">empty/1</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#equal?/2">equal?/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#fetch/2">fetch/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#fetch!/2">fetch!/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#get/3">get/3</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#has_key?/2">has_key?/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#keys/1">keys/1</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#merge/3">merge/3</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#new/0">new/0</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#new/1">new/1</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#new/2">new/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#pop/3">pop/3</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#put/3">put/3</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#put_new/3">put_new/3</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#size/1">size/1</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#split/2">split/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#take/2">take/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#to_list/1">to_list/1</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#update/3">update/3</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#update/4">update/4</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#values/1">values/1</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Macro.html" title="Macro">Macro</a>
+  </span>
+  <small class="search_info">Macro</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#binary_ops/0">binary_ops/0</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#escape/1">escape/1</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#expand/2">expand/2</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#extract_args/1">extract_args/1</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#safe_term/1">safe_term/1</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#to_binary/1">to_binary/1</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#unary_ops/0">unary_ops/0</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#unescape_binary/1">unescape_binary/1</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#unescape_binary/2">unescape_binary/2</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#unescape_tokens/1">unescape_tokens/1</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#unescape_tokens/2">unescape_tokens/2</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.html" title="Mix">Mix</a>
+  </span>
+  <small class="search_info">Mix</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Deps.html" title="Mix.Deps">Deps</a>
+  </span>
+  <small class="search_info">Mix.Deps</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#all/0">all/0</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#all/2">all/2</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#available?/1">available?/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#by_name/2">by_name/2</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#check_lock/2">check_lock/2</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#children/0">children/0</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#compile_paths/1">compile_paths/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#depending/2">depending/2</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#format_dep/1">format_dep/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#format_status/1">format_status/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#in_dependency/3">in_dependency/3</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#in_umbrella?/2">in_umbrella?/2</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#load_paths/1">load_paths/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#make?/1">make?/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#mix?/1">mix?/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#ok?/1">ok?/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#out_of_date?/1">out_of_date?/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#rebar?/1">rebar?/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#update/1">update/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Generator.html" title="Mix.Generator">Generator</a>
+  </span>
+  <small class="search_info">Mix.Generator</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Generator.html#create_directory/1">create_directory/1</a>
+      </span>
+      <small class="search_info">Mix.Generator</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Generator.html#create_file/2">create_file/2</a>
+      </span>
+      <small class="search_info">Mix.Generator</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Generator.html#embed_template/2">embed_template/2</a>
+      </span>
+      <small class="search_info">Mix.Generator</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Generator.html#embed_text/2">embed_text/2</a>
+      </span>
+      <small class="search_info">Mix.Generator</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Generator.html#from_file/1">from_file/1</a>
+      </span>
+      <small class="search_info">Mix.Generator</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Local.html" title="Mix.Local">Local</a>
+  </span>
+  <small class="search_info">Mix.Local</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Local.html#all_tasks/0">all_tasks/0</a>
+      </span>
+      <small class="search_info">Mix.Local</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Local.html#append_paths/0">append_paths/0</a>
+      </span>
+      <small class="search_info">Mix.Local</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Local.html#append_tasks/0">append_tasks/0</a>
+      </span>
+      <small class="search_info">Mix.Local</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Local.html#tasks_path/0">tasks_path/0</a>
+      </span>
+      <small class="search_info">Mix.Local</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Project.html" title="Mix.Project">Project</a>
+  </span>
+  <small class="search_info">Mix.Project</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#apps_path/0">apps_path/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#compile_paths/0">compile_paths/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#config/0">config/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#config_files/0">config_files/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#get/0">get/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#get!/0">get!/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#in_project/4">in_project/4</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#load_paths/0">load_paths/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#recur/1">recur/1</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#refresh/0">refresh/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#umbrella?/0">umbrella?/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.SCM.html" title="Mix.SCM">SCM</a>
+  </span>
+  <small class="search_info">Mix.SCM</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#clean/1">clean/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#equal?/2">equal?/2</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#matches_lock?/1">matches_lock?/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#update/1">update/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#checkout/1">checkout/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#checked_out?/1">checked_out?/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#accepts_options/1">accepts_options/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#format_lock/1">format_lock/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#format/1">format/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#available/0">available/0</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#register/1">register/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#register_builtin/0">register_builtin/0</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Shell.html" title="Mix.Shell">Shell</a>
+  </span>
+  <small class="search_info">Mix.Shell</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.html#cmd/1">cmd/1</a>
+      </span>
+      <small class="search_info">Mix.Shell</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.html#yes?/1">yes?/1</a>
+      </span>
+      <small class="search_info">Mix.Shell</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.html#error/1">error/1</a>
+      </span>
+      <small class="search_info">Mix.Shell</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.html#info/1">info/1</a>
+      </span>
+      <small class="search_info">Mix.Shell</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.html#cmd/2">cmd/2</a>
+      </span>
+      <small class="search_info">Mix.Shell</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.html#output_app?/0">output_app?/0</a>
+      </span>
+      <small class="search_info">Mix.Shell</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Shell.IO.html" title="Mix.Shell.IO">Shell.IO</a>
+  </span>
+  <small class="search_info">Mix.Shell.IO</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.IO.html#cmd/1">cmd/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.IO.html#error/1">error/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.IO.html#info/1">info/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.IO.html#put_app/0">put_app/0</a>
+      </span>
+      <small class="search_info">Mix.Shell.IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.IO.html#yes?/1">yes?/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.IO</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Shell.Process.html" title="Mix.Shell.Process">Shell.Process</a>
+  </span>
+  <small class="search_info">Mix.Shell.Process</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.Process.html#cmd/1">cmd/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.Process.html#error/1">error/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.Process.html#flush/1">flush/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.Process.html#info/1">info/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.Process.html#put_app/0">put_app/0</a>
+      </span>
+      <small class="search_info">Mix.Shell.Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.Process.html#yes?/1">yes?/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.Process</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Task.html" title="Mix.Task">Task</a>
+  </span>
+  <small class="search_info">Mix.Task</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#all_modules/0">all_modules/0</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#clear/0">clear/0</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#get/1">get/1</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#hidden?/1">hidden?/1</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#load_all/0">load_all/0</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#moduledoc/1">moduledoc/1</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#recursive?/1">recursive?/1</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#reenable/1">reenable/1</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#run/2">run/2</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#shortdoc/1">shortdoc/1</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#task_name/1">task_name/1</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.App.Start.html" title="Mix.Tasks.App.Start">Tasks.App.Start</a>
+  </span>
+  <small class="search_info">Mix.Tasks.App.Start</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.App.Start.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.App.Start</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Clean.html" title="Mix.Tasks.Clean">Tasks.Clean</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Clean</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Clean.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Clean</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Compile.html" title="Mix.Tasks.Compile">Tasks.Compile</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Compile</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Compile.App.html" title="Mix.Tasks.Compile.App">Tasks.Compile.App</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Compile.App</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.App.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile.App</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Compile.Elixir.html" title="Mix.Tasks.Compile.Elixir">Tasks.Compile.Elixir</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Compile.Elixir</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.Elixir.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile.Elixir</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Compile.Erlang.html" title="Mix.Tasks.Compile.Erlang">Tasks.Compile.Erlang</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Compile.Erlang</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.Erlang.html#extract_stale_pairs/5">extract_stale_pairs/5</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile.Erlang</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.Erlang.html#interpret_result/3">interpret_result/3</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile.Erlang</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.Erlang.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile.Erlang</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.Erlang.html#to_erl_file/1">to_erl_file/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile.Erlang</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Compile.Leex.html" title="Mix.Tasks.Compile.Leex">Tasks.Compile.Leex</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Compile.Leex</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.Leex.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile.Leex</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Compile.Yecc.html" title="Mix.Tasks.Compile.Yecc">Tasks.Compile.Yecc</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Compile.Yecc</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.Yecc.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile.Yecc</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Deps.html" title="Mix.Tasks.Deps">Tasks.Deps</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Deps</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Deps.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Deps</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Deps.Check.html" title="Mix.Tasks.Deps.Check">Tasks.Deps.Check</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Deps.Check</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Deps.Check.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Deps.Check</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Deps.Clean.html" title="Mix.Tasks.Deps.Clean">Tasks.Deps.Clean</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Deps.Clean</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Deps.Clean.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Deps.Clean</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Deps.Compile.html" title="Mix.Tasks.Deps.Compile">Tasks.Deps.Compile</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Deps.Compile</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Deps.Compile.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Deps.Compile</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Deps.Get.html" title="Mix.Tasks.Deps.Get">Tasks.Deps.Get</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Deps.Get</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Deps.Get.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Deps.Get</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Deps.Loadpaths.html" title="Mix.Tasks.Deps.Loadpaths">Tasks.Deps.Loadpaths</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Deps.Loadpaths</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Deps.Loadpaths.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Deps.Loadpaths</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Deps.Unlock.html" title="Mix.Tasks.Deps.Unlock">Tasks.Deps.Unlock</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Deps.Unlock</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Deps.Unlock.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Deps.Unlock</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Deps.Update.html" title="Mix.Tasks.Deps.Update">Tasks.Deps.Update</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Deps.Update</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Deps.Update.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Deps.Update</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Do.html" title="Mix.Tasks.Do">Tasks.Do</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Do</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Do.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Do</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Escriptize.html" title="Mix.Tasks.Escriptize">Tasks.Escriptize</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Escriptize</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Escriptize.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Escriptize</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Help.html" title="Mix.Tasks.Help">Tasks.Help</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Help</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Help.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Help</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Loadpaths.html" title="Mix.Tasks.Loadpaths">Tasks.Loadpaths</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Loadpaths</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Loadpaths.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Loadpaths</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Local.html" title="Mix.Tasks.Local">Tasks.Local</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Local</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Local.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Local</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Local.Install.html" title="Mix.Tasks.Local.Install">Tasks.Local.Install</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Local.Install</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Local.Install.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Local.Install</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Local.Rebar.html" title="Mix.Tasks.Local.Rebar">Tasks.Local.Rebar</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Local.Rebar</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Local.Rebar.html#local_rebar_path/0">local_rebar_path/0</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Local.Rebar</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Local.Rebar.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Local.Rebar</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Local.Uninstall.html" title="Mix.Tasks.Local.Uninstall">Tasks.Local.Uninstall</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Local.Uninstall</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Local.Uninstall.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Local.Uninstall</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.New.html" title="Mix.Tasks.New">Tasks.New</a>
+  </span>
+  <small class="search_info">Mix.Tasks.New</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.New.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.New</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Run.html" title="Mix.Tasks.Run">Tasks.Run</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Run</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Run.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Run</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Test.html" title="Mix.Tasks.Test">Tasks.Test</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Test</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Test.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Test</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Utils.html" title="Mix.Utils">Utils</a>
+  </span>
+  <small class="search_info">Mix.Utils</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#camelize/1">camelize/1</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#command_to_module/2">command_to_module/2</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#command_to_module_name/1">command_to_module_name/1</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#config_merge/2">config_merge/2</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#extract_files/2">extract_files/2</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#extract_stale/2">extract_stale/2</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#manifest/2">manifest/2</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#mix_home/0">mix_home/0</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#mix_path/0">mix_path/0</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#module_name_to_command/2">module_name_to_command/2</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#read_path/1">read_path/1</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#relative_to_cwd/1">relative_to_cwd/1</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#source/1">source/1</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#stale?/2">stale?/2</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#underscore/1">underscore/1</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.html#env/0">env/0</a>
+      </span>
+      <small class="search_info">Mix</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.html#env/1">env/1</a>
+      </span>
+      <small class="search_info">Mix</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.html#loadpaths/0">loadpaths/0</a>
+      </span>
+      <small class="search_info">Mix</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.html#project/0">project/0</a>
+      </span>
+      <small class="search_info">Mix</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.html#shell/0">shell/0</a>
+      </span>
+      <small class="search_info">Mix</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.html#shell/1">shell/1</a>
+      </span>
+      <small class="search_info">Mix</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Module.html" title="Module">Module</a>
+  </span>
+  <small class="search_info">Module</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#add_doc/6">add_doc/6</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#concat/1">concat/1</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#concat/2">concat/2</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#create/3">create/3</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#defines?/2">defines?/2</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#defines?/3">defines?/3</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#definitions_in/1">definitions_in/1</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#definitions_in/2">definitions_in/2</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#delete_attribute/2">delete_attribute/2</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#eval_quoted/4">eval_quoted/4</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#get_attribute/2">get_attribute/2</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#make_overridable/2">make_overridable/2</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#open?/1">open?/1</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#overridable?/2">overridable?/2</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#put_attribute/3">put_attribute/3</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#register_attribute/3">register_attribute/3</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#safe_concat/1">safe_concat/1</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#safe_concat/2">safe_concat/2</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#split/1">split/1</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#to_binary/1">to_binary/1</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Node.html" title="Node">Node</a>
+  </span>
+  <small class="search_info">Node</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#alive?/0">alive?/0</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#connect/1">connect/1</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#disconnect/1">disconnect/1</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#get_cookie/0">get_cookie/0</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#list/0">list/0</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#list/1">list/1</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#monitor/2">monitor/2</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#monitor/3">monitor/3</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#self/0">self/0</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#set_cookie/2">set_cookie/2</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#spawn/2">spawn/2</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#spawn/3">spawn/3</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#spawn/4">spawn/4</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#spawn/5">spawn/5</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#spawn_link/2">spawn_link/2</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#spawn_link/4">spawn_link/4</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="OptionParser.html" title="OptionParser">OptionParser</a>
+  </span>
+  <small class="search_info">OptionParser</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="OptionParser.html#parse/2">parse/2</a>
+      </span>
+      <small class="search_info">OptionParser</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="OptionParser.html#parse_head/2">parse_head/2</a>
+      </span>
+      <small class="search_info">OptionParser</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Path.html" title="Path">Path</a>
+  </span>
+  <small class="search_info">Path</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#absname/1">absname/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#absname/2">absname/2</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#basename/1">basename/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#basename/2">basename/2</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#dirname/1">dirname/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#expand/1">expand/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#expand/2">expand/2</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#extname/1">extname/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#join/1">join/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#join/2">join/2</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#relative/1">relative/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#relative_to/2">relative_to/2</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#rootname/1">rootname/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#rootname/2">rootname/2</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#split/1">split/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#type/1">type/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#wildcard/1">wildcard/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Port.html" title="Port">Port</a>
+  </span>
+  <small class="search_info">Port</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#call/3">call/3</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#close/1">close/1</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#command/3">command/3</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#connect/2">connect/2</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#control/3">control/3</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#info/1">info/1</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#info/2">info/2</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#list/0">list/0</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#open/2">open/2</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Process.html" title="Process">Process</a>
+  </span>
+  <small class="search_info">Process</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#alive?/1">alive?/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#delete/0">delete/0</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#delete/1">delete/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#demonitor/2">demonitor/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#exit/2">exit/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#flag/2">flag/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#flag/3">flag/3</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#get/0">get/0</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#get/2">get/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#get_keys/1">get_keys/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#group_leader/0">group_leader/0</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#group_leader/2">group_leader/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#info/1">info/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#info/2">info/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#link/1">link/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#list/0">list/0</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#monitor/1">monitor/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#put/2">put/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#register/2">register/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#registered/0">registered/0</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#spawn/1">spawn/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#spawn/2">spawn/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#spawn/3">spawn/3</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#spawn/4">spawn/4</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#spawn_link/1">spawn_link/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#spawn_link/3">spawn_link/3</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#spawn_monitor/1">spawn_monitor/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#spawn_monitor/3">spawn_monitor/3</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#unlink/1">unlink/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#unregister/1">unregister/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#whereis/1">whereis/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Record.html" title="Record">Record</a>
+  </span>
+  <small class="search_info">Record</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Record.html#deffunctions/2">deffunctions/2</a>
+      </span>
+      <small class="search_info">Record</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Record.html#defmacros/4">defmacros/4</a>
+      </span>
+      <small class="search_info">Record</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Record.html#defrecord/3">defrecord/3</a>
+      </span>
+      <small class="search_info">Record</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Record.html#defrecordp/2">defrecordp/2</a>
+      </span>
+      <small class="search_info">Record</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Record.html#deftypes/3">deftypes/3</a>
+      </span>
+      <small class="search_info">Record</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Record.html#extract/2">extract/2</a>
+      </span>
+      <small class="search_info">Record</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Record.html#import/2">import/2</a>
+      </span>
+      <small class="search_info">Record</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Regex.html" title="Regex">Regex</a>
+  </span>
+  <small class="search_info">Regex</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#captures/3">captures/3</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#compile/2">compile/2</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#compile!/2">compile!/2</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#groups/1">groups/1</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#index/2">index/2</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#match?/2">match?/2</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#opts/1">opts/1</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#re_pattern/1">re_pattern/1</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#replace/4">replace/4</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#run/3">run/3</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#scan/3">scan/3</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#source/1">source/1</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#split/3">split/3</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="String.html" title="String">String</a>
+  </span>
+  <small class="search_info">String</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#at/2">at/2</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#capitalize/1">capitalize/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#codepoints/1">codepoints/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#downcase/1">downcase/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#duplicate/2">duplicate/2</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#ends_with?/2">ends_with?/2</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#first/1">first/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#graphemes/1">graphemes/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#last/1">last/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#length/1">length/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#lstrip/1">lstrip/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#lstrip/2">lstrip/2</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#next_codepoint/1">next_codepoint/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#next_grapheme/1">next_grapheme/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#printable?/1">printable?/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#replace/4">replace/4</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#rstrip/1">rstrip/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#rstrip/2">rstrip/2</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#slice/3">slice/3</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#split/1">split/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#split/3">split/3</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#starts_with?/2">starts_with?/2</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#strip/1">strip/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#strip/2">strip/2</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#to_float/1">to_float/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#to_integer/1">to_integer/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#upcase/1">upcase/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#valid?/1">valid?/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#valid_character?/1">valid_character?/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#valid_codepoint?/1">valid_codepoint?/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Supervisor.Behaviour.html" title="Supervisor.Behaviour">Supervisor.Behaviour</a>
+  </span>
+  <small class="search_info">Supervisor.Behaviour</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Supervisor.Behaviour.html#supervise/2">supervise/2</a>
+      </span>
+      <small class="search_info">Supervisor.Behaviour</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Supervisor.Behaviour.html#supervisor/3">supervisor/3</a>
+      </span>
+      <small class="search_info">Supervisor.Behaviour</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Supervisor.Behaviour.html#worker/3">worker/3</a>
+      </span>
+      <small class="search_info">Supervisor.Behaviour</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="System.html" title="System">System</a>
+  </span>
+  <small class="search_info">System</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#argv/0">argv/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#at_exit/1">at_exit/1</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#build_info/0">build_info/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#cmd/1">cmd/1</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#cwd/0">cwd/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#cwd!/0">cwd!/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#find_executable/1">find_executable/1</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#get_env/0">get_env/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#get_env/1">get_env/1</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#get_pid/0">get_pid/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#halt/2">halt/2</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#put_env/1">put_env/1</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#put_env/2">put_env/2</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#stacktrace/0">stacktrace/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#tmp_dir/0">tmp_dir/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#tmp_dir!/0">tmp_dir!/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#user_home/0">user_home/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#user_home!/0">user_home!/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#version/0">version/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="URI.html" title="URI">URI</a>
+  </span>
+  <small class="search_info">URI</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="URI.FTP.html" title="URI.FTP">FTP</a>
+  </span>
+  <small class="search_info">URI.FTP</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.FTP.html#default_port/0">default_port/0</a>
+      </span>
+      <small class="search_info">URI.FTP</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.FTP.html#parse/1">parse/1</a>
+      </span>
+      <small class="search_info">URI.FTP</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="URI.HTTP.html" title="URI.HTTP">HTTP</a>
+  </span>
+  <small class="search_info">URI.HTTP</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.HTTP.html#default_port/0">default_port/0</a>
+      </span>
+      <small class="search_info">URI.HTTP</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.HTTP.html#parse/1">parse/1</a>
+      </span>
+      <small class="search_info">URI.HTTP</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="URI.HTTPS.html" title="URI.HTTPS">HTTPS</a>
+  </span>
+  <small class="search_info">URI.HTTPS</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.HTTPS.html#default_port/0">default_port/0</a>
+      </span>
+      <small class="search_info">URI.HTTPS</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.HTTPS.html#parse/1">parse/1</a>
+      </span>
+      <small class="search_info">URI.HTTPS</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="URI.LDAP.html" title="URI.LDAP">LDAP</a>
+  </span>
+  <small class="search_info">URI.LDAP</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.LDAP.html#default_port/0">default_port/0</a>
+      </span>
+      <small class="search_info">URI.LDAP</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.LDAP.html#parse/1">parse/1</a>
+      </span>
+      <small class="search_info">URI.LDAP</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="URI.Parser.html" title="URI.Parser">Parser</a>
+  </span>
+  <small class="search_info">URI.Parser</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.Parser.html#default_port/0">default_port/0</a>
+      </span>
+      <small class="search_info">URI.Parser</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.Parser.html#parse/1">parse/1</a>
+      </span>
+      <small class="search_info">URI.Parser</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="URI.SFTP.html" title="URI.SFTP">SFTP</a>
+  </span>
+  <small class="search_info">URI.SFTP</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.SFTP.html#default_port/0">default_port/0</a>
+      </span>
+      <small class="search_info">URI.SFTP</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.SFTP.html#parse/1">parse/1</a>
+      </span>
+      <small class="search_info">URI.SFTP</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="URI.TFTP.html" title="URI.TFTP">TFTP</a>
+  </span>
+  <small class="search_info">URI.TFTP</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.TFTP.html#default_port/0">default_port/0</a>
+      </span>
+      <small class="search_info">URI.TFTP</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.TFTP.html#parse/1">parse/1</a>
+      </span>
+      <small class="search_info">URI.TFTP</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.html#decode/1">decode/1</a>
+      </span>
+      <small class="search_info">URI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.html#decode_query/2">decode_query/2</a>
+      </span>
+      <small class="search_info">URI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.html#encode/1">encode/1</a>
+      </span>
+      <small class="search_info">URI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.html#encode_query/1">encode_query/1</a>
+      </span>
+      <small class="search_info">URI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.html#parse/1">parse/1</a>
+      </span>
+      <small class="search_info">URI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.html#query_decoder/1">query_decoder/1</a>
+      </span>
+      <small class="search_info">URI</small>
+    </li>
+  
+</ul>
+
+      </ul>
+    </div>
+  </body>
+</html>
diff --git a/docs/master/protocols_list.html b/docs/master/protocols_list.html
new file mode 100644
index 000000000..5c25671fa
--- /dev/null
+++ b/docs/master/protocols_list.html
@@ -0,0 +1,736 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
+    <base id="base_target" target="_parent" />
+  </head>
+  <body class="frames">
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) {
+        document.getElementById('base_target').target = 'main';
+        document.body.className = 'frames';
+      }
+    </script>
+    <div id="content">
+      <h1 id="full_list_header">
+        <a href="http://elixir-lang.org/" target="_blank">Elixir v0.9.1</a>
+      </h1>
+      <div id="nav">
+        <span class=""><a target="_self" href="modules_list.html">
+          Modules
+        </a></span>
+        <span class=""><a target="_self" href="records_list.html">
+          Records
+        </a></span>
+        <span class="selected"><a target="_self" href="protocols_list.html">
+          Protocols
+        </a></span>
+        <div class="clear"></div>
+      </div>
+      <div id="search">Search: <input type="text" /></div>
+
+      <ul id="full_list" class="class">
+        <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Access.html" title="Access">Access</a>
+  </span>
+  <small class="search_info">Access</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Access.Atom.html" title="Access.Atom">Atom</a>
+  </span>
+  <small class="search_info">Access.Atom</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Access.Atom.html#access/2">access/2</a>
+      </span>
+      <small class="search_info">Access.Atom</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Access.HashDict.html" title="Access.HashDict">HashDict</a>
+  </span>
+  <small class="search_info">Access.HashDict</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Access.HashDict.html#access/2">access/2</a>
+      </span>
+      <small class="search_info">Access.HashDict</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Access.List.html" title="Access.List">List</a>
+  </span>
+  <small class="search_info">Access.List</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Access.List.html#access/2">access/2</a>
+      </span>
+      <small class="search_info">Access.List</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Access.html#access/2">access/2</a>
+      </span>
+      <small class="search_info">Access</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Chars.html" title="Binary.Chars">Binary.Chars</a>
+  </span>
+  <small class="search_info">Binary.Chars</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Chars.Atom.html" title="Binary.Chars.Atom">Atom</a>
+  </span>
+  <small class="search_info">Binary.Chars.Atom</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Chars.Atom.html#to_binary/1">to_binary/1</a>
+      </span>
+      <small class="search_info">Binary.Chars.Atom</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Chars.BitString.html" title="Binary.Chars.BitString">BitString</a>
+  </span>
+  <small class="search_info">Binary.Chars.BitString</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Chars.BitString.html#to_binary/1">to_binary/1</a>
+      </span>
+      <small class="search_info">Binary.Chars.BitString</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Chars.List.html" title="Binary.Chars.List">List</a>
+  </span>
+  <small class="search_info">Binary.Chars.List</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Chars.List.html#to_binary/1">to_binary/1</a>
+      </span>
+      <small class="search_info">Binary.Chars.List</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Chars.Number.html" title="Binary.Chars.Number">Number</a>
+  </span>
+  <small class="search_info">Binary.Chars.Number</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Chars.Number.html#to_binary/1">to_binary/1</a>
+      </span>
+      <small class="search_info">Binary.Chars.Number</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Chars.html#to_binary/1">to_binary/1</a>
+      </span>
+      <small class="search_info">Binary.Chars</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.html" title="Binary.Inspect">Binary.Inspect</a>
+  </span>
+  <small class="search_info">Binary.Inspect</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Atom.html" title="Binary.Inspect.Atom">Atom</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Atom</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Atom.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Atom</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.BitString.html" title="Binary.Inspect.BitString">BitString</a>
+  </span>
+  <small class="search_info">Binary.Inspect.BitString</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.BitString.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.BitString</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Function.html" title="Binary.Inspect.Function">Function</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Function</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Function.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Function</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.HashDict.html" title="Binary.Inspect.HashDict">HashDict</a>
+  </span>
+  <small class="search_info">Binary.Inspect.HashDict</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.HashDict.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.HashDict</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.List.html" title="Binary.Inspect.List">List</a>
+  </span>
+  <small class="search_info">Binary.Inspect.List</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.List.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.List</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Number.html" title="Binary.Inspect.Number">Number</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Number</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Number.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Number</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.PID.html" title="Binary.Inspect.PID">PID</a>
+  </span>
+  <small class="search_info">Binary.Inspect.PID</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.PID.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.PID</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Port.html" title="Binary.Inspect.Port">Port</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Port</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Port.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Port</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Range.html" title="Binary.Inspect.Range">Range</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Range</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Range.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Range</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Reference.html" title="Binary.Inspect.Reference">Reference</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Reference</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Reference.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Reference</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Regex.html" title="Binary.Inspect.Regex">Regex</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Regex</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Regex.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Regex</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Tuple.html" title="Binary.Inspect.Tuple">Tuple</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Tuple</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Tuple.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Tuple</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Enumerable.html" title="Enumerable">Enumerable</a>
+  </span>
+  <small class="search_info">Enumerable</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Enumerable.Function.html" title="Enumerable.Function">Function</a>
+  </span>
+  <small class="search_info">Enumerable.Function</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.Function.html#count/1">count/1</a>
+      </span>
+      <small class="search_info">Enumerable.Function</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.Function.html#member?/2">member?/2</a>
+      </span>
+      <small class="search_info">Enumerable.Function</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.Function.html#reduce/3">reduce/3</a>
+      </span>
+      <small class="search_info">Enumerable.Function</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Enumerable.HashDict.html" title="Enumerable.HashDict">HashDict</a>
+  </span>
+  <small class="search_info">Enumerable.HashDict</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.HashDict.html#count/1">count/1</a>
+      </span>
+      <small class="search_info">Enumerable.HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.HashDict.html#member?/2">member?/2</a>
+      </span>
+      <small class="search_info">Enumerable.HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.HashDict.html#reduce/3">reduce/3</a>
+      </span>
+      <small class="search_info">Enumerable.HashDict</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Enumerable.List.html" title="Enumerable.List">List</a>
+  </span>
+  <small class="search_info">Enumerable.List</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.List.html#count/1">count/1</a>
+      </span>
+      <small class="search_info">Enumerable.List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.List.html#member?/2">member?/2</a>
+      </span>
+      <small class="search_info">Enumerable.List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.List.html#reduce/3">reduce/3</a>
+      </span>
+      <small class="search_info">Enumerable.List</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Enumerable.Range.html" title="Enumerable.Range">Range</a>
+  </span>
+  <small class="search_info">Enumerable.Range</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.Range.html#count/1">count/1</a>
+      </span>
+      <small class="search_info">Enumerable.Range</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.Range.html#member?/2">member?/2</a>
+      </span>
+      <small class="search_info">Enumerable.Range</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.Range.html#reduce/3">reduce/3</a>
+      </span>
+      <small class="search_info">Enumerable.Range</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.html#count/1">count/1</a>
+      </span>
+      <small class="search_info">Enumerable</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.html#member?/2">member?/2</a>
+      </span>
+      <small class="search_info">Enumerable</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.html#reduce/3">reduce/3</a>
+      </span>
+      <small class="search_info">Enumerable</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="List.Chars.html" title="List.Chars">List.Chars</a>
+  </span>
+  <small class="search_info">List.Chars</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="List.Chars.Atom.html" title="List.Chars.Atom">Atom</a>
+  </span>
+  <small class="search_info">List.Chars.Atom</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="List.Chars.Atom.html#to_char_list/1">to_char_list/1</a>
+      </span>
+      <small class="search_info">List.Chars.Atom</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="List.Chars.BitString.html" title="List.Chars.BitString">BitString</a>
+  </span>
+  <small class="search_info">List.Chars.BitString</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="List.Chars.BitString.html#to_char_list/1">to_char_list/1</a>
+      </span>
+      <small class="search_info">List.Chars.BitString</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="List.Chars.List.html" title="List.Chars.List">List</a>
+  </span>
+  <small class="search_info">List.Chars.List</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="List.Chars.List.html#to_char_list/1">to_char_list/1</a>
+      </span>
+      <small class="search_info">List.Chars.List</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="List.Chars.Number.html" title="List.Chars.Number">Number</a>
+  </span>
+  <small class="search_info">List.Chars.Number</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="List.Chars.Number.html#to_char_list/1">to_char_list/1</a>
+      </span>
+      <small class="search_info">List.Chars.Number</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="List.Chars.html#to_char_list/1">to_char_list/1</a>
+      </span>
+      <small class="search_info">List.Chars</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Range.Iterator.html" title="Range.Iterator">Range.Iterator</a>
+  </span>
+  <small class="search_info">Range.Iterator</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Range.Iterator.Number.html" title="Range.Iterator.Number">Number</a>
+  </span>
+  <small class="search_info">Range.Iterator.Number</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Range.Iterator.Number.html#count/2">count/2</a>
+      </span>
+      <small class="search_info">Range.Iterator.Number</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Range.Iterator.Number.html#reduce/4">reduce/4</a>
+      </span>
+      <small class="search_info">Range.Iterator.Number</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Range.Iterator.html#count/2">count/2</a>
+      </span>
+      <small class="search_info">Range.Iterator</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Range.Iterator.html#reduce/4">reduce/4</a>
+      </span>
+      <small class="search_info">Range.Iterator</small>
+    </li>
+  
+</ul>
+
+      </ul>
+    </div>
+  </body>
+</html>
diff --git a/docs/master/records_list.html b/docs/master/records_list.html
new file mode 100644
index 000000000..93918d46e
--- /dev/null
+++ b/docs/master/records_list.html
@@ -0,0 +1,666 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
+    <base id="base_target" target="_parent" />
+  </head>
+  <body class="frames">
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) {
+        document.getElementById('base_target').target = 'main';
+        document.body.className = 'frames';
+      }
+    </script>
+    <div id="content">
+      <h1 id="full_list_header">
+        <a href="http://elixir-lang.org/" target="_blank">Elixir v0.9.1</a>
+      </h1>
+      <div id="nav">
+        <span class=""><a target="_self" href="modules_list.html">
+          Modules
+        </a></span>
+        <span class="selected"><a target="_self" href="records_list.html">
+          Records
+        </a></span>
+        <span class=""><a target="_self" href="protocols_list.html">
+          Protocols
+        </a></span>
+        <div class="clear"></div>
+      </div>
+      <div id="search">Search: <input type="text" /></div>
+
+      <ul id="full_list" class="class">
+        <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ArgumentError.html" title="ArgumentError">ArgumentError</a>
+  </span>
+  <small class="search_info">ArgumentError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ArithmeticError.html" title="ArithmeticError">ArithmeticError</a>
+  </span>
+  <small class="search_info">ArithmeticError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="BadArityError.html" title="BadArityError">BadArityError</a>
+  </span>
+  <small class="search_info">BadArityError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="BadArityError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">BadArityError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="BadFunctionError.html" title="BadFunctionError">BadFunctionError</a>
+  </span>
+  <small class="search_info">BadFunctionError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="BadFunctionError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">BadFunctionError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="CaseClauseError.html" title="CaseClauseError">CaseClauseError</a>
+  </span>
+  <small class="search_info">CaseClauseError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="CaseClauseError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">CaseClauseError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Code.LoadError.html" title="Code.LoadError">Code.LoadError</a>
+  </span>
+  <small class="search_info">Code.LoadError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.LoadError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">Code.LoadError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="CompileError.html" title="CompileError">CompileError</a>
+  </span>
+  <small class="search_info">CompileError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="CompileError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">CompileError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="EEx.SyntaxError.html" title="EEx.SyntaxError">EEx.SyntaxError</a>
+  </span>
+  <small class="search_info">EEx.SyntaxError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Enum.EmptyError.html" title="Enum.EmptyError">Enum.EmptyError</a>
+  </span>
+  <small class="search_info">Enum.EmptyError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Enum.OutOfBoundsError.html" title="Enum.OutOfBoundsError">Enum.OutOfBoundsError</a>
+  </span>
+  <small class="search_info">Enum.OutOfBoundsError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ErlangError.html" title="ErlangError">ErlangError</a>
+  </span>
+  <small class="search_info">ErlangError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ErlangError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">ErlangError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.AssertionError.html" title="ExUnit.AssertionError">ExUnit.AssertionError</a>
+  </span>
+  <small class="search_info">ExUnit.AssertionError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.DocTest.Error.html" title="ExUnit.DocTest.Error">ExUnit.DocTest.Error</a>
+  </span>
+  <small class="search_info">ExUnit.DocTest.Error</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.ExpectationError.html" title="ExUnit.ExpectationError">ExUnit.ExpectationError</a>
+  </span>
+  <small class="search_info">ExUnit.ExpectationError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.ExpectationError.html#full_reason/1">full_reason/1</a>
+      </span>
+      <small class="search_info">ExUnit.ExpectationError</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.ExpectationError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">ExUnit.ExpectationError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.Test.html" title="ExUnit.Test">ExUnit.Test</a>
+  </span>
+  <small class="search_info">ExUnit.Test</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.TestCase.html" title="ExUnit.TestCase">ExUnit.TestCase</a>
+  </span>
+  <small class="search_info">ExUnit.TestCase</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="File.CopyError.html" title="File.CopyError">File.CopyError</a>
+  </span>
+  <small class="search_info">File.CopyError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="File.CopyError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">File.CopyError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="File.Error.html" title="File.Error">File.Error</a>
+  </span>
+  <small class="search_info">File.Error</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="File.Error.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">File.Error</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="File.IteratorError.html" title="File.IteratorError">File.IteratorError</a>
+  </span>
+  <small class="search_info">File.IteratorError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="File.IteratorError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">File.IteratorError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="File.Stat.html" title="File.Stat">File.Stat</a>
+  </span>
+  <small class="search_info">File.Stat</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="FunctionClauseError.html" title="FunctionClauseError">FunctionClauseError</a>
+  </span>
+  <small class="search_info">FunctionClauseError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="FunctionClauseError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">FunctionClauseError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="KeyError.html" title="KeyError">KeyError</a>
+  </span>
+  <small class="search_info">KeyError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="KeyError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">KeyError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Macro.Env.html" title="Macro.Env">Macro.Env</a>
+  </span>
+  <small class="search_info">Macro.Env</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.Env.html#in_guard?/1">in_guard?/1</a>
+      </span>
+      <small class="search_info">Macro.Env</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.Env.html#in_match?/1">in_match?/1</a>
+      </span>
+      <small class="search_info">Macro.Env</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.Env.html#location/1">location/1</a>
+      </span>
+      <small class="search_info">Macro.Env</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.Env.html#stacktrace/1">stacktrace/1</a>
+      </span>
+      <small class="search_info">Macro.Env</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="MatchError.html" title="MatchError">MatchError</a>
+  </span>
+  <small class="search_info">MatchError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="MatchError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">MatchError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Dep.html" title="Mix.Dep">Mix.Dep</a>
+  </span>
+  <small class="search_info">Mix.Dep</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Error.html" title="Mix.Error">Mix.Error</a>
+  </span>
+  <small class="search_info">Mix.Error</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.InvalidTaskError.html" title="Mix.InvalidTaskError">Mix.InvalidTaskError</a>
+  </span>
+  <small class="search_info">Mix.InvalidTaskError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.InvalidTaskError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">Mix.InvalidTaskError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.NoProjectError.html" title="Mix.NoProjectError">Mix.NoProjectError</a>
+  </span>
+  <small class="search_info">Mix.NoProjectError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.NoTaskError.html" title="Mix.NoTaskError">Mix.NoTaskError</a>
+  </span>
+  <small class="search_info">Mix.NoTaskError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.NoTaskError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">Mix.NoTaskError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.OutOfDateDepsError.html" title="Mix.OutOfDateDepsError">Mix.OutOfDateDepsError</a>
+  </span>
+  <small class="search_info">Mix.OutOfDateDepsError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.OutOfDateDepsError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">Mix.OutOfDateDepsError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Protocol.UndefinedError.html" title="Protocol.UndefinedError">Protocol.UndefinedError</a>
+  </span>
+  <small class="search_info">Protocol.UndefinedError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Protocol.UndefinedError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">Protocol.UndefinedError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Range.html" title="Range">Range</a>
+  </span>
+  <small class="search_info">Range</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Regex.CompileError.html" title="Regex.CompileError">Regex.CompileError</a>
+  </span>
+  <small class="search_info">Regex.CompileError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="RuntimeError.html" title="RuntimeError">RuntimeError</a>
+  </span>
+  <small class="search_info">RuntimeError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="SyntaxError.html" title="SyntaxError">SyntaxError</a>
+  </span>
+  <small class="search_info">SyntaxError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="SyntaxError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">SyntaxError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="System.NoAccessCwdError.html" title="System.NoAccessCwdError">System.NoAccessCwdError</a>
+  </span>
+  <small class="search_info">System.NoAccessCwdError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="System.NoHomeError.html" title="System.NoHomeError">System.NoHomeError</a>
+  </span>
+  <small class="search_info">System.NoHomeError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="System.NoTmpDirError.html" title="System.NoTmpDirError">System.NoTmpDirError</a>
+  </span>
+  <small class="search_info">System.NoTmpDirError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="SystemLimitError.html" title="SystemLimitError">SystemLimitError</a>
+  </span>
+  <small class="search_info">SystemLimitError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="TokenMissingError.html" title="TokenMissingError">TokenMissingError</a>
+  </span>
+  <small class="search_info">TokenMissingError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="TokenMissingError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">TokenMissingError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="UndefinedFunctionError.html" title="UndefinedFunctionError">UndefinedFunctionError</a>
+  </span>
+  <small class="search_info">UndefinedFunctionError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="UndefinedFunctionError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">UndefinedFunctionError</small>
+    </li>
+  
+</ul>
+
+      </ul>
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Access.Atom.html b/docs/stable/Access.Atom.html
new file mode 100644
index 000000000..c535a1011
--- /dev/null
+++ b/docs/stable/Access.Atom.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Access.Atom</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Access.Atom
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/access.ex#L47" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#access/2">access/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="access/2">
+    <strong>access(atom, _)</strong>
+  </p>
+  <div class="docstring"><p>The access protocol can only be accessed by atoms
+at compilation time. If we reach this, we should raise
+an exception.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/access.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Access.HashDict.html b/docs/stable/Access.HashDict.html
new file mode 100644
index 000000000..2e961bbb8
--- /dev/null
+++ b/docs/stable/Access.HashDict.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Access.HashDict</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Access.HashDict
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L587" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#access/2">access/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="access/2">
+    <strong>access(dict, key)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L588" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Access.List.html b/docs/stable/Access.List.html
new file mode 100644
index 000000000..76db701f9
--- /dev/null
+++ b/docs/stable/Access.List.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Access.List</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Access.List
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/access.ex#L22" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#access/2">access/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="access/2">
+    <strong>access(list, key)</strong>
+  </p>
+  <div class="docstring"><p>Access the given key in a tuple list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; keywords = [a: 1, b: 2]
+...&gt; keywords[:a]
+1
+
+iex&gt; star_ratings = [{1.0, &quot;★&quot;}, {1.5, &quot;★☆&quot;}, {2.0, &quot;★★&quot;}]
+...&gt; star_ratings[1.5]
+&quot;★☆&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/access.ex#L37" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Access.html b/docs/stable/Access.html
new file mode 100644
index 000000000..fd7d3a250
--- /dev/null
+++ b/docs/stable/Access.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Access</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Access
+        
+          <small>protocol</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>The Access protocol is the underlying protocol invoked
+when the brackets syntax is used. For instance, <code>foo[bar]</code>
+is translated to <code>access foo, bar</code> which, by default,
+invokes the <code>Access.access</code> protocol.</p>
+
+<p>This protocol is limited and is implemented only for the
+following built-in types: keywords, records and functions.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/access.ex#L3" target="_blank" class="view_source">Source</a>
+
+      
+        <h2 id="implementations">Implementations</h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Access.Atom.html">Atom</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Access.HashDict.html">HashDict</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Access.List.html">List</a>
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#access/2">access/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="access/2">
+    <strong>access(container, key)</strong>
+  </p>
+  <div class="docstring"><p>Receives the element being accessed and the access item.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/access.ex#L19" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Application.Behaviour.html b/docs/stable/Application.Behaviour.html
new file mode 100644
index 000000000..4ab9367a7
--- /dev/null
+++ b/docs/stable/Application.Behaviour.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Application.Behaviour</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Application.Behaviour
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module is a convenience to define application module callbacks.</p>
+
+<p>In Erlang/OTP, an application is a component that can be started
+and stopped as a unit, and which can be re-used in other systems
+as well.</p>
+
+<p>The first step to achieve this is to define an application specification.
+For example, if your application is named <code>:my_app</code>, an app specification
+should exist at <code>ebin/my_app.app</code>. This file is usually defined by
+build tools like Mix.</p>
+
+<p>Then, with the app specification in hands, we must also define an
+application module callback that controls how to start and stop
+such applications. This module is about defining such callbacks.</p>
+
+<p>There are two callbacks required to be implemented:</p>
+
+<ol>
+<li><p><code>start(type, args)</code> - It must return <code>{ :ok, pid }</code> or
+<code>{ :ok, pid, state }</code>, where <code>pid</code> is the process identifier
+of the supervisor tree root;</p></li>
+<li><p><code>stop(state)</code> receives the state returned by <code>start</code> and should
+do any necessary cleaning up. Notice that shutting down the supervisor
+is automatically handled by the VM;</p></li>
+</ol>
+
+<p>When using this module, it simply tags the module behaviour as
+<code>:application</code> and defines a default <code>stop/1</code> callback. The <code>start/2</code>
+still needs to be defined by the user.</p>
+
+<p>You can learn more about the <code>:application</code> module, the application
+specification and the application module callbacks below:</p>
+
+<p><a href="http://www.erlang.org/doc/man/application.html">http://www.erlang.org/doc/man/application.html</a>
+<a href="http://www.erlang.org/doc/design_principles/applications.html">http://www.erlang.org/doc/design_principles/applications.html</a>
+<a href="http://learnyousomeerlang.com/building-otp-applications">http://learnyousomeerlang.com/building-otp-applications</a></p>
+
+<h2>Example</h2>
+
+<pre><code>defmodule MyApp do
+  use Application.Behaviour
+
+  def start(_type, args) do
+    MyApp.Sup.start_link(args)
+  end
+end
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/application/behaviour.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ArgumentError.html b/docs/stable/ArgumentError.html
new file mode 100644
index 000000000..49a78495c
--- /dev/null
+++ b/docs/stable/ArgumentError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ArgumentError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ArgumentError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L2" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "argument error"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ArithmeticError.html b/docs/stable/ArithmeticError.html
new file mode 100644
index 000000000..663386e98
--- /dev/null
+++ b/docs/stable/ArithmeticError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ArithmeticError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ArithmeticError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L3" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "bad argument in arithmetic expression"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/BadArityError.html b/docs/stable/BadArityError.html
new file mode 100644
index 000000000..4c320720b
--- /dev/null
+++ b/docs/stable/BadArityError.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>BadArityError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        BadArityError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L42" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>function:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>args:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L43" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/BadFunctionError.html b/docs/stable/BadFunctionError.html
new file mode 100644
index 000000000..f8127301b
--- /dev/null
+++ b/docs/stable/BadFunctionError.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>BadFunctionError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        BadFunctionError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L24" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>actual:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L25" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Behaviour.html b/docs/stable/Behaviour.html
new file mode 100644
index 000000000..9e6e839c2
--- /dev/null
+++ b/docs/stable/Behaviour.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Behaviour</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Behaviour
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A convenience module for defining behaviours.
+Behaviours can be referenced by other modules
+in order to ensure they implement the proper
+callbacks.</p>
+
+<p>For example, you can specify the <code>URI.Parser</code>
+behaviour as follow:</p>
+
+<pre><code>defmodule URI.Parser do
+  use Behaviour
+
+  @doc &quot;Parses the given URL&quot;
+  defcallback parse(uri_info :: URI.Info.t) :: URI.Info.t
+
+  @doc &quot;Defines a default port&quot;
+  defcallback default_port() :: integer
+end
+</code></pre>
+
+<p>And then a specific module may use it as:</p>
+
+<pre><code>defmodule URI.HTTP do
+  @behaviour URI.Parser
+  def default_port(), do: 80
+  def parse(info), do: info
+end
+</code></pre>
+
+<p>In case the behaviour changes or URI.HTTP does
+not implement one of the callbacks, a warning
+will be raised.</p>
+
+<h2>Implementation</h2>
+
+<p>Behaviours since Erlang R15 must be defined via
+<code>@callback</code> attributes. <code>defcallback</code> is a simple
+mechanism that defines the <code>@callback</code> attribute
+according to the type specification and also allows
+docs and defines a custom function signature.</p>
+
+<p>The callbacks and their documentation can be retrieved
+via the <code>__behaviour__</code> callback function.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/behaviour.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#defcallback/1">defcallback/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="defcallback/1">
+    <strong>defcallback(fun)</strong>
+  </p>
+  <div class="docstring"><p>Defines a callback according to the given type specification.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/behaviour.ex#L48" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Chars.Atom.html b/docs/stable/Binary.Chars.Atom.html
new file mode 100644
index 000000000..c710f0eba
--- /dev/null
+++ b/docs/stable/Binary.Chars.Atom.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Chars.Atom</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Chars.Atom
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L22" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_binary/1">to_binary/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_binary/1">
+    <strong>to_binary(atom)</strong>
+  </p>
+  <div class="docstring"><p>Convert the atom literally to a binary, except
+<code>nil</code> which is converted to an empty string.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L27" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Chars.BitString.html b/docs/stable/Binary.Chars.BitString.html
new file mode 100644
index 000000000..cfb1e897a
--- /dev/null
+++ b/docs/stable/Binary.Chars.BitString.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Chars.BitString</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Chars.BitString
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L36" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_binary/1">to_binary/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_binary/1">
+    <strong>to_binary(thing)</strong>
+  </p>
+  <div class="docstring"><p>Simply returns the binary itself.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L40" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Chars.List.html b/docs/stable/Binary.Chars.List.html
new file mode 100644
index 000000000..a80caa891
--- /dev/null
+++ b/docs/stable/Binary.Chars.List.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Chars.List</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Chars.List
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L45" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_binary/1">to_binary/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_binary/1">
+    <strong>to_binary(thing)</strong>
+  </p>
+  <div class="docstring"><p>Consider the list is an iolist and converts it
+to a binary. This allows a list of binaries, or
+a charlist, or a mix of both, to be converted
+successfully.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; to_binary(&#39;foo&#39;)
+&quot;foo&quot;
+iex&gt; to_binary([&quot;foo&quot;, &#39;bar&#39;])
+&quot;foobar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L60" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Chars.Number.html b/docs/stable/Binary.Chars.Number.html
new file mode 100644
index 000000000..dc7b5f3ee
--- /dev/null
+++ b/docs/stable/Binary.Chars.Number.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Chars.Number</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Chars.Number
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L65" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_binary/1">to_binary/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_binary/1">
+    <strong>to_binary(thing)</strong>
+  </p>
+  <div class="docstring"><p>Simply converts the number (integer or a float) to a binary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L73" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Chars.html b/docs/stable/Binary.Chars.html
new file mode 100644
index 000000000..5f69b91e7
--- /dev/null
+++ b/docs/stable/Binary.Chars.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Chars</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Chars
+        
+          <small>protocol</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>The Binary.Chars protocol is responsible for
+converting a structure to a Binary (only if applicable).
+The only function required to be implemented is
+<code>to_binary</code> which does the conversion.</p>
+
+<p>The <code>to_binary</code> function automatically imported
+by Kernel invokes this protocol. String
+interpolation also invokes to_binary in its
+arguments. For example, <code>&quot;foo#{bar}&quot;</code> is the same
+as <code>&quot;foo&quot; &lt;&gt; to_binary(bar)</code>.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L3" target="_blank" class="view_source">Source</a>
+
+      
+        <h2 id="implementations">Implementations</h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Chars.Atom.html">Atom</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Chars.BitString.html">BitString</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Chars.List.html">List</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Chars.Number.html">Number</a>
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_binary/1">to_binary/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_binary/1">
+    <strong>to_binary(thing)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/chars.ex#L19" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Inspect.Atom.html b/docs/stable/Binary.Inspect.Atom.html
new file mode 100644
index 000000000..9382c5d8f
--- /dev/null
+++ b/docs/stable/Binary.Inspect.Atom.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Atom</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Atom
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Represents the atom as an Elixir term. The atoms false, true
+and nil are simply quoted. Modules are properly represented
+as modules using the dot notation.</p>
+
+<p>Notice that in Elixir, all operators can be represented using
+literal atoms (<code>:+</code>, <code>:-</code>, etc).</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; inspect(:foo)
+&quot;:foo&quot;
+iex&gt; inspect(nil)
+&quot;nil&quot;
+iex&gt; inspect(Foo.Bar)
+&quot;Foo.Bar&quot;
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L103" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(atom, _)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L126" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Inspect.BitString.html b/docs/stable/Binary.Inspect.BitString.html
new file mode 100644
index 000000000..55c6bc44f
--- /dev/null
+++ b/docs/stable/Binary.Inspect.BitString.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.BitString</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.BitString
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Represents the string as itself escaping
+all necessary characters.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; inspect(&quot;bar&quot;)
+&quot;\&quot;bar\&quot;&quot;
+iex&gt; inspect(&quot;f\&quot;oo&quot;)
+&quot;\&quot;f\\\&quot;oo\&quot;&quot;
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L186" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(thing, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L202" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Inspect.Function.html b/docs/stable/Binary.Inspect.Function.html
new file mode 100644
index 000000000..f7fecb2e8
--- /dev/null
+++ b/docs/stable/Binary.Inspect.Function.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Function</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Function
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Inspect functions, when possible, in a literal form.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L423" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(function, _opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L428" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Inspect.HashDict.html b/docs/stable/Binary.Inspect.HashDict.html
new file mode 100644
index 000000000..45714c212
--- /dev/null
+++ b/docs/stable/Binary.Inspect.HashDict.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.HashDict</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.HashDict
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L591" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(dict, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L594" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Inspect.List.html b/docs/stable/Binary.Inspect.List.html
new file mode 100644
index 000000000..2dbfd7f22
--- /dev/null
+++ b/docs/stable/Binary.Inspect.List.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.List</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.List
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Represents a list checking if it can be printed or not.
+If so, a single-quoted representation is returned,
+otherwise the brackets syntax is used.</p>
+
+<p>Inspecting a list is conservative as it does not try
+to guess how the list is encoded. That said, <code>&#39;josé&#39;</code>
+will likely be inspected as <code>[106,111,115,195,169]</code>
+because we can&#39;t know if it is encoded in utf-8
+or iso-5569-1, which is common in Erlang libraries.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; inspect(&#39;bar&#39;)
+&quot;&#39;bar&#39;&quot;
+iex&gt; inspect([0|&#39;bar&#39;])
+&quot;[0,98,97,114]&quot;
+iex&gt; inspect([:foo,:bar])
+&quot;[:foo,:bar]&quot;
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L246" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(thing, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L271" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Inspect.Number.html b/docs/stable/Binary.Inspect.Number.html
new file mode 100644
index 000000000..92bda1c0e
--- /dev/null
+++ b/docs/stable/Binary.Inspect.Number.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Number</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Number
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Represents the number as a binary.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; inspect(1)
+&quot;1&quot;
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L376" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(thing, _)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L390" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Inspect.PID.html b/docs/stable/Binary.Inspect.PID.html
new file mode 100644
index 000000000..5c62677c5
--- /dev/null
+++ b/docs/stable/Binary.Inspect.PID.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.PID</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.PID
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Inspect PIDs</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L439" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(pid, _)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L442" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Inspect.Port.html b/docs/stable/Binary.Inspect.Port.html
new file mode 100644
index 000000000..8bf1a9e73
--- /dev/null
+++ b/docs/stable/Binary.Inspect.Port.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Port</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Port
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Inspect ports</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L447" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(port, _)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L450" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Inspect.Range.html b/docs/stable/Binary.Inspect.Range.html
new file mode 100644
index 000000000..59c3c5764
--- /dev/null
+++ b/docs/stable/Binary.Inspect.Range.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Range</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Range
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L64" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(arg1, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L67" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Inspect.Reference.html b/docs/stable/Binary.Inspect.Reference.html
new file mode 100644
index 000000000..6f8d8f9f8
--- /dev/null
+++ b/docs/stable/Binary.Inspect.Reference.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Reference</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Reference
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Inspect references</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L455" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(ref, _)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L458" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Inspect.Regex.html b/docs/stable/Binary.Inspect.Regex.html
new file mode 100644
index 000000000..5c895099b
--- /dev/null
+++ b/docs/stable/Binary.Inspect.Regex.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Regex</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Regex
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Represents the Regex using the <code>%r&quot;&quot;</code> syntax.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; inspect(%r/foo/m)
+&quot;%r\&quot;foo\&quot;m&quot;
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L403" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(regex, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L414" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Inspect.Tuple.html b/docs/stable/Binary.Inspect.Tuple.html
new file mode 100644
index 000000000..0636b21a0
--- /dev/null
+++ b/docs/stable/Binary.Inspect.Tuple.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect.Tuple</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect.Tuple
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Inspect tuples. If the tuple represents a record,
+it shows it nicely formatted using the access syntax.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; inspect({1,2,3})
+&quot;{1,2,3}&quot;
+iex&gt; inspect(ArgumentError.new)
+&quot;ArgumentError[message: \&quot;argument error\&quot;]&quot;
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L308" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(tuple, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L324" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Binary.Inspect.html b/docs/stable/Binary.Inspect.html
new file mode 100644
index 000000000..4ad33b504
--- /dev/null
+++ b/docs/stable/Binary.Inspect.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Binary.Inspect</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Binary.Inspect
+        
+          <small>protocol</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>The <code>Binary.Inspect</code> protocol is responsible for
+converting any structure to a binary for textual
+representation. All basic data structures
+(tuple, list, function, pid, etc) implement the
+inspect protocol. Other structures are advised to
+implement the protocol in order to provide pretty
+printing.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L3" target="_blank" class="view_source">Source</a>
+
+      
+        <h2 id="implementations">Implementations</h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.Atom.html">Atom</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.BitString.html">BitString</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.Function.html">Function</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.HashDict.html">HashDict</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.List.html">List</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.Number.html">Number</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.PID.html">PID</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.Port.html">Port</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.Range.html">Range</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.Reference.html">Reference</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.Regex.html">Regex</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Binary.Inspect.Tuple.html">Tuple</a>
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(thing, opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/binary/inspect.ex#L14" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Bitwise.html b/docs/stable/Bitwise.html
new file mode 100644
index 000000000..5b34f2b9f
--- /dev/null
+++ b/docs/stable/Bitwise.html
@@ -0,0 +1,270 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Bitwise</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Bitwise
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module provide macros and operators for bitwise operators.
+These macros can be used in guards.</p>
+
+<p>The easiest way to use is to simply import them into
+your module:</p>
+
+<pre><code>iex&gt; use Bitwise
+iex&gt; bnot 1
+-2
+iex&gt; 1 &amp;&amp;&amp; 1
+1
+</code></pre>
+
+<p>You can select to include only or skip operators by passing options:</p>
+
+<pre><code>iex&gt; use Bitwise, only_operators: true
+...&gt; 1 &amp;&amp;&amp; 1
+1
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#&amp;&amp;&amp;/2">&amp;&amp;&amp;/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&lt;&lt;&lt;/2">&lt;&lt;&lt;/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&gt;&gt;&gt;/2">&gt;&gt;&gt;/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#^^^/2">^^^/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__using__/1">__using__/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#band/2">band/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bnot/1">bnot/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bor/2">bor/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bsl/2">bsl/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bsr/2">bsr/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bxor/2">bxor/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#|||/2">|||/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#~~~/1">~~~/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="&amp;&amp;&amp;/2">
+    <strong>left &amp;&amp;&amp; right</strong>
+  </p>
+  <div class="docstring"><p>Bitwise and as operator.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L69" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&lt;&lt;&lt;/2">
+    <strong>left &lt;&lt;&lt; right</strong>
+  </p>
+  <div class="docstring"><p>Arithmetic bitshift left as operator.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L111" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&gt;&gt;&gt;/2">
+    <strong>left &gt;&gt;&gt; right</strong>
+  </p>
+  <div class="docstring"><p>Arithmetic bitshift right as operator.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L125" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="^^^/2">
+    <strong>left ^^^ right</strong>
+  </p>
+  <div class="docstring"><p>Bitwise xor as operator.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L97" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__using__/1">
+    <strong>__using__(options)</strong>
+  </p>
+  <div class="docstring"><p>Allow a developer to use this module in their programs with
+the following options:</p>
+
+<ul>
+<li><code>:only_operators</code> - Include only operators;</li>
+<li><code>:skip_operators</code> - Skip operators;</li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L31" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="band/2">
+    <strong>band(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Bitwise and.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L62" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bnot/1">
+    <strong>bnot(expr)</strong>
+  </p>
+  <div class="docstring"><p>Bitwise not.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L48" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bor/2">
+    <strong>bor(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Bitwise or.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L76" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bsl/2">
+    <strong>bsl(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Arithmetic bitshift left.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bsr/2">
+    <strong>bsr(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Arithmetic bitshift right.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L118" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bxor/2">
+    <strong>bxor(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Bitwise xor.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L90" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="|||/2">
+    <strong>left ||| right</strong>
+  </p>
+  <div class="docstring"><p>Bitwise or as operator.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L83" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="~~~/1">
+    <strong>~~~(expr)</strong>
+  </p>
+  <div class="docstring"><p>Bitwise not as operator.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/bitwise.ex#L55" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/CaseClauseError.html b/docs/stable/CaseClauseError.html
new file mode 100644
index 000000000..107b112ee
--- /dev/null
+++ b/docs/stable/CaseClauseError.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>CaseClauseError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        CaseClauseError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L36" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>actual:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L37" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Code.LoadError.html b/docs/stable/Code.LoadError.html
new file mode 100644
index 000000000..4c1e3a436
--- /dev/null
+++ b/docs/stable/Code.LoadError.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Code.LoadError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Code.LoadError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L2" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>file:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L3" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Code.html b/docs/stable/Code.html
new file mode 100644
index 000000000..dabb01cbd
--- /dev/null
+++ b/docs/stable/Code.html
@@ -0,0 +1,506 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Code</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Code
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>The Code module is responsible to manage code compilation,
+code evaluation and code loading.</p>
+
+<p>It complements (Erlang&#39;s code module)<a href="(www.erlang.org/doc/man/code.html)">1</a> to add behavior
+which is specific to Elixir.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#append_path/1">append_path/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compile_quoted/2">compile_quoted/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compile_string/2">compile_string/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compiler_options/0">compiler_options/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compiler_options/1">compiler_options/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete_path/1">delete_path/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ensure_compiled/1">ensure_compiled/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ensure_compiled?/1">ensure_compiled?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ensure_loaded/1">ensure_loaded/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ensure_loaded?/1">ensure_loaded?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#eval_quoted/3">eval_quoted/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#eval_string/3">eval_string/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#load_file/2">load_file/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#loaded_files/0">loaded_files/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#prepend_path/1">prepend_path/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#require_file/2">require_file/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#string_to_ast/2">string_to_ast/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#string_to_ast!/2">string_to_ast!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unload_files/1">unload_files/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="append_path/1">
+    <strong>append_path(path)</strong>
+  </p>
+  <div class="docstring"><p>Appends a path to Erlang VM code path.
+The path is expanded with <code>Path.expand</code> before added.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L40" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compile_quoted/2">
+    <strong>compile_quoted(quoted, file // &quot;nofile&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Compiles the quoted expression and returns a list of tuples where
+the first element is the module name and the second one is its
+binary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L283" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compile_string/2">
+    <strong>compile_string(string, file // &quot;nofile&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Compiles the given string and returns a list of tuples where
+the first element is the module name and the second one is its
+binary.</p>
+
+<p>For compiling many files at once, check <code>Kernel.ParallelCompiler</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L274" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compiler_options/0">
+    <strong>compiler_options()</strong>
+  </p>
+  <div class="docstring"><p>Loads the compilation options from the code server.
+Check compiler_options/1 for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L244" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compiler_options/1">
+    <strong>compiler_options(opts)</strong>
+  </p>
+  <div class="docstring"><p>Sets compilation options. Those options are global
+since they are stored by Elixir&#39;s Code Server.</p>
+
+<p>Available options are:</p>
+
+<ul>
+<li>docs       - when true, retain documentation in the compiled module.
+           True by default;</li>
+<li>debug_info - when true, retain debug information in the compiled module.
+           This allows a developer to reconstruct the original source
+           code, for such reasons, false by default;</li>
+<li>ignore<em>module</em>conflict - when true, override modules that were already defined
+                       without raising errors, false by default;</li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L263" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete_path/1">
+    <strong>delete_path(path)</strong>
+  </p>
+  <div class="docstring"><p>Deletes a path from Erlang VM code path.
+The path is expanded with <code>Path.expand</code> before deleted.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L56" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ensure_compiled/1">
+    <strong>ensure_compiled(module)</strong>
+  </p>
+  <div class="docstring"><p>Ensures the given module is compiled and loaded. If the module
+is already loaded, it works as no-op. If the module was not
+loaded yet, it checks if it needs to be compiled first and just
+then tries to load it.</p>
+
+<p>If it succeeds loading the module anyhow, it returns
+<code>{ :module, module }</code>. If not, returns <code>{ :error, reason }</code> with
+the error reason.</p>
+
+<p>Check <code>ensure_loaded/1</code> for more information on module loading
+and when to use <code>ensure_loaded/1</code> or <code>ensure_compiled/1</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L350" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ensure_compiled?/1">
+    <strong>ensure_compiled?(module)</strong>
+  </p>
+  <div class="docstring"><p>Similar to <code>ensure_compiled/1</code>, but returns a boolean in case
+it could be ensured or not.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L371" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ensure_loaded/1">
+    <strong>ensure_loaded(module)</strong>
+  </p>
+  <div class="docstring"><p>Ensures the given module is loaded. If the module is already
+loaded, it works as no-op. If the module was not loaded yet,
+it tries to load it.</p>
+
+<p>If it succeeds loading the module anyhow, it returns
+<code>{ :module, module }</code>. If not, returns <code>{ :error, reason }</code> with
+the error reason.</p>
+
+<h2>Code loading on the Erlang VM</h2>
+
+<p>Erlang has two modes to load code: interactive and embedded.</p>
+
+<p>By default, the Erlang VM runs on interactive mode, where modules
+are loaded as needed. In embedded mode the opposite happens, as all
+modules need to be loaded upfront or explicitly.</p>
+
+<p>Therefore, this function is useful to check if a module is loaded
+before using it and react accordingly. For example, the <code>URI</code> module
+uses this function to check if a specific parser exists for a given
+URI scheme.</p>
+
+<h2>Code.ensure_compiled</h2>
+
+<p>Elixir also contains an <code>ensure_compiled/1</code> function that is a
+superset of <code>ensure_loaded/1</code>.</p>
+
+<p>Since Elixir&#39;s compilation happens in parallel, in some situations
+you may need to use a module but it was not compiled yet, therefore
+it can&#39;t even be loaded.</p>
+
+<p><code>ensure_compiled/1</code> puts a halt in the current process until the
+module we are depending on is available.</p>
+
+<p>In most of the cases, <code>ensure_loaded</code> is enough. <code>ensure_compiled</code>
+must be used just in same rare conditions, usually involving macros
+that needs to invoke a module for callback information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L325" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ensure_loaded?/1">
+    <strong>ensure_loaded?(module)</strong>
+  </p>
+  <div class="docstring"><p>Similar to <code>ensure_loaded/1</code>, but returns a boolean in case
+it could be ensured or not.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L333" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="eval_quoted/3">
+    <strong>eval_quoted(quoted, binding // [], opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Evaluates the quoted contents.</p>
+
+<p>This function accepts a list of environment options.
+Check <code>Code.eval_string</code> for more information.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; contents = quote(hygiene: [vars: false], do: a + b)
+...&gt; Code.eval_quoted(contents, [a: 1, b: 2], file: __ENV__.file, line: __ENV__.line)
+{ 3, [ {:a, 1}, {:b, 2} ] }
+</code></pre>
+
+<p>For convenience, you can my pass <code>__ENV__</code> as argument and
+all options will be automatically extracted from the environment:</p>
+
+<pre><code>iex&gt; contents = quote(hygiene: [vars: false], do: a + b)
+...&gt; Code.eval_quoted(contents, [a: 1, b: 2], __ENV__)
+{ 3, [ {:a, 1}, {:b, 2} ] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L130" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="eval_string/3">
+    <strong>eval_string(string, binding // [], opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Evaluates the contents given by string. The second argument is the
+binding (which should be a keyword) followed by a keyword list of
+environment options. Those options can be:</p>
+
+<ul>
+<li><code>:file</code> - the file to be considered in the evaluation</li>
+<li><code>:line</code> - the line the script starts</li>
+<li><code>:delegate_locals_to</code> - delegate local calls to the given module,
+the default is to not delegate</li>
+</ul>
+
+<p>Besides, the following scope values can be configured:</p>
+
+<ul>
+<li><code>:aliases</code> - a list of tuples with the alias and its target</li>
+<li><code>:requires</code> - a list of modules required</li>
+<li><code>:functions</code> - a list of tuples where the first element is a module
+and the second a list of imported function names and arity</li>
+<li><code>:macros</code> - a list of tuples where the first element is a module
+and the second a list of imported macro names and arity</li>
+</ul>
+
+<p>Notice that setting any ov the values above overrides Elixir default
+values. For example, setting <code>:requires</code> to <code>[]</code>, will no longer
+automatically required the <code>Kernel</code> module, in the same way setting
+<code>:macros</code> will no longer auto-import <code>Kernel</code> macros as <code>if</code>, <code>case</code>,
+etc.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Code.eval_string(&quot;a + b&quot;, [a: 1, b: 2], file: __ENV__.file, line: __ENV__.line)
+{ 3, [ {:a, 1}, {:b, 2} ] }
+</code></pre>
+
+<p>For convenience, you can my pass <code>__ENV__</code> as argument and
+all imports, requires and aliases will be automatically carried
+over:</p>
+
+<pre><code>iex&gt; Code.eval_string(&quot;a + b&quot;, [a: 1, b: 2], __ENV__)
+{ 3, [ {:a, 1}, {:b, 2} ] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L98" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="load_file/2">
+    <strong>load_file(file, relative_to // nil)</strong>
+  </p>
+  <div class="docstring"><p>Loads the given <code>file</code>. Accepts <code>relative_to</code> as an argument
+to tell where the file is located. If the file was already
+required/loaded, loads it again. It returns all the modules
+defined in the file.</p>
+
+<p>Notice that if <code>load_file</code> is invoked by different processes
+concurrently, the target file will be invoked concurrently
+in many times. I.e. if <code>load_file</code> is called N times with
+a given file, the given file will be loaded N times. Check
+<code>require_file</code> if you don&#39;t want a file to be loaded concurrently.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L204" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="loaded_files/0">
+    <strong>loaded_files()</strong>
+  </p>
+  <div class="docstring"><p>Returns all the loaded files.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="prepend_path/1">
+    <strong>prepend_path(path)</strong>
+  </p>
+  <div class="docstring"><p>Prepends a path to Erlang VM code path.
+The path is expanded with <code>Path.expand</code> before added.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L48" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="require_file/2">
+    <strong>require_file(file, relative_to // nil)</strong>
+  </p>
+  <div class="docstring"><p>Requires the given <code>file</code>. Accepts <code>relative_to</code> as an argument to tell where
+the file is located. It returns all the modules defined in the file. If the
+file was already required/loaded, doesn&#39;t do anything and returns nil.</p>
+
+<p>Notice that if <code>require_file</code> is invoked by different processes concurrently,
+the first process to invoke <code>require_file</code> acquires a lock and the remaining
+ones will block until the file is available. I.e. if <code>require_file</code> is called
+N times with a given file, it will be loaded only once. The first process to
+call <code>require_file</code> will get the list of loaded modules, others will get nil.</p>
+
+<p>Check <code>load_file</code> if you want a file to be loaded concurrently.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L225" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="string_to_ast/2">
+    <strong>string_to_ast(string, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Converts the given string to AST. It returns <code>{ :ok, ast }</code>
+if it succeeds, <code>{ :error, { line, error, token } }</code> otherwise.</p>
+
+<h2>Options</h2>
+
+<ul>
+<li><p><code>:file</code> - The filename to be used in stacktraces
+and the file reported in the <strong>ENV</strong> variable.</p></li>
+<li><p><code>:line</code> - The line reported in the <strong>ENV</strong> variable.</p></li>
+<li><p><code>:existing_atoms_only</code> - When true, raises an error
+when non-existing atoms are found by the tokenizer.</p></li>
+</ul>
+
+<h2>Macro.to_binary/1</h2>
+
+<p>The opposite of converting a string to its AST is
+<code>Macro.to_binary</code>, which converts a AST to a binary
+representation.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L162" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="string_to_ast!/2">
+    <strong>string_to_ast!(string, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Converts the given string to AST. It returns the ast if it succeeds,
+raises an exception otherwise. The exception is a TokenMissingError
+in case a token is missing (usually because the expression is incomplete),
+SyntaxError otherwise.</p>
+
+<p>Check <code>Code.string_to_ast/2</code> for options information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L181" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unload_files/1">
+    <strong>unload_files(files)</strong>
+  </p>
+  <div class="docstring"><p>Removes the given files from the loaded files list.
+The modules defined in the file are not removed,
+calling this function only removes it from the list,
+allowing it to be required again.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/code.ex#L32" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/CompileError.html b/docs/stable/CompileError.html
new file mode 100644
index 000000000..d65ff2d4f
--- /dev/null
+++ b/docs/stable/CompileError.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>CompileError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        CompileError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L18" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>file:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>line:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>description:</strong> "compile error"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L19" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Dict.html b/docs/stable/Dict.html
new file mode 100644
index 000000000..6e3b63a6b
--- /dev/null
+++ b/docs/stable/Dict.html
@@ -0,0 +1,899 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Dict</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Dict
+        
+          <small>behaviour</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module specifies the Dict API expected to be
+implemented by different dictionaries. It also provides
+functions that redirect to the underlying Dict, allowing
+a developer to work with different Dict implementations
+using one API.</p>
+
+<p>To create a new dict, use the <code>new</code> functions defined
+by each dict type:</p>
+
+<pre><code>HashDict.new  #=&gt; creates an empty HashDict
+</code></pre>
+
+<p>For simplicity&#39;s sake, in the examples below everytime
+<code>new</code> is used, it implies one of the module-specific
+calls like above. Likewise, when the result of a function
+invocation is shown in the form <code>[a: 1, b: 2]</code>, it implies
+that the returned value is actually of the same dict type
+as the input one.</p>
+
+<h2>Protocols</h2>
+
+<p>Besides implementing the functions in this module, all
+dictionaries are also required to implement the <code>Access</code>
+protocol:</p>
+
+<pre><code>iex&gt; dict = HashDict.new
+...&gt; dict = Dict.put(dict, :hello, :world)
+...&gt; dict[:hello]
+:world
+</code></pre>
+
+<p>And also the <code>Enumerable</code> protocol, allowing one to write:</p>
+
+<pre><code>Enum.each(dict, fn ({ k, v }) -&gt;
+  IO.puts &quot;#{k}: #{v}&quot;
+end)
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#delete/2">delete/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#drop/2">drop/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#empty/1">empty/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#equal?/2">equal?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch/2">fetch/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch!/2">fetch!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/3">get/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#has_key?/2">has_key?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keys/1">keys/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#merge/2">merge/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#merge/3">merge/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#pop/3">pop/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put/3">put/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_new/3">put_new/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#size/1">size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/2">split/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#take/2">take/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_list/1">to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/3">update/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/4">update/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#values/1">values/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <h2 id="callbacks_summary">Callbacks summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#values/1">values/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/4">update/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/3">update/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_list/1">to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#take/2">take/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/2">split/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#size/1">size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_new/3">put_new/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put/3">put/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#pop/3">pop/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#pop/2">pop/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#merge/3">merge/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#merge/2">merge/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keys/1">keys/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#has_key?/2">has_key?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/3">get/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/2">get/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#equal?/2">equal?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#empty/1">empty/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#drop/2">drop/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete/2">delete/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="delete/2">
+    <strong>delete(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Removes the entry stored under the given key from <code>dict</code>.
+If <code>dict</code> does not contain <code>key</code>, returns the dictionary unchanged.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; d = Dict.delete(d, :a)
+...&gt; Dict.get(d, :a)
+nil
+
+iex&gt; d = HashDict.new([b: 2])
+...&gt; Dict.delete(d, :a) == d
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L254" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="drop/2">
+    <strong>drop(dict, keys)</strong>
+  </p>
+  <div class="docstring"><p>Returns a new dict where the the given <code>keys</code> a removed from <code>dict</code>.
+Any non-member keys are ignored.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; d = Dict.drop(d, [:a, :c, :d])
+...&gt; Dict.to_list(d)
+[b: 2]
+
+iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; d = Dict.drop(d, [:c, :d])
+...&gt; Dict.to_list(d)
+[a: 1, b: 2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L407" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="empty/1">
+    <strong>empty(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns an empty dict of the same type as <code>dict</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L437" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="equal?/2">
+    <strong>equal?(a, b)</strong>
+  </p>
+  <div class="docstring"><p>Check if two dicts are equal, if the dicts are of different types they&#39;re
+first converted to lists.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; a = HashDict.new(a: 2, b: 3, f: 5, c: 123)
+...&gt; b = ListDict.new(a: 2, b: 3, f: 5, c: 123)
+...&gt; Dict.equal?(a, b)
+true
+
+iex&gt; a = HashDict.new(a: 2, b: 3, f: 5, c: 123)
+...&gt; b = []
+...&gt; Dict.equal?(a, b)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L459" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch/2">
+    <strong>fetch(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Returns the <code>{ :ok, value }</code> associated with <code>key</code> in <code>dict</code>.
+If <code>dict</code> does not contain <code>key</code>, returns <code>:error</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1])
+iex&gt; Dict.fetch(d, :a)
+{ :ok, 1 }
+iex&gt; Dict.fetch(d, :b)
+:error
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L182" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch!/2">
+    <strong>fetch!(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value associated with <code>key</code> in <code>dict</code>. If <code>dict</code> does not
+contain <code>key</code>, it raises <code>KeyError</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1])
+iex&gt; Dict.fetch!(d, :a)
+1
+iex&gt; Dict.fetch!(d, :b)
+** (KeyError) key not found: :b
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L200" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/3">
+    <strong>get(dict, key, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value associated with <code>key</code> in <code>dict</code>. If <code>dict</code> does not
+contain <code>key</code>, returns <code>default</code> (or nil if not provided).</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1])
+iex&gt; Dict.get(d, :a)
+1
+iex&gt; Dict.get(d, :b)
+nil
+iex&gt; Dict.get(d, :b, 3)
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L159" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="has_key?/2">
+    <strong>has_key?(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Returns whether the given key exists in the given dict.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1])
+iex&gt; Dict.has_key?(d, :a)
+true
+iex&gt; Dict.has_key?(d, :b)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L140" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keys/1">
+    <strong>keys(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list containing all dict&#39;s keys.
+The keys are not guaranteed to be sorted, unless
+the underlying dict implementation defines so.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; Enum.sort(Dict.keys(d))
+[:a,:b]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L93" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="merge/2">
+    <strong>merge(dict, enum)</strong>
+  </p>
+  <div class="docstring"><p>Merges the given enum into the dict. In case one of the enum entries
+alread exist in the dict, it is given higher preference.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d1 = HashDict.new([a: 1, b: 2])
+...&gt; d2 = HashDict.new([a: 3, d: 4])
+...&gt; d = Dict.merge(d1, d2)
+...&gt; [a: Dict.get(d, :a), b: Dict.get(d, :b), d: Dict.get(d, :d)]
+[a: 3, b: 2, d: 4]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L272" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="merge/3">
+    <strong>merge(dict, enum, fun)</strong>
+  </p>
+  <div class="docstring"><p>Merges the given enum into the dict. In case one of the enum entries
+alread exist in the dict, the given function is invoked to solve
+conflicts.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d1 = HashDict.new([a: 1, b: 2])
+...&gt; d2 = HashDict.new([a: 3, d: 4])
+...&gt; d = Dict.merge(d1, d2, fn(_k, v1, v2) -&gt;
+...&gt;   v1 + v2
+...&gt; end)
+...&gt; [a: Dict.get(d, :a), b: Dict.get(d, :b), d: Dict.get(d, :d)]
+[a: 4, b: 2, d: 4]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L293" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="pop/3">
+    <strong>pop(dict, key, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value associated with <code>key</code> in <code>dict</code> as
+well as the <code>dict</code> without <code>key</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; dict = HashDict.new [a: 1]
+...&gt; {v, d} = Dict.pop dict, :a
+...&gt; {v, Enum.sort(d)}
+{1,[]}
+
+iex&gt; dict = HashDict.new [a: 1]
+...&gt; {v, d} = Dict.pop dict, :b
+...&gt; {v, Enum.sort(d)}
+{nil,[a: 1]}
+
+iex&gt; dict = HashDict.new [a: 1]
+...&gt; {v, d} = Dict.pop dict, :b, 3
+...&gt; {v, Enum.sort(d)}
+{3,[a: 1]}
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L320" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put/3">
+    <strong>put(dict, key, val)</strong>
+  </p>
+  <div class="docstring"><p>Stores the given <code>value</code> under <code>key</code> in <code>dict</code>.
+If <code>dict</code> already has <code>key</code>, the stored value is replaced by the new one.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; d = Dict.put(d, :a, 3)
+...&gt; Dict.get(d, :a)
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L217" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_new/3">
+    <strong>put_new(dict, key, val)</strong>
+  </p>
+  <div class="docstring"><p>Puts the given <code>value</code> under <code>key</code> in <code>dict</code> unless <code>key</code> already exists.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; d = Dict.put_new(d, :a, 3)
+...&gt; Dict.get(d, :a)
+1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L233" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="size/1">
+    <strong>size(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns the number of elements in <code>dict</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; Dict.size(d)
+2
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L123" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/2">
+    <strong>split(dict, keys)</strong>
+  </p>
+  <div class="docstring"><p>Returns a tuple of two dicts, where the first dict contains only
+entries from <code>dict</code> with keys in <code>keys</code>, and the second dict
+contains only entries from <code>dict</code> with keys not in <code>keys</code></p>
+
+<p>Any non-member keys are ignored.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; { d1, d2 } = Dict.split(d, [:a, :c])
+...&gt; { Dict.to_list(d1), Dict.to_list(d2) }
+{ [a: 1], [b: 2] }
+
+iex&gt; d = HashDict.new([])
+...&gt; { d1, d2 } = Dict.split(d, [:a, :c])
+...&gt; { Dict.to_list(d1), Dict.to_list(d2) }
+{ [], [] }
+
+iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; { d1, d2 } = Dict.split(d, [:a, :b, :c])
+...&gt; { Dict.to_list(d1), Dict.to_list(d2) }
+{ [a: 1, b: 2], [] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L385" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="take/2">
+    <strong>take(dict, keys)</strong>
+  </p>
+  <div class="docstring"><p>Returns a new dict where only the keys in <code>keys</code> from <code>dict</code> are
+included. Any non-member keys are ignored.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt;
+...&gt; d = Dict.take(d, [:a, :c, :d])
+...&gt; Dict.to_list(d)
+[a: 1]
+...&gt;
+...&gt; d = Dict.take(d, [:c, :d])
+...&gt; Dict.to_list(d)
+[]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L429" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_list/1">
+    <strong>to_list(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of key-value pairs stored in <code>dict</code>.
+No particular order is enforced.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L480" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/3">
+    <strong>update(dict, key, fun)</strong>
+  </p>
+  <div class="docstring"><p>Update a value in <code>dict</code> by calling <code>fun</code> on the value to get a new
+value. An exception is generated if <code>key</code> is not present in the dict.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; d = Dict.update(d, :a, fn(val) -&gt; -val end)
+...&gt; Dict.get(d, :a)
+-1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L337" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/4">
+    <strong>update(dict, key, initial, fun)</strong>
+  </p>
+  <div class="docstring"><p>Update a value in <code>dict</code> by calling <code>fun</code> on the value to get a new value. If
+<code>key</code> is not present in <code>dict</code> then <code>initial</code> will be stored as the first
+value.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; d = Dict.update(d, :c, 3, fn(val) -&gt; -val end)
+...&gt; Dict.get(d, :c)
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L355" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="values/1">
+    <strong>values(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list containing all dict&#39;s values.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; d = HashDict.new([a: 1, b: 2])
+...&gt; Enum.sort(Dict.values(d))
+[1,2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L108" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+        <div id="callbacks_details" class="details_list">
+          <h2>Callbacks</h2>
+          <div class="detail">
+  <p class="signature" id="values/1">
+    <strong>values(t())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L67" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/4">
+    <strong>update(t(), key(), value(), (value() -&gt; value()))</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L66" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/3">
+    <strong>update(t(), key(), (value() -&gt; value()))</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L65" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_list/1">
+    <strong>to_list(t())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L64" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="take/2">
+    <strong>take(t(), keys())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L63" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/2">
+    <strong>split(t(), keys())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L62" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="size/1">
+    <strong>size(t())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L61" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_new/3">
+    <strong>put_new(t(), key(), value())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L60" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put/3">
+    <strong>put(t(), key(), value())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L59" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="pop/3">
+    <strong>pop(t(), key(), value())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L58" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="pop/2">
+    <strong>pop(t(), key())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L57" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="merge/3">
+    <strong>merge(t(), t(), (key(), value(), value() -&gt; value()))</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L56" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="merge/2">
+    <strong>merge(t(), t())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L55" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keys/1">
+    <strong>keys(t())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L54" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="has_key?/2">
+    <strong>has_key?(t(), key())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/3">
+    <strong>get(t(), key(), value())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L52" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/2">
+    <strong>get(t(), key())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L51" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="equal?/2">
+    <strong>equal?(t(), t())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L50" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="empty/1">
+    <strong>empty(t())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="drop/2">
+    <strong>drop(t(), keys())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L48" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete/2">
+    <strong>delete(t(), key())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/dict.ex#L47" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/EEx.AssignsEngine.html b/docs/stable/EEx.AssignsEngine.html
new file mode 100644
index 000000000..285dfcb43
--- /dev/null
+++ b/docs/stable/EEx.AssignsEngine.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>EEx.AssignsEngine</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        EEx.AssignsEngine
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>An abstract engine that, when used with the
+<code>TransformerEngine</code>, allows a developer to access
+assigns using <code>@</code> as syntax.</p>
+
+<p>This engine is included by default on the SmartEngine.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule MyEngine do
+  use EEx.TransformerEngine
+  use EEx.AssignsEngine
+end
+
+EEx.eval_string(&quot;&lt;%= @foo %&gt;&quot;, assigns: [foo: 1])
+#=&gt; 1
+</code></pre>
+
+<p>In the example above, we can access the value <code>foo</code> under
+the binding <code>assigns</code> using <code>@foo</code>. This is useful when
+a template, after compiled, may receive different assigns
+and the developer don&#39;t want to recompile it for each
+variable set.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/smart_engine.ex#L47" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/EEx.Engine.html b/docs/stable/EEx.Engine.html
new file mode 100644
index 000000000..547eab5b7
--- /dev/null
+++ b/docs/stable/EEx.Engine.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>EEx.Engine</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        EEx.Engine
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This is the basic EEx engine that ships with Elixir.
+An engine needs to implement two functions:</p>
+
+<ul>
+<li><p><code>handle_text(buffer, text)</code> - it receives the buffer,
+the text and must return a new quoted expression;</p></li>
+<li><p><code>handle_expr(buffer, marker, expr)</code> - it receives the buffer,
+the marker, the expr and must return a new quoted expression;</p></li>
+</ul>
+
+<p>The marker is what follows exactly after <code>&lt;%</code>. For example,
+  <code>&lt;% foo %&gt;</code> has an empty marker, but <code>&lt;%= foo %&gt;</code> has <code>&#39;=&#39;</code>
+  as marker. The allowed markers so far are:</p>
+
+<ul>
+<li><code>&#39;&#39;</code></li>
+<li><code>&#39;=&#39;</code></li>
+</ul>
+
+<p>Read <code>handle_expr/3</code> below for more information about the markers
+  implemented by default by this engine.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/engine.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#behaviour_info/1">behaviour_info/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#handle_expr/3">handle_expr/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#handle_text/2">handle_text/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="behaviour_info/1">
+    <strong>behaviour_info(atom1)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/engine.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="handle_expr/3">
+    <strong>handle_expr(buffer, list2, expr)</strong>
+  </p>
+  <div class="docstring"><p>Implements expressions according to the markers.</p>
+
+<pre><code>&lt;% Elixir expression - inline with output %&gt;
+&lt;%= Elixir expression - replace with result %&gt;
+</code></pre>
+
+<p>All other markers are not implemented by this engine.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/engine.ex#L38" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="handle_text/2">
+    <strong>handle_text(buffer, text)</strong>
+  </p>
+  <div class="docstring"><p>The default implementation simply concatenates text to the buffer.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/engine.ex#L26" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/EEx.SmartEngine.html b/docs/stable/EEx.SmartEngine.html
new file mode 100644
index 000000000..e3ac71e79
--- /dev/null
+++ b/docs/stable/EEx.SmartEngine.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>EEx.SmartEngine</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        EEx.SmartEngine
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>An engine meant for end-user usage that includes
+<code>AssignsEngine</code> and other conveniences. Read
+<code>EEx.AssignsEngine</code> for examples.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/smart_engine.ex#L88" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#handle_expr/3">handle_expr/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#handle_text/2">handle_text/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="handle_expr/3">
+    <strong>handle_expr(buffer, mark, expr)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/smart_engine.ex#L89" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="handle_text/2">
+    <strong>handle_text(buffer, text)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/smart_engine.ex#L89" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/EEx.SyntaxError.html b/docs/stable/EEx.SyntaxError.html
new file mode 100644
index 000000000..c67a3b90d
--- /dev/null
+++ b/docs/stable/EEx.SyntaxError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>EEx.SyntaxError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        EEx.SyntaxError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/EEx.TransformerEngine.html b/docs/stable/EEx.TransformerEngine.html
new file mode 100644
index 000000000..f740a5ccd
--- /dev/null
+++ b/docs/stable/EEx.TransformerEngine.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>EEx.TransformerEngine</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        EEx.TransformerEngine
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>An abstract engine that is meant to be used and
+built upon in other modules. This engine implements
+the <code>EEx.Engine</code> behavior and provides a <code>transform</code>
+overridable directive that allows a developer to
+customize the expression returned by the engine.</p>
+
+<p>Check <code>EEx.AssignsEngine</code> and <code>EEx.SmartEngine</code> for
+examples of using this module.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex/smart_engine.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/EEx.html b/docs/stable/EEx.html
new file mode 100644
index 000000000..435679b69
--- /dev/null
+++ b/docs/stable/EEx.html
@@ -0,0 +1,285 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>EEx</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        EEx
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>EEx stands for Embedded Elixir. It allows you to embed
+Elixir code inside a string in a robust way:</p>
+
+<pre><code>EEx.eval_string &quot;foo &lt;%= bar %&gt;&quot;, [bar: &quot;baz&quot;]
+#=&gt; &quot;foo baz&quot;
+</code></pre>
+
+<h2>API</h2>
+
+<p>This module provides 3 main APIs for you to use:</p>
+
+<p>1) Evaluate a string (<code>eval_string</code>) or a file (<code>eval_file</code>)
+   directly. This is the simplest API to use but also the
+   slowest, since the code is evaluated and not compiled before;</p>
+
+<p>2) Define a function from a string (<code>function_from_string</code>)
+   or a file (<code>function_from_file</code>). This allows you to embed
+   the template as a function inside a module which will then
+   be compiled. This is the preferred API if you have access
+   to the template at compilation time;</p>
+
+<p>3) Compile a string (<code>compile_string</code>) or a file (<code>compile_file</code>)
+   into Elixir syntax tree. This is the API used by both functions
+   above and is available to you if you want to provide your own
+   ways of handling the compiled template.</p>
+
+<h2>Engine</h2>
+
+<p>EEx has the concept of engines which allows you to modify or
+transform the code extracted from the given string or file.</p>
+
+<p>By default, <code>EEx</code> uses the <code>EEx.SmartEngine</code> that provides some
+conveniences on top of the simple <code>EEx.Engine</code>.</p>
+
+<h3>Tags</h3>
+
+<p><code>EEx.SmartEngine</code> supports the following tags:</p>
+
+<pre><code>&lt;% Elixir expression - inline with output %&gt;
+&lt;%= Elixir expression - replace with result %&gt;
+&lt;%% EEx quotation - returns the contents inside %&gt;
+&lt;%# Comments - they are discarded from source %&gt;
+</code></pre>
+
+<p>All expressions that output something to the template
+<strong>must</strong> use the equals sign (<code>=</code>). Since everything in
+Elixir is a macro, there are no exceptions for this rule.
+For example, while some template languages would special-
+case <code>if</code> clauses, they are treated the same in EEx and
+also require <code>=</code> in order to have their result printed:</p>
+
+<pre><code>&lt;%= if true do %&gt;
+  It is obviously true
+&lt;% else %&gt;
+  This will never appear
+&lt;% end %&gt;
+</code></pre>
+
+<p>Notice that different engines may have different rules
+for each tag. Other tags may be added in future versions.</p>
+
+<h3>Macros</h3>
+
+<p><code>EEx.SmartEngine</code> also adds some macros to your template.
+An example is the <code>@</code> macro which allows easy data access
+in a template:</p>
+
+<pre><code>EEx.eval_string &quot;&lt;%= @foo %&gt;&quot;, assigns: [foo: 1]
+#=&gt; 1
+</code></pre>
+
+<p>In other words, &lt;%= @foo %&gt; is simply translated to:</p>
+
+<pre><code>&lt;%= Keyword.get assigns, :foo %&gt;
+</code></pre>
+
+<p>The assigns extension is useful when the number of variables
+required by the template is not specified at compilation time.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex.ex#L3" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#compile_file/2">compile_file/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compile_string/2">compile_string/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#eval_file/3">eval_file/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#eval_string/3">eval_string/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#function_from_file/5">function_from_file/5</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#function_from_string/5">function_from_string/5</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="compile_file/2">
+    <strong>compile_file(filename, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Get a <code>filename</code> and generate a quoted expression
+that can be evaluated by Elixir or compiled to a function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex.ex#L150" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compile_string/2">
+    <strong>compile_string(source, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Get a string <code>source</code> and generate a quoted expression
+that can be evaluated by Elixir or compiled to a function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex.ex#L142" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="eval_file/3">
+    <strong>eval_file(filename, bindings // [], options // [])</strong>
+  </p>
+  <div class="docstring"><p>Get a <code>filename</code> and evaluate the values using the <code>bindings</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code># sample.ex
+foo &lt;%= bar %&gt;
+
+# iex
+EEx.eval_file &quot;sample.ex&quot;, [bar: &quot;baz&quot;]
+#=&gt; &quot;foo baz&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex.ex#L182" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="eval_string/3">
+    <strong>eval_string(source, bindings // [], options // [])</strong>
+  </p>
+  <div class="docstring"><p>Get a string <code>source</code> and evaluate the values using the <code>bindings</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>EEx.eval_string &quot;foo &lt;%= bar %&gt;&quot;, [bar: &quot;baz&quot;]
+#=&gt; &quot;foo baz&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex.ex#L164" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="function_from_file/5">
+    <strong>function_from_file(kind, name, filename, args // [], options // [])</strong>
+  </p>
+  <div class="docstring"><p>Generates a function definition from the file contents.
+The kind (<code>:def</code> or <code>:defp</code>) must be given, the
+function name, its arguments and the compilation options.</p>
+
+<p>This function is useful in case you have templates but
+you want to precompile inside a module for speed.</p>
+
+<h2>Examples</h2>
+
+<pre><code># sample.eex
+&lt;%= a + b %&gt;
+
+# sample.ex
+defmodule Sample do
+  require EEx
+  EEx.function_from_file :def, :sample, &quot;sample.eex&quot;, [:a, :b]
+end
+
+# iex
+Sample.sample(1, 2) #=&gt; &quot;3&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex.ex#L127" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="function_from_string/5">
+    <strong>function_from_string(kind, name, source, args // [], options // [])</strong>
+  </p>
+  <div class="docstring"><p>Generates a function definition from the string.
+The kind (<code>:def</code> or <code>:defp</code>) must be given, the
+function name, its arguments and the compilation options.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Sample do
+  require EEx
+  EEx.function_from_string :def, :sample, &quot;&lt;%= a + b %&gt;&quot;, [:a, :b]
+end
+
+Sample.sample(1, 2) #=&gt; &quot;3&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/eex/lib/eex.ex#L95" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Enum.EmptyError.html b/docs/stable/Enum.EmptyError.html
new file mode 100644
index 000000000..457d0a609
--- /dev/null
+++ b/docs/stable/Enum.EmptyError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Enum.EmptyError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Enum.EmptyError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L90" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "empty error"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Enum.OutOfBoundsError.html b/docs/stable/Enum.OutOfBoundsError.html
new file mode 100644
index 000000000..ab207a18b
--- /dev/null
+++ b/docs/stable/Enum.OutOfBoundsError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Enum.OutOfBoundsError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Enum.OutOfBoundsError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L88" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "out of bounds error"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Enum.html b/docs/stable/Enum.html
new file mode 100644
index 000000000..8eb4586d3
--- /dev/null
+++ b/docs/stable/Enum.html
@@ -0,0 +1,976 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Enum</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Enum
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Provides a set of algorithms that enumerate over collections according to the
+<code>Enumerable</code> protocol. Most of the functions in this module have two
+flavours. If a given collection implements the mentioned protocol (like
+list, for instance), you can do:</p>
+
+<pre><code>Enum.map([1,2,3], fn(x) -&gt; x * 2 end)
+</code></pre>
+
+<p>Depending on the type of the collection, the user-provided function will
+accept a certain type of argument. For dicts, the argument is always a
+<code>{ key, value }</code> tuple.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L52" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#all?/2">all?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#any?/2">any?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#at/3">at/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#count/1">count/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#count/2">count/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#drop/2">drop/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#drop_while/2">drop_while/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#each/2">each/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#empty?/1">empty?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch/2">fetch/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch!/2">fetch!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#filter/2">filter/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#filter_map/3">filter_map/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#find/3">find/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#find_index/2">find_index/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#find_value/3">find_value/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#first/1">first/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#join/2">join/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#map/2">map/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#map_join/3">map_join/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#map_reduce/3">map_reduce/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#max/1">max/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#max/2">max/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#member?/2">member?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#min/1">min/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#min/2">min/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#partition/2">partition/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/3">reduce/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reverse/1">reverse/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#sort/1">sort/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#sort/2">sort/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/2">split/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split_while/2">split_while/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#take/2">take/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#take_while/2">take_while/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_list/1">to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#uniq/2">uniq/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#zip/2">zip/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="all?/2">
+    <strong>all?(collection, fun // fn x -&gt; x end)</strong>
+  </p>
+  <div class="docstring"><p>Invokes the given <code>fun</code> for each item in the <code>collection</code> and returns true if
+each invocation returns true as well, otherwise it short-circuits and returns
+false.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.all?([2,4,6], fn(x) -&gt; rem(x, 2) == 0 end)
+true
+
+iex&gt; Enum.all?([2,3,4], fn(x) -&gt; rem(x, 2) == 0 end)
+false
+</code></pre>
+
+<p>If no function is given, it defaults to checking if
+all items in the collection evaluate to true.</p>
+
+<pre><code>iex&gt; Enum.all?([1,2,3])
+true
+iex&gt; Enum.all?([1,nil,3])
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L138" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="any?/2">
+    <strong>any?(collection, fun // fn x -&gt; x end)</strong>
+  </p>
+  <div class="docstring"><p>Invokes the given <code>fun</code> for each item in the <code>collection</code> and returns true if
+at least one invocation returns true. Returns false otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.any?([2,4,6], fn(x) -&gt; rem(x, 2) == 1 end)
+false
+
+iex&gt; Enum.any?([2,3,4], fn(x) -&gt; rem(x, 2) == 1 end)
+true
+</code></pre>
+
+<p>If no function is given, it defaults to checking if
+at least one item in the collection evaluates to true.</p>
+
+<pre><code>iex&gt; Enum.any?([false,false,false])
+false
+iex&gt; Enum.any?([false,true,false])
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L176" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="at/3">
+    <strong>at(collection, n, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Finds the element at the given index (zero-based).
+Raises out of bounds error in case the given position
+is outside the range of the collection.</p>
+
+<p>Expects an ordered collection.</p>
+
+<p>## Examples</p>
+
+<pre><code>  iex&gt; Enum.at([2,4,6], 0)
+  2
+  iex&gt; Enum.at([2,4,6], 2)
+  6
+  iex&gt; Enum.at([2,4,6], 4)
+  nil
+  iex&gt; Enum.at([2,4,6], 4, :none)
+  :none
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L211" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="count/1">
+    <strong>count(collection)</strong>
+  </p>
+  <div class="docstring"><p>Returns the collection size.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.count([1,2,3])
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L99" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="count/2">
+    <strong>count(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Counts for how many items the function returns true.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L107" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="drop/2">
+    <strong>drop(collection, count)</strong>
+  </p>
+  <div class="docstring"><p>Drops the first <code>count</code> items from the collection.
+Expects an ordered collection.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.drop([1,2,3], 2)
+[3]
+iex&gt; Enum.drop([1,2,3], 10)
+[]
+iex&gt; Enum.drop([1,2,3], 0)
+[1,2,3]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L233" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="drop_while/2">
+    <strong>drop_while(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Drops items at the beginning of <code>collection</code> while <code>fun</code> returns true.
+Expects an ordered collection.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.drop_while([1,2,3,4,5], fn(x) -&gt; x &lt; 3 end)
+[3,4,5]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L260" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="each/2">
+    <strong>each(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Invokes the given <code>fun</code> for each item in the <code>collection</code>.
+Returns the <code>collection</code> itself. <code>fun</code> can take two parameters,
+in which case the second parameter will be the iteration index.</p>
+
+<h2>Examples</h2>
+
+<pre><code>Enum.each([&#39;some&#39;, &#39;example&#39;], fn(x) -&gt; IO.puts x end)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L282" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="empty?/1">
+    <strong>empty?(collection)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the collection is empty, otherwise false.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.empty?([])
+true
+iex&gt; Enum.empty?([1,2,3])
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L321" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch/2">
+    <strong>fetch(collection, n)</strong>
+  </p>
+  <div class="docstring"><p>Finds the element at the given index (zero-based).
+Returns <code>{ :ok, element }</code> if found, otherwise <code>:error</code>.</p>
+
+<p>Expects an ordered collection.</p>
+
+<p>## Examples</p>
+
+<pre><code>  iex&gt; Enum.fetch([2,4,6], 0)
+  { :ok, 2 }
+  iex&gt; Enum.fetch([2,4,6], 2)
+  { :ok, 6 }
+  iex&gt; Enum.fetch([2,4,6], 4)
+  :error
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L348" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch!/2">
+    <strong>fetch!(collection, n)</strong>
+  </p>
+  <div class="docstring"><p>Finds the element at the given index (zero-based).
+Raises out of bounds error in case the given position
+is outside the range of the collection.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.fetch!([2,4,6], 0)
+2
+
+iex&gt; Enum.fetch!([2,4,6], 2)
+6
+
+iex&gt; Enum.fetch!([2,4,6], 4)
+** (Enum.OutOfBoundsError) out of bounds error
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L384" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="filter/2">
+    <strong>filter(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Filters the collection, i.e. returns only those elements
+for which <code>fun</code> returns true.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.filter([1, 2, 3], fn(x) -&gt; rem(x, 2) == 0 end)
+[2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L402" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="filter_map/3">
+    <strong>filter_map(collection, filter, mapper)</strong>
+  </p>
+  <div class="docstring"><p>Filters the collection and maps its values in one pass.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.filter_map([1, 2, 3], fn(x) -&gt; rem(x, 2) == 0 end, &amp;1 * 2)
+[4]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L422" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="find/3">
+    <strong>find(collection, ifnone // nil, fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns the first item for which <code>fun</code> returns a truthy value. If no such
+item is found, returns <code>ifnone</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.find([2,4,6], fn(x) -&gt; rem(x, 2) == 1 end)
+nil
+
+iex&gt; Enum.find([2,4,6], 0, fn(x) -&gt; rem(x, 2) == 1 end)
+0
+
+iex&gt; Enum.find([2,3,4], fn(x) -&gt; rem(x, 2) == 1 end)
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L451" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="find_index/2">
+    <strong>find_index(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Similar to find, but returns the index (count starts with 0)
+of the item instead of the element itself.</p>
+
+<p>Expects an ordered collection.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.find_index([2,4,6], fn(x) -&gt; rem(x, 2) == 1 end)
+nil
+
+iex&gt; Enum.find_index([2,3,4], fn(x) -&gt; rem(x, 2) == 1 end)
+1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L512" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="find_value/3">
+    <strong>find_value(collection, ifnone // nil, fun)</strong>
+  </p>
+  <div class="docstring"><p>Similar to find, but returns the value of the function
+invocation instead of the element itself.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.find_value([2,4,6], fn(x) -&gt; rem(x, 2) == 1 end)
+nil
+
+iex&gt; Enum.find_value([2,3,4], fn(x) -&gt; rem(x, 2) == 1 end)
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L481" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="first/1">
+    <strong>first(collection)</strong>
+  </p>
+  <div class="docstring"><p>Returns the first item in the collection or nil otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.first([])
+nil
+iex&gt; Enum.first([1,2,3])
+1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L537" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="join/2">
+    <strong>join(collection, joiner // &quot;&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Joins the given <code>collection</code> according to <code>joiner</code>.
+Joiner can be either a binary or a list and the
+result will be of the same type as joiner. If
+joiner is not passed at all, it defaults to an
+empty binary.</p>
+
+<p>All items in the collection must be convertible
+to binary, otherwise an error is raised.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.join([1,2,3])
+&quot;123&quot;
+iex&gt; Enum.join([1,2,3], &quot; = &quot;)
+&quot;1 = 2 = 3&quot;
+iex&gt; Enum.join([1,2,3], &#39; = &#39;)
+&#39;1 = 2 = 3&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L570" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="map/2">
+    <strong>map(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns a new collection, where each item is the result
+of invoking <code>fun</code> on each corresponding item of <code>collection</code>.
+<code>fun</code> can take two parameters, in which case the second parameter
+will be the iteration index.</p>
+
+<p>For dicts, the function accepts a key-value tuple.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.map([1, 2, 3], fn(x) -&gt; x * 2 end)
+[2, 4, 6]
+
+iex&gt; Enum.map([a: 1, b: 2], fn({k, v}) -&gt; { k, -v } end)
+[a: -1, b: -2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L601" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="map_join/3">
+    <strong>map_join(collection, joiner // &quot;&quot;, mapper)</strong>
+  </p>
+  <div class="docstring"><p>Maps and joins the given <code>collection</code> in one pass.
+Joiner can be either a binary or a list and the
+result will be of the same type as joiner. If
+joiner is not passed at all, it defaults to an
+empty binary.</p>
+
+<p>All items in the collection must be convertible
+to binary, otherwise an error is raised.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.map_join([1,2,3], &amp;1 * 2)
+&quot;246&quot;
+iex&gt; Enum.map_join([1,2,3], &quot; = &quot;, &amp;1 * 2)
+&quot;2 = 4 = 6&quot;
+iex&gt; Enum.map_join([1,2,3], &#39; = &#39;, &amp;1 * 2)
+&#39;2 = 4 = 6&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L640" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="map_reduce/3">
+    <strong>map_reduce(collection, acc, fun)</strong>
+  </p>
+  <div class="docstring"><p>Invokes the given <code>fun</code> for each item in the <code>collection</code>
+while also keeping an accumulator. Returns a tuple where
+the first element is the mapped collection and the second
+one is the final accumulator.</p>
+
+<p>For dicts, the first tuple element has to be a { key, value }
+tuple itself.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.map_reduce([1, 2, 3], 0, fn(x, acc) -&gt; { x * 2, x + acc } end)
+{ [2, 4, 6], 6 }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L669" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="max/1">
+    <strong>max(collection)</strong>
+  </p>
+  <div class="docstring"><p>Returns the maximum value.
+Raises empty error in case the collection is empty.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.max([1,2,3])
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1004" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="max/2">
+    <strong>max(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns the maximum value.
+Raises empty error in case the collection is empty.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.max([&quot;a&quot;, &quot;aa&quot;, &quot;aaa&quot;], fn(x) -&gt; String.length(x) end)
+&quot;aaa&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1040" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="member?/2">
+    <strong>member?(collection, value)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the <code>value</code> exists within the <code>collection</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.member?(1..10, 5)
+true
+iex&gt; Enum.member?([:a, :b, :c], :d)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L85" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="min/1">
+    <strong>min(collection)</strong>
+  </p>
+  <div class="docstring"><p>Returns the manimum value.
+Raises empty error in case the collection is empty.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.min([1,2,3])
+1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1079" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="min/2">
+    <strong>min(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns the manimum value.
+Raises empty error in case the collection is empty.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.min([&quot;a&quot;, &quot;aa&quot;, &quot;aaa&quot;], fn(x) -&gt; String.length(x) end)
+&quot;a&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1119" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="partition/2">
+    <strong>partition(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Partitions <code>collection</code> into two where the first one contains elements
+for which <code>fun</code> returns a truthy value, and the second one -- for which <code>fun</code>
+returns false or nil.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.partition([1, 2, 3], fn(x) -&gt; rem(x, 2) == 0 end)
+{ [2], [1,3] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L689" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/3">
+    <strong>reduce(collection, acc, fun)</strong>
+  </p>
+  <div class="docstring"><p>Invokes <code>fun</code> for each element in the collection passing that element and the
+accumulator <code>acc</code> as arguments. <code>fun</code>&#39;s return value is stored in <code>acc</code>.
+Returns the accumulator.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.reduce([1, 2, 3], 0, fn(x, acc) -&gt; x + acc end)
+6
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L713" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reverse/1">
+    <strong>reverse(collection)</strong>
+  </p>
+  <div class="docstring"><p>Reverses the collection.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.reverse([1, 2, 3])
+[3, 2, 1]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L727" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="sort/1">
+    <strong>sort(collection)</strong>
+  </p>
+  <div class="docstring"><p>Returns a sorted list of collection elements. Uses the merge sort algorithm.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.sort([3,2,1])
+[1,2,3]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L747" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="sort/2">
+    <strong>sort(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns a sorted list of collection elements. Uses the merge sort algorithm.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.sort([1,2,3], &amp;1 &gt; &amp;2)
+[3,2,1]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L767" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/2">
+    <strong>split(collection, count)</strong>
+  </p>
+  <div class="docstring"><p>Splits the enumerable into two collections, leaving <code>count</code>
+elements in the first one. If <code>count</code> is a negative number,
+it starts couting from the back to the beginning of the
+collection.</p>
+
+<p>Be aware that a negative <code>count</code> implies the collection
+will be iterate twice. One to calculate the position and
+another one to do the actual splitting.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.split([1,2,3], 2)
+{ [1,2], [3] }
+iex&gt; Enum.split([1,2,3], 10)
+{ [1,2,3], [] }
+iex&gt; Enum.split([1,2,3], 0)
+{ [], [1,2,3] }
+iex&gt; Enum.split([1,2,3], -1)
+{ [1,2], [3] }
+iex&gt; Enum.split([1,2,3], -5)
+{ [], [1,2,3] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L801" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split_while/2">
+    <strong>split_while(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Splits <code>collection</code> in two while <code>fun</code> returns true.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.split_while([1,2,3,4], fn(x) -&gt; x &lt; 3 end)
+{ [1, 2], [3, 4] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L832" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="take/2">
+    <strong>take(collection, count)</strong>
+  </p>
+  <div class="docstring"><p>Takes the first <code>count</code> items from the collection. Expects an ordered
+collection.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.take([1,2,3], 2)
+[1,2]
+iex&gt; Enum.take([1,2,3], 10)
+[1,2,3]
+iex&gt; Enum.take([1,2,3], 0)
+[]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L863" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="take_while/2">
+    <strong>take_while(collection, fun)</strong>
+  </p>
+  <div class="docstring"><p>Takes the items at the beginning of <code>collection</code> while <code>fun</code> returns true.
+Expects an ordered collection.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.take_while([1,2,3], fn(x) -&gt; x &lt; 3 end)
+[1, 2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L900" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_list/1">
+    <strong>to_list(collection)</strong>
+  </p>
+  <div class="docstring"><p>Convert <code>collection</code> to a list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.to_list(1 .. 3)
+[1, 2, 3]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L926" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="uniq/2">
+    <strong>uniq(collection, fun // fn x -&gt; x end)</strong>
+  </p>
+  <div class="docstring"><p>Iterates the enumerable removing all duplicated items.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Enum.uniq([1,2,3,2,1])
+[1, 2, 3]
+
+iex&gt; Enum.uniq([{1,:x}, {2,:y}, {1,:z}], fn {x,_} -&gt; x end)
+[{1,:x}, {2,:y}]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L950" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="zip/2">
+    <strong>zip(coll1, coll2)</strong>
+  </p>
+  <div class="docstring"><p>Zips corresponding elements from two collections into one list
+of tuples. The number of elements in the resulting list is
+dictated by the first enum. In case the second list is shorter,
+values are filled with nil.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L976" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Enumerable.Function.html b/docs/stable/Enumerable.Function.html
new file mode 100644
index 000000000..a8a30fe33
--- /dev/null
+++ b/docs/stable/Enumerable.Function.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Enumerable.Function</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Enumerable.Function
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1471" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#count/1">count/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#member?/2">member?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/3">reduce/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="count/1">
+    <strong>count(function)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1484" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="member?/2">
+    <strong>member?(function, value)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1476" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/3">
+    <strong>reduce(function, acc, fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1472" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Enumerable.HashDict.html b/docs/stable/Enumerable.HashDict.html
new file mode 100644
index 000000000..0698de990
--- /dev/null
+++ b/docs/stable/Enumerable.HashDict.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Enumerable.HashDict</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Enumerable.HashDict
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L580" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#count/1">count/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#member?/2">member?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/3">reduce/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="count/1">
+    <strong>count(dict)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L584" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="member?/2">
+    <strong>member?(dict, arg2)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L582" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/3">
+    <strong>reduce(dict, acc, fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L581" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Enumerable.List.html b/docs/stable/Enumerable.List.html
new file mode 100644
index 000000000..0ae27785b
--- /dev/null
+++ b/docs/stable/Enumerable.List.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Enumerable.List</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Enumerable.List
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1456" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#count/1">count/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#member?/2">member?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/3">reduce/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="count/1">
+    <strong>count(list)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1468" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="member?/2">
+    <strong>member?(list, value)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1465" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/3">
+    <strong>reduce(list1, acc, fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1457" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Enumerable.Range.html b/docs/stable/Enumerable.Range.html
new file mode 100644
index 000000000..d9622d3cc
--- /dev/null
+++ b/docs/stable/Enumerable.Range.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Enumerable.Range</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Enumerable.Range
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L16" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#count/1">count/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#member?/2">member?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/3">reduce/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="count/1">
+    <strong>count(range)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L24" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="member?/2">
+    <strong>member?(arg1, value)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L20" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/3">
+    <strong>reduce(range, acc, fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Enumerable.html b/docs/stable/Enumerable.html
new file mode 100644
index 000000000..82f4736ba
--- /dev/null
+++ b/docs/stable/Enumerable.html
@@ -0,0 +1,168 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Enumerable</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Enumerable
+        
+          <small>protocol</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This is the protocol used by the <code>Enum</code> module.</p>
+
+<p>Usually, when you invoke a function in the module <code>Enum</code>, the first argument
+passed to it is a collection which is forwarded to this protocol in order to
+perform operations on the collection.</p>
+
+<p>For example, in the expression</p>
+
+<pre><code>Enum.map([1,2,3], &amp;1 * 2)
+</code></pre>
+
+<p><code>Enum.map</code> invokes <code>Enumerable.reduce</code> to perform the reducing operation
+that builds a mapped list by calling the mapping function <code>&amp;1 * 2</code> on every
+element in the collection and cons&#39;ing the element with the accumulated list.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+        <h2 id="implementations">Implementations</h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Enumerable.Function.html">Function</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Enumerable.HashDict.html">HashDict</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Enumerable.List.html">List</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Enumerable.Range.html">Range</a>
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#count/1">count/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#member?/2">member?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/3">reduce/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="count/1">
+    <strong>count(collection)</strong>
+  </p>
+  <div class="docstring"><p>The function used to retrieve the collection&#39;s size.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="member?/2">
+    <strong>member?(collection, value)</strong>
+  </p>
+  <div class="docstring"><p>The function used to check if a value exists within the collection.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L44" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/3">
+    <strong>reduce(collection, acc, fun)</strong>
+  </p>
+  <div class="docstring"><p>This function performs the reducing operation on a given collection. It
+returns the accumulated value of applying the given function <code>fun</code> on every
+element with the accumulated value.</p>
+
+<p>As an example, here is the implementation of <code>reduce</code> for lists:</p>
+
+<pre><code>def reduce([h|t], acc, fun), do: reduce(t, fun.(h, acc), fun)
+def reduce([], acc, _fun),   do: acc
+</code></pre>
+
+<p>As an additional example, here is the implementation of <code>Enum.map</code> with
+<code>Enumerable</code>:</p>
+
+<pre><code>def map(collection, fun) do
+  Enumerable.reduce(collection, [], fn(entry, acc) -&gt;
+    [fun.(entry)|acc]
+  end) |&gt; :lists.reverse
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/enum.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ErlangError.html b/docs/stable/ErlangError.html
new file mode 100644
index 000000000..1bb5b250b
--- /dev/null
+++ b/docs/stable/ErlangError.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ErlangError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ErlangError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L76" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>original:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L77" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ExUnit.AssertionError.html b/docs/stable/ExUnit.AssertionError.html
new file mode 100644
index 000000000..69fe5cbd2
--- /dev/null
+++ b/docs/stable/ExUnit.AssertionError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.AssertionError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.AssertionError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "assertion failed"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ExUnit.Assertions.html b/docs/stable/ExUnit.Assertions.html
new file mode 100644
index 000000000..a139d5be1
--- /dev/null
+++ b/docs/stable/ExUnit.Assertions.html
@@ -0,0 +1,471 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.Assertions</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.Assertions
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module contains a set of assertions functions that are
+imported by default into your test cases.</p>
+
+<p>In general, a developer will want to use the general
+<code>assert</code> macro in tests. The macro tries to be smart
+and provide good reporting whenever there is a failure.
+For example, <code>assert some_fun() == 10</code> will fail (assuming
+<code>some_fun()</code> returns 13):</p>
+
+<pre><code>Expected 10 to be equal to 13
+</code></pre>
+
+<p>This module also provides other small convenient functions
+like <code>assert_in_delta</code> and <code>assert_raise</code> to easily handle other
+common cases as checking a float number or handling exceptions.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L20" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#assert/2">assert/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#assert/4">assert/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#assert_in_delta/4">assert_in_delta/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#assert_raise/2">assert_raise/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#assert_raise/3">assert_raise/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#flunk/1">flunk/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#refute/2">refute/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#refute_in_delta/4">refute_in_delta/4</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#assert/1">assert/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#assert_receive/3">assert_receive/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#assert_received/2">assert_received/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#catch_error/1">catch_error/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#catch_exit/1">catch_exit/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#catch_throw/1">catch_throw/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#refute/1">refute/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#refute_receive/3">refute_receive/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#refute_received/2">refute_received/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="assert/2">
+    <strong>assert(expected, message)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the <code>expected</code> value is true.
+If it fails, raises the given <code>message</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert false, &quot;it will never be true&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L203" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="assert/4">
+    <strong>assert(value, expected, actual, opts)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the <code>expected</code> value is true.
+If it fails, it raises an expectation error
+using the given expected and actual values.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert this &gt; that, this, that, reason: &quot;more than&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L218" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="assert_in_delta/4">
+    <strong>assert_in_delta(expected, received, delta, message // nil)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the <code>expected</code> and <code>received</code> are within <code>delta</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert_in_delta 1.1, 1.5, 0.2
+assert_in_delta 10, 15, 4
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L337" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="assert_raise/2">
+    <strong>assert_raise(exception, function)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the <code>exception</code> is raised during <code>function</code> execution.
+Returns the rescued exception, fails otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert_raise ArithmeticError, fn -&gt;
+  1 + &quot;test&quot;
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L311" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="assert_raise/3">
+    <strong>assert_raise(exception, message, function)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the <code>exception</code> is raised during <code>function</code> execution with
+the <code>expected_message</code>. Returns the rescued exception, fails otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert_raise ArithmeticError, &quot;bad argument in arithmetic expression&quot;, fn -&gt;
+  1 + &quot;test&quot;
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L293" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="flunk/1">
+    <strong>flunk(message // &quot;Epic Fail!&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Fails with a message.</p>
+
+<h2>Examples</h2>
+
+<pre><code>flunk &quot;This should raise an error&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L483" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="refute/2">
+    <strong>refute(not_expected, message)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the <code>not_expected</code> value is nil or false.
+In case it is a truthy value, raises the given message.</p>
+
+<h2>Examples</h2>
+
+<pre><code>refute true, &quot;This will obviously fail&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L405" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="refute_in_delta/4">
+    <strong>refute_in_delta(expected, received, delta, message // nil)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the <code>expected</code> and <code>received</code> are not within <code>delta</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>refute_in_delta 1.1, 1.2, 0.2
+refute_in_delta 10, 11, 2
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L466" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="assert/1">
+    <strong>assert(expected)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the <code>expected</code> value is true.</p>
+
+<p><code>assert</code> in general tries to be smart and provide a good
+reporting whenever there is a failure. For example,
+<code>assert 10 &gt; 15</code> is going to fail with a message:</p>
+
+<pre><code>Expected 10 to be more than 15
+</code></pre>
+
+<h2>Examples</h2>
+
+<pre><code>assert true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L52" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="assert_receive/3">
+    <strong>assert_receive(expected, timeout // 100, message // nil)</strong>
+  </p>
+  <div class="docstring"><p>Assets a message was or is going to be received. Differently from
+<code>assert_received</code>, it has a default timeout time of 100 miliseconds.</p>
+
+<p>The given <code>expected</code> content must be a pattern.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert_receive :hello
+</code></pre>
+
+<p>Asserts against a larger timeout:</p>
+
+<pre><code>assert_receive :hello, 20_000
+</code></pre>
+
+<p>You can also match against specific patterns:</p>
+
+<pre><code>assert_receive { :hello, _ }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L245" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="assert_received/2">
+    <strong>assert_received(expected, message // nil)</strong>
+  </p>
+  <div class="docstring"><p>Asserts a message was received and is in the current process mailbox.
+The given <code>expected</code> content must to be a match pattern.</p>
+
+<p>Timeout is set to 0, so there is no waiting time.</p>
+
+<h2>Examples</h2>
+
+<pre><code>self &lt;- :hello
+assert_received :hello
+</code></pre>
+
+<p>You can also match against specific patterns:</p>
+
+<pre><code>self &lt;- { :hello, &quot;world&quot; }
+assert_received { :hello, _ }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L266" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="catch_error/1">
+    <strong>catch_error(expression)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the given <code>expression</code> will cause an error.
+Returns the error or fails otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert catch_error(error 1) == 1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L379" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="catch_exit/1">
+    <strong>catch_exit(expression)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the given <code>expression</code> will exit.
+Returns the exit status/message or fails otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert catch_exit(exit 1) == 1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L366" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="catch_throw/1">
+    <strong>catch_throw(expression)</strong>
+  </p>
+  <div class="docstring"><p>Asserts the given <code>expression</code> will throw a value.
+Returns the thrown value or fails otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>assert catch_throw(throw 1) == 1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L353" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="refute/1">
+    <strong>refute(expected)</strong>
+  </p>
+  <div class="docstring"><p>Refutes the <code>expected</code> value is true.</p>
+
+<p><code>refute</code> in general tries to be smart and provide a good
+reporting whenever there is a failure.</p>
+
+<h2>Examples</h2>
+
+<pre><code>refute false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L72" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="refute_receive/3">
+    <strong>refute_receive(not_expected, timeout // 100, message // nil)</strong>
+  </p>
+  <div class="docstring"><p>Asserts a message was not received and won&#39;t be during
+a timeout value.</p>
+
+<p>The <code>not_expected</code> contents must be a match pattern.</p>
+
+<h2>Examples</h2>
+
+<pre><code>refute_receive :bye
+</code></pre>
+
+<p>Refute received with a explicit timeout:</p>
+
+<pre><code>refute_receive :bye, 1000
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L424" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="refute_received/2">
+    <strong>refute_received(not_expected, message // nil)</strong>
+  </p>
+  <div class="docstring"><p>Asserts a message was not received (i.e. it is not in the current process mailbox).
+The <code>not_expected</code> contents must be a match pattern.</p>
+
+<p>Timeout is set to 0, so there is no waiting time.</p>
+
+<h2>Examples</h2>
+
+<pre><code>self &lt;- :hello
+refute_received :bye
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L440" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ExUnit.CLIFormatter.html b/docs/stable/ExUnit.CLIFormatter.html
new file mode 100644
index 000000000..76c5bcc8a
--- /dev/null
+++ b/docs/stable/ExUnit.CLIFormatter.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.CLIFormatter</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.CLIFormatter
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Formatter responsible for printing raw text
+on the CLI</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/cli_formatter.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#case_finished/2">case_finished/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#case_started/2">case_started/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#suite_finished/3">suite_finished/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#suite_started/1">suite_started/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#test_finished/2">test_finished/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#test_started/2">test_started/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="case_finished/2">
+    <strong>case_finished(id, test_case)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/cli_formatter.ex#L29" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="case_started/2">
+    <strong>case_started(_id, _test_case)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/cli_formatter.ex#L25" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="suite_finished/3">
+    <strong>suite_finished(id, run_us, load_us)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/cli_formatter.ex#L21" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="suite_started/1">
+    <strong>suite_started(_opts)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/cli_formatter.ex#L16" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="test_finished/2">
+    <strong>test_finished(id, test)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/cli_formatter.ex#L37" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="test_started/2">
+    <strong>test_started(_id, _test)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/cli_formatter.ex#L33" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ExUnit.Callbacks.html b/docs/stable/ExUnit.Callbacks.html
new file mode 100644
index 000000000..293a34e16
--- /dev/null
+++ b/docs/stable/ExUnit.Callbacks.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.Callbacks</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.Callbacks
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module defines four callbacks: <code>setup_all</code>, <code>teardown_all</code>,
+<code>setup</code> and <code>teardown</code>. Those callbacks are defined via macros
+and receives a keyword list of metadata. The callback may
+optionally define extra data which will be available in the test
+cases.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule AssertionTest do
+  use ExUnit.Case, async: true
+
+  setup do
+    IO.puts &quot;This is a setup callback&quot;
+
+    # Returns extra metadata
+    { :ok, [hello: &quot;world&quot;] }
+  end
+
+  setup context do
+    # We can access the test name in the context
+    IO.puts &quot;Setting up: #{context[:test]}&quot;
+
+    # The metadata returned by the previous setup as well
+    assert context[:hello] == &quot;world&quot;
+
+    # No metadata
+    :ok
+  end
+
+  test &quot;always pass&quot; do
+    assert true
+  end
+end
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/callbacks.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#setup/2">setup/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#setup_all/2">setup_all/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#teardown/2">teardown/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#teardown_all/2">teardown_all/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="setup/2">
+    <strong>setup(var // quote() do
+  _
+end, block)</strong>
+  </p>
+  <div class="docstring"><p>Called before the start of each test.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/callbacks.ex#L85" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="setup_all/2">
+    <strong>setup_all(var // quote() do
+  _
+end, block)</strong>
+  </p>
+  <div class="docstring"><p>Called before the start of a case.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/callbacks.ex#L108" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="teardown/2">
+    <strong>teardown(var // quote() do
+  _
+end, block)</strong>
+  </p>
+  <div class="docstring"><p>Called after the finish of each test. Note that, if the test crasches with an exit
+message <code>teardown</code> will not be run.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/callbacks.ex#L97" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="teardown_all/2">
+    <strong>teardown_all(var // quote() do
+  _
+end, block)</strong>
+  </p>
+  <div class="docstring"><p>Called after the finish of each case.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/callbacks.ex#L119" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ExUnit.CaptureIO.html b/docs/stable/ExUnit.CaptureIO.html
new file mode 100644
index 000000000..ff90b72b5
--- /dev/null
+++ b/docs/stable/ExUnit.CaptureIO.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.CaptureIO</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.CaptureIO
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module provides functionality to capture IO to test it.
+The way to use this module is to import them into your module.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule AssertionTest do
+  use ExUnit.Case
+
+  import ExUnit.CaptureIO
+
+  test :example do
+    assert capture_io(fn -&gt;
+      IO.puts &quot;a&quot;
+    end) == &quot;a\n&quot;
+  end
+end
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/capture_io.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#capture_io/1">capture_io/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#capture_io/2">capture_io/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#capture_io/3">capture_io/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="capture_io/1">
+    <strong>capture_io(fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/capture_io.ex#L61" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="capture_io/2">
+    <strong>capture_io(device, fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/capture_io.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="capture_io/3">
+    <strong>capture_io(device, input, fun)</strong>
+  </p>
+  <div class="docstring"><p>Captures IO. Returns nil in case of no output,
+otherwise returns the binary which is captured outputs.</p>
+
+<p>By default, capture<em>io replaces the group</em>leader (<code>:stdio</code>)
+for the current process. However, the capturing of any other
+named device like <code>:stderr</code> is also possible globally by
+giving the registered device name explicitly as argument.</p>
+
+<p>A developer can set a string as an input. The default
+input is <code>:eof</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; capture_io(fn -&gt; IO.write &quot;josé&quot; end) == &quot;josé&quot;
+true
+iex&gt; capture_io(fn -&gt; :ok end) == nil
+true
+iex&gt; capture_io(:stderr, fn -&gt; IO.write(:stderr, &quot;josé&quot;) end) == &quot;josé&quot;
+true
+iex&gt; capture_io(&quot;this is input&quot;, fn-&gt;
+...&gt;   input = IO.gets &quot;&quot;
+...&gt;   IO.write input
+...&gt; end) == &quot;this is input&quot;
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/capture_io.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ExUnit.Case.html b/docs/stable/ExUnit.Case.html
new file mode 100644
index 000000000..bd666abb5
--- /dev/null
+++ b/docs/stable/ExUnit.Case.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.Case</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.Case
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module is meant to be used in other modules
+as a way to configure and prepare them for testing.</p>
+
+<p>When used, it allows the following options:</p>
+
+<ul>
+<li>:async - configure Elixir to run that specific test case
+       in parallel with others. Must be used for performance
+       when your test cases do not change any global state;</li>
+</ul>
+
+<p>This module automatically includes all callbacks defined
+in <code>ExUnit.Callbacks</code>. Read it for more information.</p>
+
+<h2>Examples</h2>
+
+<p>defmodule AssertionTest do
+     use ExUnit.Case, async: true</p>
+
+<pre><code> def test_always_pass
+   assert true
+ end
+</code></pre>
+
+<p>end</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/case.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#test/3">test/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="test/3">
+    <strong>test(message, var // quote() do
+  _
+end, contents)</strong>
+  </p>
+  <div class="docstring"><p>Provides a convenient macro that allows a test to be
+defined with a string. This macro automatically inserts
+the atom :ok as the last line of the test. That said,
+a passing test always returns :ok, but, more important,
+it forces Elixir to not tail call optimize the test and
+therefore avoiding hiding lines from the backtrace.</p>
+
+<h2>Examples</h2>
+
+<pre><code>test &quot;true is equal to true&quot; do
+  assert true == true
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/case.ex#L67" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ExUnit.CaseTemplate.html b/docs/stable/ExUnit.CaseTemplate.html
new file mode 100644
index 000000000..03e7211ed
--- /dev/null
+++ b/docs/stable/ExUnit.CaseTemplate.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.CaseTemplate</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.CaseTemplate
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module allows a developer to define a test case
+template to be used throughout his tests. This is useful
+when there are a set of functions that should be shared
+between tests or a set of setup/teardown callbacks.</p>
+
+<p>By using this module, the callbacks and assertions
+available for regular test cases will also be available.</p>
+
+<h2>Example</h2>
+
+<pre><code>defmodule MyCase do
+  use ExUnit.CaseTemplate
+
+  setup do
+    IO.puts &quot;This will run before each test that uses this case&quot;
+  end
+end
+
+defmodule MyTest do
+  use MyCase, async: true
+
+  test &quot;truth&quot; do
+    assert true
+  end
+end
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/case_template.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#using/2">using/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="using/2">
+    <strong>using(var // quote() do
+  _
+end, list2)</strong>
+  </p>
+  <div class="docstring"><p>Allows a developer to code to be invoked when
+this module is used.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/case_template.ex#L60" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ExUnit.DocTest.Error.html b/docs/stable/ExUnit.DocTest.Error.html
new file mode 100644
index 000000000..cbed12b10
--- /dev/null
+++ b/docs/stable/ExUnit.DocTest.Error.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.DocTest.Error</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.DocTest.Error
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/doc_test.ex#L102" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ExUnit.DocTest.html b/docs/stable/ExUnit.DocTest.html
new file mode 100644
index 000000000..6aae6c934
--- /dev/null
+++ b/docs/stable/ExUnit.DocTest.html
@@ -0,0 +1,207 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.DocTest</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.DocTest
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>ExUnit.DocTest implements functionality similar to <a href="http://docs.python.org/2/library/doctest.html">Python&#39;s
+doctest</a>.</p>
+
+<p>In a nutshell, it allows us to generate tests from the code
+examples existing in module/function/macro&#39;s documentation.
+In order to do that, one needs to invoke <code>doctest/1</code> macro
+from their test case and write their examples according
+to some guidelines.</p>
+
+<p>The syntax for examples is as follows. Every new test starts
+on a new line, with an &quot;iex&gt;&quot; prefix. Multiline expressions
+can be employed if the following lines start with either
+&quot;...&gt;&quot; (recommended) or &quot;iex&gt;&quot; prefix.</p>
+
+<p>The expected result should start at the next line after &quot;iex&gt;&quot;
+or &quot;...&gt;&quot; line(s) and is terminated either by a newline, new
+&quot;iex&gt;&quot; prefix or end of the string literal.</p>
+
+<h2>Examples</h2>
+
+<p>Currently, the only way to run doctests is to include them into
+an ExUnit case with a <code>doctest</code> macro:</p>
+
+<pre><code>defmodule MyModule.Test do
+  use ExUnit.Case, async: true
+  doctest MyModule
+end
+</code></pre>
+
+<p>The <code>doctest</code> macro is going to loop through all functions and
+macros defined in <code>MyModule</code>, parsing their documentation in
+search for code examples.</p>
+
+<p>A very basic example is:</p>
+
+<pre><code>iex&gt; 1+1
+2
+</code></pre>
+
+<p>Expressions on multiple lines are also supported:</p>
+
+<pre><code>iex&gt; Enum.map [1,2,3], fn(x) -&gt;
+...&gt;   x * 2
+...&gt; end
+[2,4,6]
+</code></pre>
+
+<p>Multiple results can be checked within the same test:</p>
+
+<pre><code>iex&gt; a = 1
+1
+iex&gt; a + 1
+2
+</code></pre>
+
+<p>If you want to keep any two tests separate from each other,
+add an empty line between them:</p>
+
+<pre><code>iex&gt; a = 1
+1
+
+iex&gt; a + 1  # will fail with a &quot;function a/0 undefined&quot; error
+2
+</code></pre>
+
+<p>Similarly to iex you can use numbers in your &quot;prompts&quot;:</p>
+
+<pre><code>iex(1)&gt; [1+2,
+...(1)&gt;  3]
+[3,3]
+</code></pre>
+
+<p>This is useful in two use cases:</p>
+
+<ul>
+<li>Being able to refer to specific numbered scenarios</li>
+<li>Copy-pasting examples from an actual iex sessions</li>
+</ul>
+
+<p>We also allow you to select or skip some functions when calling
+<code>doctest</code>. See its documentation for more info.</p>
+
+<h2>Exceptions</h2>
+
+<p>You can also showcase expressions raising an exception, for example:</p>
+
+<pre><code>iex(1)&gt; binary_to_atom((fn() -&gt; 1 end).())
+** (ArgumentError) argument error
+</code></pre>
+
+<p>What DocTest will be looking for is a line starting with &quot;** (&quot; and it
+will parse it accordingly to extract the exception name and the message.
+At this moment, the exception parser would make the parser treat the next
+line as a start of a completely new expression (if it is prefixed with iex&gt;)
+or a no-op line with documentation. Thus, multiline messages are not
+supported.</p>
+
+<h2>When not to use doctest</h2>
+
+<p>In general, doctests are not recommended when your code examples contain
+side effects. For example, if a doctest prints to standard output, doctest
+will not try to capture the output.</p>
+
+<p>Similarly, doctest does not run in any kind of sandbox. So any module
+defined in a code example is going to linger throughout the whole test suite
+run.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/doc_test.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#doctest/2">doctest/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="doctest/2">
+    <strong>doctest(mod, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>This macro is used to generate ExUnit test cases for doctests.</p>
+
+<p>Calling <code>doctest(Module)</code> will generate tests for all doctests found
+in the module <code>Module</code></p>
+
+<p>Options can also be supplied:</p>
+
+<ul>
+<li><p><code>:except</code> — generate tests for all functions except those listed
+          (list of <code>{function, arity}</code> tuples)</p></li>
+<li><p><code>:only</code>   — generate tests only forfunctions listed
+          (list of <code>{function, arity}</code> tuples)</p></li>
+<li><p><code>:import</code> — when true, one can test a function defined in the module
+          without referring to the module name. However, this is not
+          feasible when there is a clash with a number module like
+          Kernel. In these cases, <code>import</code> should be set to <code>false</code>
+          and a full <code>M.f</code> construct should be used.</p></li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>doctest MyModule, except: [trick_fun: 1]
+</code></pre>
+
+<p>This macro is auto-imported with every <code>ExUnit.Case</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/doc_test.ex#L132" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ExUnit.ExpectationError.html b/docs/stable/ExUnit.ExpectationError.html
new file mode 100644
index 000000000..840b43356
--- /dev/null
+++ b/docs/stable/ExUnit.ExpectationError.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.ExpectationError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.ExpectationError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L3" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>expected:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>actual:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>reason:</strong> ""
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>negation:</strong> false
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>prelude:</strong> "Expected"
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>description:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#full_reason/1">full_reason/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="full_reason/1">
+    <strong>full_reason(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L15" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/assertions.ex#L5" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ExUnit.Formatter.html b/docs/stable/ExUnit.Formatter.html
new file mode 100644
index 000000000..ae02679a5
--- /dev/null
+++ b/docs/stable/ExUnit.Formatter.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.Formatter</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.Formatter
+        
+          <small>behaviour</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module simply defines the callbacks
+expected by an ExUnit.Formatter.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/formatter.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+        <h2 id="callbacks_summary">Callbacks summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#test_finished/2">test_finished/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#test_started/2">test_started/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#case_finished/2">case_finished/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#case_started/2">case_started/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#suite_finished/3">suite_finished/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#suite_started/1">suite_started/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="callbacks_details" class="details_list">
+          <h2>Callbacks</h2>
+          <div class="detail">
+  <p class="signature" id="test_finished/2">
+    <strong>test_finished(id(), test())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/formatter.ex#L23" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="test_started/2">
+    <strong>test_started(id(), test())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/formatter.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="case_finished/2">
+    <strong>case_finished(id(), test_case())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/formatter.ex#L20" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="case_started/2">
+    <strong>case_started(id(), test_case())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/formatter.ex#L19" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="suite_finished/3">
+    <strong>suite_finished(id(), run_us(), load_us())</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/formatter.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="suite_started/1">
+    <strong>suite_started(opts :: [])</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit/formatter.ex#L16" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ExUnit.Test.html b/docs/stable/ExUnit.Test.html
new file mode 100644
index 000000000..880c03415
--- /dev/null
+++ b/docs/stable/ExUnit.Test.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.Test</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.Test
+        
+          <small>record</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A record that keeps information about the test.
+It is received by formatters and also accessible
+in the metadata under the key <code>:test</code>.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit.ex#L2" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>name:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>case:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>failure:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>invalid:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ExUnit.TestCase.html b/docs/stable/ExUnit.TestCase.html
new file mode 100644
index 000000000..7b2214eee
--- /dev/null
+++ b/docs/stable/ExUnit.TestCase.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit.TestCase</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit.TestCase
+        
+          <small>record</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A record that keeps information about the test case.
+It is received by formatters and also accessible
+in the metadata under the key <code>:case</code>.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit.ex#L10" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>name:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>failure:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ExUnit.html b/docs/stable/ExUnit.html
new file mode 100644
index 000000000..17f1bc95a
--- /dev/null
+++ b/docs/stable/ExUnit.html
@@ -0,0 +1,168 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ExUnit</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ExUnit
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Basic unit test structure for Elixir.</p>
+
+<h2>Example</h2>
+
+<p>A basic setup for ExUnit is shown below:</p>
+
+<pre><code># File: assertion_test.exs
+
+# 1) Start ExUnit. You can pass some options as argument (list below)
+ExUnit.start
+
+# 2) Next we create a new TestCase and use ExUnit.Case
+defmodule AssertionTest do
+  # 3) Notice we pass async: true, this runs the test case
+  #    concurrently with other test cases
+  use ExUnit.Case, async: true
+
+  # 4) A test is a function whose name starts with
+  #    test and receives a context
+  def test_always_pass(_) do
+    assert true
+  end
+
+  # 5) It is recommended to use the test macro instead of def
+  test &quot;the truth&quot; do
+    assert true
+  end
+end
+</code></pre>
+
+<p>To run the test above, all you need to to is to run the file
+using elixir from command line. Assuming you named your file
+assertion_test.exs, you can run it as:</p>
+
+<pre><code>bin/elixir assertion_test.exs
+</code></pre>
+
+<h2>Case, callbacks and assertions</h2>
+
+<p>Check <code>ExUnit.Case</code> and <code>ExUnit.Callbacks</code> for more information about
+defining test cases.</p>
+
+<p>The <code>ExUnit.Assertions</code> module contains a set of macros to easily
+generate assertions with appropriate error messages.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#configure/1">configure/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#run/0">run/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#start/1">start/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="configure/1">
+    <strong>configure(options)</strong>
+  </p>
+  <div class="docstring"><p>Configures ExUnit.</p>
+
+<h2>Options</h2>
+
+<p>ExUnit supports the following options given to start:</p>
+
+<ul>
+<li><p><code>:formatter</code> - The formatter that will print results.
+             Defaults to <code>ExUnit.CLIFormatter</code>;</p></li>
+<li><p><code>:max_cases</code> - Maximum number of cases to run in parallel.
+             Defaults to <code>:erlang.system_info(:schedulers_online)</code>;</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit.ex#L111" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="run/0">
+    <strong>run()</strong>
+  </p>
+  <div class="docstring"><p>API used to run the tests. It is invoked automatically
+if ExUnit is started via <code>ExUnit.start</code>.</p>
+
+<p>Returns the number of failures.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit.ex#L121" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="start/1">
+    <strong>start(options // [])</strong>
+  </p>
+  <div class="docstring"><p>Starts up ExUnit and automatically set it up to run
+tests at the VM exit. It accepts a set of options to
+configure <code>ExUnit</code> (the same ones accepted by <code>configure/1</code>).</p>
+
+<p>In case you want to run tests manually, skip calling this
+function and rely on <code>configure/1</code> and <code>run/0</code> instead.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/ex_unit/lib/ex_unit.ex#L79" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Exception.html b/docs/stable/Exception.html
new file mode 100644
index 000000000..e6c0189d1
--- /dev/null
+++ b/docs/stable/Exception.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Exception</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Exception
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Several convenience functions to work and pretty print
+exceptions and stacktraces.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L92" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#format_file_line/3">format_file_line/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#format_stacktrace/1">format_stacktrace/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#format_stacktrace_entry/2">format_stacktrace_entry/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#normalize/1">normalize/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#print_stacktrace/1">print_stacktrace/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="format_file_line/3">
+    <strong>format_file_line(file, line, cwd)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L254" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="format_stacktrace/1">
+    <strong>format_stacktrace(trace // nil)</strong>
+  </p>
+  <div class="docstring"><p>Formats the stacktrace.</p>
+
+<p>A stacktrace must be given as argument. If not, this function
+calculates the current stacktrace and formats it. As consequence,
+the value of <code>System.stacktrace</code> is changed.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L190" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="format_stacktrace_entry/2">
+    <strong>format_stacktrace_entry(entry, cwd // nil)</strong>
+  </p>
+  <div class="docstring"><p>Receives a tuple representing a stacktrace entry and formats it.
+The current working directory may be given as argument, which
+is used to prettify the stacktrace.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L158" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="normalize/1">
+    <strong>normalize(exception)</strong>
+  </p>
+  <div class="docstring"><p>Normalizes an exception converting Erlang exceptions
+to Elixir exceptions. Useful when interfacing Erlang
+code with Elixir code.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L103" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="print_stacktrace/1">
+    <strong>print_stacktrace(trace // nil)</strong>
+  </p>
+  <div class="docstring"><p>Prints the current stacktrace to standard output.</p>
+
+<p>A stacktrace must be given as argument. If not, this function
+calculates the current stacktrace and formats it. As consequence,
+the value of <code>System.stacktrace</code> is changed.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L212" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/File.CopyError.html b/docs/stable/File.CopyError.html
new file mode 100644
index 000000000..f21e56bd8
--- /dev/null
+++ b/docs/stable/File.CopyError.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>File.CopyError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        File.CopyError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L41" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>reason:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>action:</strong> ""
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>source:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>destination:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L42" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/File.Error.html b/docs/stable/File.Error.html
new file mode 100644
index 000000000..e6c6eb7e8
--- /dev/null
+++ b/docs/stable/File.Error.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>File.Error</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        File.Error
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L34" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>reason:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>action:</strong> ""
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>path:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L35" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/File.IteratorError.html b/docs/stable/File.IteratorError.html
new file mode 100644
index 000000000..b7e952cd6
--- /dev/null
+++ b/docs/stable/File.IteratorError.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>File.IteratorError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        File.IteratorError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L48" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>reason:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/File.Stat.html b/docs/stable/File.Stat.html
new file mode 100644
index 000000000..375a0e9f4
--- /dev/null
+++ b/docs/stable/File.Stat.html
@@ -0,0 +1,168 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>File.Stat</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        File.Stat
+        
+          <small>record</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A record responsible to hold file information. Its fields are:</p>
+
+<ul>
+<li><code>size</code> - Size of file in bytes.</li>
+<li><code>type</code> - <code>:device</code>, <code>:directory</code>, <code>:regular</code>, <code>:other</code>. The type of the file.</li>
+<li><code>access</code> - <code>:read</code>, <code>:write</code>, <code>:read_write</code>, <code>:none</code>. The current system access to
+          the file.</li>
+<li><code>atime</code> - The last time the file was read.</li>
+<li><code>mtime</code> - The last time the file was written.</li>
+<li><code>ctime</code> - The interpretation of this time field depends on the operating
+        system. On Unix, it is the last time the file or the inode was
+        changed. In Windows, it is the create time.</li>
+<li><code>mode</code> - The file permissions.</li>
+<li><code>links</code> - The number of links to this file. This is always 1 for file
+        systems which have no concept of links.</li>
+<li><code>major_device</code> - Identifies the file system where the file is located.
+               In windows, the number indicates a drive as follows:
+               0 means A:, 1 means B:, and so on.</li>
+<li><code>minor_device</code> - Only valid for character devices on Unix. In all other
+               cases, this field is zero.</li>
+<li><code>inode</code> - Gives the inode number. On non-Unix file systems, this field
+        will be zero.</li>
+<li><code>uid</code> - Indicates the owner of the file.</li>
+<li><code>gid</code> - Gives the group that the owner of the file belongs to. Will be
+      zero for non-Unix file systems.</li>
+</ul>
+
+<p>The time type returned in <code>atime</code>, <code>mtime</code>, and <code>ctime</code> is dependent on the
+time type set in options. <code>{:time, type}</code> where type can be <code>:local</code>,
+<code>:universal</code>, or <code>:posix</code>. Default is <code>:local</code>.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>size:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>type:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>access:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>atime:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>mtime:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>ctime:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>mode:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>links:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>major_device:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>minor_device:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>inode:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>uid:</strong> :undefined
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>gid:</strong> :undefined
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/File.html b/docs/stable/File.html
new file mode 100644
index 000000000..1b0f654b5
--- /dev/null
+++ b/docs/stable/File.html
@@ -0,0 +1,1066 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>File</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        File
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module contains function to manipulate files.
+Many of the functions that interact with the filesystem
+have their naming based on its UNIX variants. For
+example, deleting a file is done with <code>File.rm</code>.
+Getting its stats with <code>File.stat</code>.</p>
+
+<p>In order to write and read files, one must use the
+functions in the IO module. By default, a file is
+opened in binary mode which requires the functions
+<code>IO.binread</code>, <code>IO.binwrite</code> and <code>IO.binreadline</code> to
+interact with the file. A developer may pass <code>:utf8</code>
+as an option when opening the file and then all other
+functions from IO are available, since they work directly
+with Unicode data.</p>
+
+<p>Most of the functions in this module return <code>:ok</code>
+or <code>{ :ok, result }</code> in case of success, <code>{ :error, reason }</code>
+otherwise. Those function are also followed by
+a variant that ends with <code>!</code> which returns the
+result (without the <code>{ :ok, result }</code> tuple) in
+case of success or raises an exception in case it
+fails. For example:</p>
+
+<pre><code>File.read(&quot;hello.txt&quot;)
+#=&gt; { :ok, &quot;World&quot; }
+
+File.read(&quot;invalid.txt&quot;)
+#=&gt; { :error, :enoent }
+
+File.read!(&quot;hello.txt&quot;)
+#=&gt; &quot;World&quot;
+
+File.read!(&quot;invalid.txt&quot;)
+#=&gt; raises File.Error
+</code></pre>
+
+<p>In general, a developer should use the former in case
+he wants to react in the fie does not exist. The latter
+should be used when the developer expects his software
+to fail in case the file cannot be read (i.e. it is
+literally an exception).</p>
+
+<p>Finally, the functions in this module accept either
+a char lists or a binary. When manipulating paths, a char
+list is returned if one is given as argument. However,
+when reading files, binaries are always returned.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L55" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#biniterator/1">biniterator/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#biniterator!/2">biniterator!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cd/1">cd/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cd!/1">cd!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cd!/2">cd!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#close/1">close/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#copy/3">copy/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#copy!/3">copy!/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cp/3">cp/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cp!/3">cp!/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cp_r/3">cp_r/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cp_r!/3">cp_r!/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cwd/0">cwd/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cwd!/0">cwd!/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#dir?/1">dir?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#exists?/1">exists?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#iterator/1">iterator/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#iterator!/2">iterator!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ls/1">ls/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ls!/1">ls!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#mkdir/1">mkdir/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#mkdir!/1">mkdir!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#mkdir_p/1">mkdir_p/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#mkdir_p!/1">mkdir_p!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#open/2">open/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#open/3">open/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#open!/2">open!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#open!/3">open!/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#read/1">read/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#read!/1">read!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#regular?/1">regular?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rm/1">rm/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rm!/1">rm!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rm_rf/1">rm_rf/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rm_rf!/1">rm_rf!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rmdir/1">rmdir/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rmdir!/1">rmdir!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#stat/2">stat/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#stat!/2">stat!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#touch/2">touch/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#touch!/2">touch!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#write/3">write/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#write!/3">write!/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#write_stat/3">write_stat/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#write_stat!/3">write_stat!/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="biniterator/1">
+    <strong>biniterator(device)</strong>
+  </p>
+  <div class="docstring"><p>Converts the file device into an iterator that can
+be passed into <code>Enum</code> to iterate line by line as a
+binary. Check <code>iterator/1</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L988" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="biniterator!/2">
+    <strong>biniterator!(file, mode // [])</strong>
+  </p>
+  <div class="docstring"><p>Opens the given <code>file</code> with the given <code>mode</code> and
+returns its biniterator. The returned iterator will
+fail for the same reasons as <code>File.open!</code>. Note
+that the file is opened when the iteration begins.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L1000" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cd/1">
+    <strong>cd(path)</strong>
+  </p>
+  <div class="docstring"><p>Sets the current working directory. Returns <code>:ok</code> if successful,
+<code>{ :error, reason }</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L867" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cd!/1">
+    <strong>cd!(path)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>cd/0</code>, but raises an exception if it fails.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L874" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cd!/2">
+    <strong>cd!(path, function)</strong>
+  </p>
+  <div class="docstring"><p>Changes the current directory to the given <code>path</code>,
+executes the given function and then revert back
+to the previous path regardless if there is an exception.</p>
+
+<p>Raises an error if retrieving or changing the current
+directory fails.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L890" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="close/1">
+    <strong>close(io_device)</strong>
+  </p>
+  <div class="docstring"><p>Closes the file referenced by <code>io_device</code>. It mostly returns <code>:ok</code>, except
+for some severe errors such as out of memory.</p>
+
+<p>Note that if the option <code>:delayed_write</code> was used when opening the file,
+<code>close/1</code> might return an old write error and not even try to close the file.
+See <code>open/2</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L933" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="copy/3">
+    <strong>copy(source, destination, bytes_count // :infinity)</strong>
+  </p>
+  <div class="docstring"><p>Copies the contents of <code>source</code> to <code>destination</code>. Both
+parameters can be a filename or an io device opened with <code>File.open</code>.
+<code>bytes_count</code> specifies the number of bytes to count, the default
+being <code>:infinity</code>.</p>
+
+<p>If file <code>destination</code> already exists, it is overriden
+by the contents in <code>source</code>.</p>
+
+<p>Returns <code>{ :ok, bytes_copied }</code> if successful,
+<code>{ :error, reason }</code> otherwise.</p>
+
+<p>Typical error reasons are the same as in <code>open/2</code>,
+<code>read/1</code> and <code>write/2</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L327" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="copy!/3">
+    <strong>copy!(source, destination, bytes_count // :infinity)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>copy/3</code> but raises an File.CopyError if it fails.
+Returns the <code>bytes_copied</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L335" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cp/3">
+    <strong>cp(source, destination, callback // fn _, _ -&gt; true end)</strong>
+  </p>
+  <div class="docstring"><p>Copies the contents in <code>source</code> to <code>destination</code>.
+Similar to the command <code>cp -r</code> in Unix systems,
+this function behaves differently depending
+if <code>source</code> and <code>destination</code> are a file or a directory.</p>
+
+<p>If both are files, it simply copies <code>source</code> to
+<code>destination</code>. However, if <code>destination</code> is a directory,
+it copies the contents of <code>source</code> to <code>destination/source</code>
+recursively.</p>
+
+<p>If a file already exists in the destination,
+it invokes a callback which should return
+true if the existing file should be overriden,
+false otherwise. It defaults to return true.</p>
+
+<p>It returns <code>:ok</code> in case of success, returns
+<code>{ :error, reason }</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L363" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cp!/3">
+    <strong>cp!(source, destination, callback // fn _, _ -&gt; true end)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>cp/3</code>, but raises File.CopyError if it fails.
+Returns the list of copied files otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L386" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cp_r/3">
+    <strong>cp_r(source, destination, callback // fn _, _ -&gt; true end)</strong>
+  </p>
+  <div class="docstring"><p>Copies the contents in source to destination.
+Similar to the command <code>cp -r</code> in Unix systems,
+this function behaves differently depending
+if <code>source</code> and <code>destination</code> are a file or a directory.</p>
+
+<p>If both are files, it simply copies <code>source</code> to
+<code>destination</code>. However, if <code>destination</code> is a directory,
+it copies the contents of <code>source</code> to <code>destination/source</code>
+recursively.</p>
+
+<p>If a file already exists in the destination,
+it invokes a callback which should return
+true if the existing file should be overriden,
+false otherwise. It defaults to return true.</p>
+
+<p>If a directory already exists in the destination
+where a file is meant to be (or otherwise), this
+function will fail.</p>
+
+<p>This function may fail while copying files,
+in such cases, it will leave the destination
+directory in a dirty state, where already
+copied files won&#39;t be removed.</p>
+
+<p>It returns <code>{ :ok, files_and_directories }</code> in case of
+success with all files and directories copied in no
+specific order, <code>{ :error, reason }</code> otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code># Copies &quot;a.txt&quot; to &quot;tmp/a.txt&quot;
+File.cp_r &quot;a.txt&quot;, &quot;tmp&quot;
+
+# Copies all files in &quot;samples&quot; to &quot;tmp/samples&quot;
+File.cp_r &quot;samples&quot;, &quot;tmp&quot;
+
+# Copies all files in &quot;samples&quot; to &quot;tmp&quot;
+File.cp_r &quot;samples/.&quot;, &quot;tmp&quot;
+
+# Same as before, but asks the user how to proceed in case of conflicts
+File.cp_r &quot;samples/.&quot;, &quot;tmp&quot;, fn(source, destination) -&gt;
+  IO.gets(&quot;Overriding #{destination} by #{source}. Type y to confirm.&quot;) == &quot;y&quot;
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L441" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cp_r!/3">
+    <strong>cp_r!(source, destination, callback // fn _, _ -&gt; true end)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>cp_r/3</code>, but raises File.CopyError if it fails.
+Returns the list of copied files otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L460" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cwd/0">
+    <strong>cwd()</strong>
+  </p>
+  <div class="docstring"><p>Gets the current working directory. In rare circumstances, this function can
+fail on Unix. It may happen if read permission does not exist for the parent
+directories of the current directory. For this reason, returns <code>{ :ok, cwd }</code>
+in case of success, <code>{ :error, reason }</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L845" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cwd!/0">
+    <strong>cwd!()</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>cwd/0</code>, but raises an exception if it fails.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L855" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="dir?/1">
+    <strong>dir?(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the path is a directory.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L123" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="exists?/1">
+    <strong>exists?(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the given argument exists.
+It can be regular file, directory, socket,
+symbolic link, named pipe or device file.</p>
+
+<h2>Examples</h2>
+
+<pre><code>File.exists?(&quot;test/&quot;)
+#=&gt; true
+
+File.exists?(&quot;missing.txt&quot;)
+#=&gt; false
+
+File.exists?(&quot;/dev/null&quot;)
+#=&gt; true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L144" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="iterator/1">
+    <strong>iterator(device)</strong>
+  </p>
+  <div class="docstring"><p>Converts the file device into an iterator that can be
+passed into <code>Enum</code>. The device is iterated line
+by line, at the end of iteration the file is closed.</p>
+
+<p>This reads the file as utf-8. CHeck out <code>File.biniterator</code>
+to handle the file as a raw binary.</p>
+
+<h2>Examples</h2>
+
+<p>An example that lazily iterates a file replacing all double
+quotes per single quotes and write each line to a target file
+is shown below:</p>
+
+<pre><code>{ :ok, device } = File.open(&quot;README.md&quot;)
+source = File.iterator(device)
+File.open &quot;NEWREADME.md&quot;, [:write], fn(target) -&gt;
+  Enum.each source, fn(line) -&gt;
+    IO.write target, Regex.replace(%r/&quot;/, line, &quot;&#39;&quot;)
+  end
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L960" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="iterator!/2">
+    <strong>iterator!(file, mode // [])</strong>
+  </p>
+  <div class="docstring"><p>Opens the given <code>file</code> with the given <code>mode</code> and
+returns its iterator. The returned iterator will
+fail for the same reasons as <code>File.open!</code>. Note
+that the file is opened when the iteration begins.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L972" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ls/1">
+    <strong>ls(path // &quot;.&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Returns list of files in the given directory.</p>
+
+<p>It returns <code>{ :ok, [files] }</code> in case of success,
+<code>{ :error, reason }</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L906" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ls!/1">
+    <strong>ls!(dir // &quot;.&quot;)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>ls/1</code> but raises <code>File.Error</code>
+in case of an error.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L917" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="mkdir/1">
+    <strong>mkdir(path)</strong>
+  </p>
+  <div class="docstring"><p>Tries to create the directory <code>path</code>. Missing parent directories are not created.
+Returns <code>:ok</code> if successful, or <code>{:error, reason}</code> if an error occurs.</p>
+
+<p>Typical error reasons are:</p>
+
+<ul>
+<li>:eacces  - Missing search or write permissions for the parent directories of <code>path</code>.</li>
+<li>:eexist  - There is already a file or directory named <code>path</code>.</li>
+<li>:enoent  - A component of <code>path</code> does not exist.</li>
+<li>:enospc  - There is a no space left on the device.</li>
+<li>:enotdir - A component of <code>path</code> is not a directory
+         On some platforms, <code>:enoent</code> is returned instead.</li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L161" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="mkdir!/1">
+    <strong>mkdir!(path)</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>mkdir</code>, but raises an exception in case of failure. Otherwise <code>:ok</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L168" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="mkdir_p/1">
+    <strong>mkdir_p(path)</strong>
+  </p>
+  <div class="docstring"><p>Tries to create the directory <code>path</code>. Missing parent directories are created.
+Returns <code>:ok</code> if successful, or <code>{:error, reason}</code> if an error occurs.</p>
+
+<p>Typical error reasons are:</p>
+
+<ul>
+<li>:eacces  - Missing search or write permissions for the parent directories of <code>path</code>.</li>
+<li>:enospc  - There is a no space left on the device.</li>
+<li>:enotdir - A component of <code>path</code> is not a directory.</li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L186" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="mkdir_p!/1">
+    <strong>mkdir_p!(path)</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>mkdir_p</code>, but raises an exception in case of failure. Otherwise <code>:ok</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L193" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="open/2">
+    <strong>open(path, modes // [])</strong>
+  </p>
+  <div class="docstring"><p>Opens the given <code>path</code> according to the given list of modes.</p>
+
+<p>In order to write and read files, one must use the functions
+in the IO module. By default, a file is opened in binary mode
+which requires the functions <code>IO.binread</code>, <code>IO.binwrite</code> and
+<code>IO.binreadline</code> to interact with the file. A developer may pass
+<code>:utf8</code> as an option when opening the file and then all other
+functions from IO are available, since they work directly with
+Unicode data.</p>
+
+<p>The allowed modes:</p>
+
+<ul>
+<li><p><code>:read</code> - The file, which must exist, is opened for reading.</p></li>
+<li><p><code>:write</code> -  The file is opened for writing. It is created if it does not exist.
+          If the file exists, and if write is not combined with read, the file will be truncated.</p></li>
+<li><p><code>:append</code> - The file will be opened for writing, and it will be created if it does not exist.
+          Every write operation to a file opened with append will take place at the end of the file.</p></li>
+<li><p><code>:exclusive</code> - The file, when opened for writing, is created if it does not exist.
+             If the file exists, open will return { :error, :eexist }.</p></li>
+<li><p><code>:charlist</code> - When this term is given, read operations on the file will return char lists rather than binaries;</p></li>
+<li><p><code>:compressed</code> -  Makes it possible to read or write gzip compressed files.
+               The compressed option must be combined with either read or write, but not both.
+               Note that the file size obtained with <code>stat/1</code> will most probably not
+               match the number of bytes that can be read from a compressed file.</p></li>
+<li><p><code>:utf8</code> - This option denotes how data is actually stored in the disk file and
+        makes the file perform automatic translation of characters to and from utf-8.
+        If data is sent to a file in a format that cannot be converted to the utf-8
+        or if data is read by a function that returns data in a format that cannot cope
+        with the character range of the data, an error occurs and the file will be closed.</p></li>
+</ul>
+
+<p>If a function is given to modes (instead of a list), it dispatches to <code>open/3</code>.</p>
+
+<p>Check <code>http://www.erlang.org/doc/man/file.html#open-2</code> for more information about
+other options as <code>read_ahead</code> and <code>delayed_write</code>.</p>
+
+<p>This function returns:</p>
+
+<ul>
+<li><p>{ :ok, io<em>device } - The file has been opened in the requested mode.
+                   <code>io_device</code> is actually the pid of the process which handles the file.
+                   This process is linked to the process which originally opened the file.
+                   If any process to which the io</em>device is linked terminates, the file will
+                   be closed and the process itself will be terminated. An io_device returned
+                   from this call can be used as an argument to the <code>IO</code> module functions.</p></li>
+<li><p>{ :error, reason } - The file could not be opened.</p></li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>{ :ok, file } = File.open(&quot;foo.tar.gz&quot;, [:read, :compressed])
+IO.readline(file)
+File.close(file)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L772" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="open/3">
+    <strong>open(path, modes, function)</strong>
+  </p>
+  <div class="docstring"><p>Similar to <code>open/2</code> but expects a function as last argument.</p>
+
+<p>The file is opened, given to the function as argument and
+automatically closed after the function returns, regardless
+if there was an error or not.</p>
+
+<p>It returns <code>{ :ok, function_result }</code> in case of success,
+<code>{ :error, reason }</code> otherwise.</p>
+
+<p>Do not use this function with :delayed_write option
+since automatically closing the file may fail
+(as writes are delayed).</p>
+
+<h2>Examples</h2>
+
+<pre><code>File.open(&quot;file.txt&quot;, [:read, :write], fn(file) -&gt;
+  IO.readline(file)
+end)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L803" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="open!/2">
+    <strong>open!(path, modes // [])</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>open/2</code> but raises an error if file could not be opened.
+Returns the <code>io_device</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L819" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="open!/3">
+    <strong>open!(path, modes, function)</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>open/3</code> but raises an error if file could not be opened.
+Returns the function result otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L831" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="read/1">
+    <strong>read(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns <code>{:ok, binary}</code>, where <code>binary</code> is a binary data object that contains the contents
+of <code>path</code>, or <code>{:error, reason}</code> if an error occurs.</p>
+
+<p>Typical error reasons:</p>
+
+<ul>
+<li>:enoent  - The file does not exist.</li>
+<li>:eacces  - Missing permission for reading the file,
+         or for searching one of the parent directories.</li>
+<li>:eisdir  - The named file is a directory.</li>
+<li>:enotdir - A component of the file name is not a directory.
+         On some platforms, <code>:enoent</code> is returned instead.</li>
+<li>:enomem  - There is not enough memory for the contents of the file.</li>
+</ul>
+
+<p>You can use <code>:file.format_error(reason)</code> to get a descriptive string of the error.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L217" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="read!/1">
+    <strong>read!(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns binary with the contents of the given filename or raises
+File.Error if an error occurs.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L225" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="regular?/1">
+    <strong>regular?(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the path is a regular file.</p>
+
+<h2>Examples</h2>
+
+<pre><code>File.regular? __FILE__ #=&gt; true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L116" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rm/1">
+    <strong>rm(path)</strong>
+  </p>
+  <div class="docstring"><p>Tries to delete the file <code>path</code>.
+Returns <code>:ok</code> if successful, or <code>{:error, reason}</code> if an error occurs.</p>
+
+<p>Typical error reasons are:</p>
+
+<ul>
+<li>:enoent  - The file does not exist.</li>
+<li>:eacces  - Missing permission for the file or one of its parents.</li>
+<li>:eperm   - The file is a directory and user is not super-user.</li>
+<li>:enotdir - A component of the file name is not a directory.
+         On some platforms, enoent is returned instead.</li>
+<li>:einval  - Filename had an improper type, such as tuple.</li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>File.rm(&#39;file.txt&#39;)
+#=&gt; :ok
+
+File.rm(&#39;tmp_dir/&#39;)
+#=&gt; {:error, :eperm}
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L596" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rm!/1">
+    <strong>rm!(path)</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>rm</code>, but raises an exception in case of failure. Otherwise <code>:ok</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L603" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rm_rf/1">
+    <strong>rm_rf(path)</strong>
+  </p>
+  <div class="docstring"><p>Remove files and directories recursively at the given <code>path</code>.
+Symlinks are not followed but simply removed, non existing
+files are simply ignored (i.e. doesn&#39;t make this function fail).</p>
+
+<p>Returns <code>{ :ok, files_and_directories }</code> with all files and
+directories removed in no specific order, <code>{ :error, reason }</code>
+otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>File.rm_rf &quot;samples&quot;
+#=&gt; { :ok, [&quot;samples&quot;, &quot;samples/1.txt&quot;] }
+
+File.rm_rf &quot;unknown&quot;
+#=&gt; { :ok, [] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L657" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rm_rf!/1">
+    <strong>rm_rf!(path)</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>rm_rf/1</code> but raises <code>File.Error</code> in case of failures,
+otherwise the list of files or directories removed.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L704" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rmdir/1">
+    <strong>rmdir(path)</strong>
+  </p>
+  <div class="docstring"><p>Tries to delete the dir at <code>path</code>.
+Returns <code>:ok</code> if successful, or <code>{:error, reason}</code> if an error occurs.</p>
+
+<h2>Examples</h2>
+
+<pre><code>File.rddir(&#39;tmp_dir&#39;)
+#=&gt; :ok
+
+File.rmdir(&#39;file.txt&#39;)
+#=&gt; {:error, :enotdir}
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L624" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rmdir!/1">
+    <strong>rmdir!(path)</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>rmdir/1</code>, but raises an exception in case of failure. Otherwise <code>:ok</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L631" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="stat/2">
+    <strong>stat(path, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Returns information about the <code>path</code>. If it exists, it
+returns a <code>{ :ok, info }</code> tuple, where info is  as a
+<code>File.Info</code> record. Retuns <code>{ :error, reason }</code> with
+the same reasons as <code>File.read</code> if a failure occurs.</p>
+
+<h2>Options</h2>
+
+<p>The accepted options are:</p>
+
+<ul>
+<li><code>:time</code> if the time should be local, universal or posix.
+Default is local.</li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L248" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="stat!/2">
+    <strong>stat!(path, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>stat</code> but returns the <code>File.Stat</code> directly and
+throws <code>File.Error</code> if an error is returned.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L261" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="touch/2">
+    <strong>touch(path, time // :calendar.local_time())</strong>
+  </p>
+  <div class="docstring"><p>Updates modification time (mtime) and access time (atime) of
+the given file. File is created if it doesn’t exist.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L293" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="touch!/2">
+    <strong>touch!(path, time // :calendar.local_time())</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>touch/1</code> but raises an exception if it fails.
+Returns <code>:ok</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L304" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="write/3">
+    <strong>write(path, content, modes // [])</strong>
+  </p>
+  <div class="docstring"><p>Writes <code>content</code> to the file <code>path</code>. The file is created if it
+does not exist. If it exists, the previous contents are overwritten.
+Returns <code>:ok</code> if successful, or <code>{:error, reason}</code> if an error occurs.</p>
+
+<p>Typical error reasons are:</p>
+
+<ul>
+<li>:enoent - A component of the file name does not exist.</li>
+<li>:enotdir - A component of the file name is not a directory.
+         On some platforms, enoent is returned instead.</li>
+<li>:enospc - There is a no space left on the device.</li>
+<li>:eacces - Missing permission for writing the file or searching one of the parent directories.</li>
+<li>:eisdir - The named file is a directory.</li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L559" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="write!/3">
+    <strong>write!(path, content, modes // [])</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>write/3</code> but raises an exception if it fails, returns <code>:ok</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L566" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="write_stat/3">
+    <strong>write_stat(path, stat, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Writes the given <code>File.Stat</code> back to the filesystem at the given
+path. Returns <code>:ok</code> or <code>{ :error, reason }</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L273" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="write_stat!/3">
+    <strong>write_stat!(path, stat, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>write_stat/3</code> but raises an exception if it fails.
+Returns <code>:ok</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/file.ex#L281" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/FunctionClauseError.html b/docs/stable/FunctionClauseError.html
new file mode 100644
index 000000000..95d9c1ebe
--- /dev/null
+++ b/docs/stable/FunctionClauseError.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>FunctionClauseError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        FunctionClauseError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L59" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>module:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>function:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>arity:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L60" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/GenEvent.Behaviour.html b/docs/stable/GenEvent.Behaviour.html
new file mode 100644
index 000000000..80b9988c0
--- /dev/null
+++ b/docs/stable/GenEvent.Behaviour.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>GenEvent.Behaviour</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        GenEvent.Behaviour
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module is a convenience to define GenEvent callbacks in Elixir.</p>
+
+<p>GenEvent is an OTP behaviour that encapsulates event handling functionality.</p>
+
+<h2>Example</h2>
+
+<p>Bellow follows an example of a GenEvent that stores notifications
+until they are fetched:</p>
+
+<pre><code>defmodule MyEventHandler do
+  use GenEvent.Behaviour
+
+  # Callbacks
+
+  def init(_) do
+    { :ok, [] }
+  end
+
+  def handle_event({:notification, x}, notifications) do
+    { :ok, [x|notifications] }
+  end
+
+  def handle_call(:notifications, notifications) do
+    {:ok, Enum.reverse(notifications), []}
+  end
+
+end
+
+{ :ok, pid } = :gen_event.start_link
+
+:gen_event.add_handler(pid, MyEventHandler, [])
+
+:gen_event.notify(pid, {:notification, 1})
+:gen_event.notify(pid, {:notification, 2})
+
+:gen_event.call(pid, MyEventHandler, :notifications)
+#=&gt; [1, 2]
+
+:gen_event.call(pid, MyEventHandler, :notifications)
+#=&gt; []
+</code></pre>
+
+<p>Notice we never call the server callbacks directly, they are called
+by OTP whenever we interact with the server. </p>
+
+<p>Starting and sending messages to gen_event is done
+via Erlang&#39;s <code>:gen_event</code> module. For more information,
+please refer to the following:</p>
+
+<p><a href="http://www.erlang.org/doc/man/gen_event.html">http://www.erlang.org/doc/man/gen_event.html</a>
+<a href="http://learnyousomeerlang.com/event-handlers">http://learnyousomeerlang.com/event-handlers</a></p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/gen_event/behaviour.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/GenServer.Behaviour.html b/docs/stable/GenServer.Behaviour.html
new file mode 100644
index 000000000..750e4c643
--- /dev/null
+++ b/docs/stable/GenServer.Behaviour.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>GenServer.Behaviour</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        GenServer.Behaviour
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module is a convenience to define GenServer callbacks in Elixir.</p>
+
+<p>A server is responsible to react to messages received from client
+and a GenServer is an OTP behaviour that encapsulates common server
+functionalities.</p>
+
+<h2>Example</h2>
+
+<p>Bellow follows an example of a GenServer that push and pop items
+into a stack:</p>
+
+<pre><code>defmodule MyServer do
+  use GenServer.Behaviour
+
+  # Callbacks
+
+  def handle_call(:pop, _from, [h|t]) do
+    { :reply, h, t }
+  end
+
+  def handle_call(_request, _from, _config) do
+    # Call the default implementation from GenServer.Behaviour
+    super
+  end
+
+  def handle_cast({ :push, item }, config) do
+    { :noreply, [item|config] }
+  end
+
+  def handle_cast(_request, _config) do
+    super
+  end
+end
+
+{ :ok, pid } = :gen_server.start_link(MyServer, [:hello], [])
+
+:gen_server.call(pid, :pop)
+#=&gt; :hello
+
+:gen_server.cast(pid, { :push, :world })
+#=&gt; :ok
+
+:gen_server.call(pid, :pop)
+#=&gt; :world
+</code></pre>
+
+<p>Notice we never call the server callbacks directly, they are called
+by OTP whenever we interact with the server. <strong>cast</strong> messages are
+asynchronous while <strong>call</strong> ones are synchronous.  In the case of
+GenServer&#39;s, there are 8 different values a callback such as
+<code>handle_call</code> or <code>handle_cast</code> can return:</p>
+
+<pre><code>{ :reply, reply, new_state }
+{ :reply, reply, new_state, timeout }
+{ :reply, reply, new_state, :hibernate }
+{ :noreply, new_state }
+{ :noreply, new_state, timeout }
+{ :noreply, new_state, :hibernate }
+{ :stop, reason, new_state }
+{ :stop, reason, reply, new_state }
+</code></pre>
+
+<p>There are 6 callbacks required to be implemented in a GenServer. The
+<code>GenServer.Behaviour</code> module defines all of them automatically, but
+allows us to customize the ones we need. The list of callbacks are:</p>
+
+<ul>
+<li><code>init(args)</code> - invoked when the server is started;</li>
+<li><code>handle_call(msg, from, state)</code> - invoked to handle call messages;</li>
+<li><code>handle_cast(msg, state)</code> - invoked to handle cast messages;</li>
+<li><code>handle_info(msg, state)</code> - handle all other messages which are
+normally received by processes;</li>
+<li><code>terminate(reason, state)</code> - called when the server is about to
+terminate, useful for cleaning up;</li>
+<li><code>code_change(old_vsn, state, extra)</code> - called when the application
+code is being upgraded live (hot code swap);</li>
+</ul>
+
+<p>Starting and sending messages to the gen_server is done
+via Erlang&#39;s <code>:gen_server</code> module. For more information,
+please refer to the following:</p>
+
+<p><a href="http://www.erlang.org/doc/man/gen_server.html">http://www.erlang.org/doc/man/gen_server.html</a>
+<a href="http://www.erlang.org/doc/design_principles/gen_server_concepts.html">http://www.erlang.org/doc/design_principles/gen_server_concepts.html</a>
+<a href="http://learnyousomeerlang.com/clients-and-servers">http://learnyousomeerlang.com/clients-and-servers</a></p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/gen_server/behaviour.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/HashDict.html b/docs/stable/HashDict.html
new file mode 100644
index 000000000..1d7b45950
--- /dev/null
+++ b/docs/stable/HashDict.html
@@ -0,0 +1,426 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>HashDict</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        HashDict
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A key-value store.</p>
+
+<p>The <code>HashDict</code> is meant to work well with both small and
+large set of keys and it is an implementation of the <code>Dict</code>
+behaviour. For more information about the functions and
+their APIs, please consult the <code>Dict</code> module.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#delete/2">delete/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#drop/2">drop/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#empty/1">empty/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#equal?/2">equal?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch/2">fetch/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch!/2">fetch!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/3">get/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#has_key?/2">has_key?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keys/1">keys/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#merge/3">merge/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/0">new/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/1">new/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/2">new/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#pop/3">pop/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put/3">put/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_new/3">put_new/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/3">reduce/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#size/1">size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/2">split/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#take/2">take/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_list/1">to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/3">update/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/4">update/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#values/1">values/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="delete/2">
+    <strong>delete(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Deletes a value from the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L193" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="drop/2">
+    <strong>drop(dict, list2)</strong>
+  </p>
+  <div class="docstring"><p>Returns a new dict with only the entries
+which key is not in keys</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L321" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="empty/1">
+    <strong>empty(_)</strong>
+  </p>
+  <div class="docstring"><p>Returns an empty dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L208" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="equal?/2">
+    <strong>equal?(a, b)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L212" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch/2">
+    <strong>fetch(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Fetches the value under key from the dict
+and return it in a tagged tuple.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L158" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch!/2">
+    <strong>fetch!(dict, key)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L165" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/3">
+    <strong>get(dict, key, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Gets the value under key from the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L147" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="has_key?/2">
+    <strong>has_key?(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the dict has the given key.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L176" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keys/1">
+    <strong>keys(dict)</strong>
+  </p>
+  <div class="docstring"><p>Get all keys in the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L246" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="merge/3">
+    <strong>merge(dict, enum, callback // fn _k, _v1, v2 -&gt; v2 end)</strong>
+  </p>
+  <div class="docstring"><p>Merges two dictionaries.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L260" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/0">
+    <strong>new()</strong>
+  </p>
+  <div class="docstring"><p>Creates a new empty dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L66" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/1">
+    <strong>new(pairs)</strong>
+  </p>
+  <div class="docstring"><p>Creates a new dict from the given enumerable.</p>
+
+<h2>Examples</h2>
+
+<pre><code>HashDict.new [{:b,1},{:a,2}]
+#=&gt; #HashDict&lt;[a: 2, b: 1]&gt;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L80" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/2">
+    <strong>new(list, transform)</strong>
+  </p>
+  <div class="docstring"><p>Creates a new dict from the enumerable with the
+help of the transformation function.</p>
+
+<h2>Examples</h2>
+
+<pre><code>HashDict.new [&quot;a&quot;, &quot;b&quot;], fn x -&gt; {x, x} end
+#=&gt; #HashDict&lt;[{&quot;a&quot;,&quot;a&quot;},{&quot;b&quot;,&quot;b&quot;}]&gt;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L97" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="pop/3">
+    <strong>pop(dict, key, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value under key from the dict as well as the dict without key.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L183" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put/3">
+    <strong>put(dict, key, value)</strong>
+  </p>
+  <div class="docstring"><p>Puts the given key and value in the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L107" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_new/3">
+    <strong>put_new(dict, key, value)</strong>
+  </p>
+  <div class="docstring"><p>Puts the given value under key in the dictionary
+only if one does not exist yet.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L116" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/3">
+    <strong>reduce(dict, acc, fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L327" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="size/1">
+    <strong>size(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns the dict size.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L201" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/2">
+    <strong>split(dict, keys)</strong>
+  </p>
+  <div class="docstring"><p>Splits a dict into two dicts,
+one containing entries with key in the keys list,
+and another containing entries with key not in keys.
+Returns a 2-tuple of the new dicts.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L286" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="take/2">
+    <strong>take(dict, keys)</strong>
+  </p>
+  <div class="docstring"><p>Returns a new dict with only the entries
+which key is in keys.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L305" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_list/1">
+    <strong>to_list(dict)</strong>
+  </p>
+  <div class="docstring"><p>Converts the dict to a list.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L235" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/3">
+    <strong>update(dict, key, fun)</strong>
+  </p>
+  <div class="docstring"><p>Updates the key in the dictionary according
+to the given function. Raises if the key does
+not exist in the dictionary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L125" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/4">
+    <strong>update(dict, key, initial, fun)</strong>
+  </p>
+  <div class="docstring"><p>Updates the key in the dictionary according
+to the given function. Adds initial value if
+the key does not exist in the dicionary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L139" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="values/1">
+    <strong>values(dict)</strong>
+  </p>
+  <div class="docstring"><p>Get all values in the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/hash_dict.ex#L253" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/IEx.Autocomplete.html b/docs/stable/IEx.Autocomplete.html
new file mode 100644
index 000000000..a0c9dea64
--- /dev/null
+++ b/docs/stable/IEx.Autocomplete.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>IEx.Autocomplete</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        IEx.Autocomplete
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Autocompletion for the Elixir shell.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/autocomplete.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#expand/1">expand/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="expand/1">
+    <strong>expand(expr)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/autocomplete.ex#L48" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/IEx.Helpers.html b/docs/stable/IEx.Helpers.html
new file mode 100644
index 000000000..78afd46f4
--- /dev/null
+++ b/docs/stable/IEx.Helpers.html
@@ -0,0 +1,416 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>IEx.Helpers</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        IEx.Helpers
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Welcome to Interactive Elixir. You are currently
+seeing the documentation for the module IEx.Helpers
+which provides many helpers to make Elixir&#39;s shell
+more joyful to work with.</p>
+
+<p>This message was triggered by invoking the helper
+<code>h()</code>, usually referred to as <code>h/0</code> (since it expects 0
+arguments).</p>
+
+<p>There are many other helpers available:</p>
+
+<ul>
+<li><code>c/2</code> - compiles a file in the given path</li>
+<li><code>ls/0</code> - list the contents of the current directory</li>
+<li><code>ls/1</code> - list the contents of the specified directory</li>
+<li><code>cd/1</code> - changes the current directory</li>
+<li><code>flush/0</code> — flush all messages sent to the shell</li>
+<li><code>h/0</code>, <code>h/1</code> - prints help/documentation</li>
+<li><code>l/1</code> - loads given module beam code by purging the current version</li>
+<li><code>m/0</code> - prints loaded modules</li>
+<li><code>pwd/0</code> - prints the current working directory</li>
+<li><code>r/0</code>, <code>r/1</code> - recompiles and reloads the given module&#39;s source file</li>
+<li><code>s/1</code> — prints spec information</li>
+<li><code>t/1</code> — prints type information</li>
+<li><code>v/0</code> - prints all commands and values</li>
+<li><code>v/1</code> - retrieves nth value from console</li>
+<li><code>import_file/1</code> - evaluate the given file in the shell&#39;s context</li>
+</ul>
+
+<p>Help for functions in this module can be consulted
+directly from the command line, as an example, try:</p>
+
+<pre><code>h(c/2)
+</code></pre>
+
+<p>You can also retrieve the documentation for any module
+or function. Try these:</p>
+
+<pre><code>h(Enum)
+h(Enum.reverse/1)
+</code></pre>
+
+<p>To learn more about IEx as a whole, just type <code>h(IEx)</code>.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#c/2">c/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cd/1">cd/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#flush/0">flush/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#h/0">h/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#l/1">l/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ls/1">ls/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#m/0">m/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#pwd/0">pwd/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#r/0">r/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#r/1">r/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#v/0">v/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#v/1">v/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#h/1">h/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#import_file/1">import_file/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#s/1">s/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#t/1">t/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="c/2">
+    <strong>c(files, path // &quot;.&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Expects a list of files to compile and a path
+to write their object code to. It returns the name
+of the compiled modules.</p>
+
+<p>When compiling one file, there is no need to wrap it in a list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>c [&quot;foo.ex&quot;, &quot;bar.ex&quot;], &quot;ebin&quot;
+#=&gt; [Foo,Bar]
+
+c &quot;baz.ex&quot;
+#=&gt; [Baz]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L59" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cd/1">
+    <strong>cd(directory)</strong>
+  </p>
+  <div class="docstring"><p>Changes the current working directory to the given path.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L303" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="flush/0">
+    <strong>flush()</strong>
+  </p>
+  <div class="docstring"><p>Flushes all messages sent to the shell and prints them out.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L265" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="h/0">
+    <strong>h()</strong>
+  </p>
+  <div class="docstring"><p>Prints the documentation for <code>IEx.Helpers</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L82" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="l/1">
+    <strong>l(module)</strong>
+  </p>
+  <div class="docstring"><p>Purges and reloads specified module.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L257" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ls/1">
+    <strong>ls(path // &quot;.&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Produces a simple list of a directory&#39;s contents.
+If <code>path</code> points to a file, prints its full path.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L315" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="m/0">
+    <strong>m()</strong>
+  </p>
+  <div class="docstring"><p>Prints the list of all loaded modules with paths to their corresponding .beam
+files.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L68" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="pwd/0">
+    <strong>pwd()</strong>
+  </p>
+  <div class="docstring"><p>Prints the current working directory.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L296" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="r/0">
+    <strong>r()</strong>
+  </p>
+  <div class="docstring"><p>Reloads all modules that have already been reloaded with <code>r/1</code> at any point
+in the current IEx session.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L235" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="r/1">
+    <strong>r(module)</strong>
+  </p>
+  <div class="docstring"><p>Recompiles and reloads the specified module&#39;s source file.</p>
+
+<p>Please note that all the modules defined in the same file as <code>module</code>
+are recompiled and reloaded.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L245" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="v/0">
+    <strong>v()</strong>
+  </p>
+  <div class="docstring"><p>Prints the history of expressions evaluated during the session along with
+their results.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L211" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="v/1">
+    <strong>v(n)</strong>
+  </p>
+  <div class="docstring"><p>Retrieves nth expression&#39;s value from the history.</p>
+
+<p>Use negative values to lookup expression values relative to the current one.
+For instance, v(-1) returns the result of the last evaluated expression.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L227" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="h/1">
+    <strong>h(other)</strong>
+  </p>
+  <div class="docstring"><p>Prints the documentation for the given module
+or for the given function/arity pair.</p>
+
+<h2>Examples</h2>
+
+<pre><code>h(Enum)
+#=&gt; Prints documentation for Enum
+</code></pre>
+
+<p>It also accepts functions in the format <code>fun/arity</code>
+and <code>module.fun/arity</code>, for example:</p>
+
+<pre><code>h receive/1
+h Enum.all?/2
+h Enum.all?
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L102" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="import_file/1">
+    <strong>import_file(path)</strong>
+  </p>
+  <div class="docstring"><p>Evaluates the contents of file at <code>path</code> as if it were directly typed into
+the shell. <code>path</code> has to be a literal binary.</p>
+
+<p>Leading <code>~</code> in <code>path</code> is automatically expanded.</p>
+
+<h2>Examples</h2>
+
+<pre><code># ~/file.exs
+value = 13
+
+# in the shell
+iex(1)&gt; import_file &quot;~/file.exs&quot;
+13
+iex(2)&gt; value
+13
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L393" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="s/1">
+    <strong>s(module)</strong>
+  </p>
+  <div class="docstring"><p>Similar to <code>t/1</code>, only for specs.</p>
+
+<p>When given a module, prints the list of all specs defined in the module.</p>
+
+<p>When given a particular spec name (with optional arity), prints its spec.</p>
+
+<h2>Examples</h2>
+
+<pre><code>s(Enum)
+s(Enum.all?)
+s(Enum.all?/2)
+s(list_to_atom)
+s(list_to_atom/1)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L177" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="t/1">
+    <strong>t(module)</strong>
+  </p>
+  <div class="docstring"><p>When given a module, prints specifications (or simply specs) for all the
+types defined in it.</p>
+
+<p>When given a particular type name, prints its spec.</p>
+
+<h2>Examples</h2>
+
+<pre><code>t(Enum)
+t(Enum.t/0)
+t(Enum.t)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/helpers.ex#L144" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/IEx.Options.html b/docs/stable/IEx.Options.html
new file mode 100644
index 000000000..8374748dd
--- /dev/null
+++ b/docs/stable/IEx.Options.html
@@ -0,0 +1,277 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>IEx.Options</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        IEx.Options
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Provides an interface for adjusting options of the running IEx session.</p>
+
+<p>Changing options is usually done inside an IEx session or in your .iex file.
+See <code>h(IEx)</code> for more info on the latter.</p>
+
+<p>If the value of an option is a keyword list, only those keys that are
+mentioned will be changed. The rest of the sub-options will keep their
+current values. Any extraneous keys are filtered out, i.e. not used.</p>
+
+<p>To get the list of all supported options, use <code>list/0</code>. You can also get an
+option&#39;s description using <code>print_help/1</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex(1)&gt; ArgumentError[]
+ArgumentError[message: &quot;argument error&quot;]
+
+iex(2)&gt; IEx.Options.set :inspect, raw: true
+[limit: 50, raw: false]
+
+iex(3)&gt; ArgumentError[]
+{ArgumentError,:__exception__,&quot;argument error&quot;}
+
+iex(4)&gt; IEx.Options.list
+[:colors,:inspect]
+
+iex(5)&gt; IEx.Options.print_help :colors
+This is an aggregate option that encapsulates all color settings used
+by the shell.
+... # omitted content
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#colors/0">colors/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/0">get/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/1">get/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#help/1">help/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#history_size/0">history_size/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#inspect/0">inspect/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list/0">list/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#print_help/1">print_help/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#set/1">set/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#set/2">set/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="colors/0">
+    <strong>colors()</strong>
+  </p>
+  <div class="docstring"><p><strong>NOTE</strong>: This is just a stub for documentation purposes. Use
+<code>IEx.Options.get</code> and <code>IEx.Options.set</code> to query and change the option&#39;s
+value.</p>
+
+<p>This is an aggregate option that encapsulates all color settings used by the
+shell. See documentation for the <code>IO.ANSI</code> module for the list of supported
+colors and attributes.</p>
+
+<p>The value is a keyword list. List of supported keys:</p>
+
+<ul>
+<li><p>enabled     -- boolean value that allows for switching the coloring
+               on and off</p></li>
+<li><p>eval_result -- color for an expression&#39;s resulting value</p></li>
+<li><p>error       -- color for error messages</p></li>
+<li><p>info        -- color for various informational messages</p></li>
+<li><p>directory   -- color for directory entries (ls helper)</p></li>
+<li><p>device      -- color for device entries (ls helper)</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L189" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/0">
+    <strong>get()</strong>
+  </p>
+  <div class="docstring"><p>Returns all supported IEx options with their respective values as a keyword
+list.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L46" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/1">
+    <strong>get(name)</strong>
+  </p>
+  <div class="docstring"><p>Get current value of the option <code>name</code>. Raises ArgumentError if name is not a
+known option.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L56" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="help/1">
+    <strong>help(name)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string with the option&#39;s description. Raises if <code>name</code> is not a
+known option.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L138" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="history_size/0">
+    <strong>history_size()</strong>
+  </p>
+  <div class="docstring"><p><strong>NOTE</strong>: This is just a stub for documentation purposes. Use
+<code>IEx.Options.get</code> and <code>IEx.Options.set</code> to query and change the option&#39;s
+value.</p>
+
+<p>Number of expressions and their results to keep in the history.</p>
+
+<p>The value is an integer. When it is negative, the history is unlimited.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L216" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="inspect/0">
+    <strong>inspect()</strong>
+  </p>
+  <div class="docstring"><p><strong>NOTE</strong>: This is just a stub for documentation purposes. Use
+<code>IEx.Options.get</code> and <code>IEx.Options.set</code> to query and change the option&#39;s
+value.</p>
+
+<p>Inspect options used by the shell when printing results of expression
+evaluation.</p>
+
+<p>The value is a keyword list.</p>
+
+<p>See <code>Kernel.inspect/2</code> for the full list of options.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L204" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list/0">
+    <strong>list()</strong>
+  </p>
+  <div class="docstring"><p>Returns all supported options as a list of names.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L164" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="print_help/1">
+    <strong>print_help(name)</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>help/1</code> but instead of returning a string, prints it.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L157" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="set/1">
+    <strong>set(opts)</strong>
+  </p>
+  <div class="docstring"><p>Set all options at once by providing a keyword list with option names and
+their corresponding values. This is generally obtained from <code>get/0</code>.</p>
+
+<p>Returns a keyword list of old option values.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L83" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="set/2">
+    <strong>set(name, value)</strong>
+  </p>
+  <div class="docstring"><p>Sets the value for the option <code>name</code> to <code>value</code>.</p>
+
+<p>Returns option&#39;s previous value in the case of success.</p>
+
+<p>Raises if <code>name</code> is not a known option or if the value is invalid.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex/options.ex#L96" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/IEx.html b/docs/stable/IEx.html
new file mode 100644
index 000000000..e9bf16e27
--- /dev/null
+++ b/docs/stable/IEx.html
@@ -0,0 +1,299 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>IEx</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        IEx
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Welcome to IEx.</p>
+
+<p>This module is the main entry point for Interactive Elixir and
+in this documentation we will talk a bit about how IEx works.</p>
+
+<p>Notice some of the functionality described here will be available
+depending on your terminal. In particular, if you get a message
+saying that the smart terminal could not be run, some of the
+features described here won&#39;t work.</p>
+
+<h2>The Break command</h2>
+
+<p>Inside IEx, hitting Ctrl+C will open up the BREAK menu. In this
+menu you can quit the shell, see process and ets tables information
+and much more.</p>
+
+<h2>The User Switch command</h2>
+
+<p>Besides the break command, one can type Ctrl+G to get to the
+user switch command menu. When reached, you can type <code>h</code> to
+get more information.</p>
+
+<p>In this menu, developers are able to start new shells and
+alternate in between them. Let&#39;s give it a try:</p>
+
+<pre><code>User switch command
+ --&gt; s &#39;Elixir.IEx&#39;
+ --&gt; c
+</code></pre>
+
+<p>The command above will start a new shell and connect to it.
+Create a new variable called hello and assign some value to it:</p>
+
+<pre><code>hello = :world
+</code></pre>
+
+<p>Now, let&#39;s roll back to the first shell:</p>
+
+<pre><code>User switch command
+ --&gt; c 1
+</code></pre>
+
+<p>Now, try to access the hello variable again:</p>
+
+<pre><code>hello
+** (UndefinedFunctionError) undefined function: IEx.Helpers.hello/0
+</code></pre>
+
+<p>The command above fails because we have switched the shells.
+Since shells are isolated from each other, you can&#39;t access the
+variables defined in one shell from the other one.</p>
+
+<p>The user switch command menu also allows developers to connect to remote
+shells using the &quot;r&quot; command. Keep in mind that you can&#39;t connect to a
+remote node if you haven&#39;t given a name to the current node
+(i.e. Process.is_alive? must return true).</p>
+
+<h2>The .iex file</h2>
+
+<p>When starting IEx, it will look for a local .iex file (located in the current
+working directory), then a global one (located at ~/.iex) and will load the
+first one it finds (if any). The code in the chosen .iex file will be
+evaluated in the shell&#39;s context. So, for instance, any modules that are
+loaded or variables that are bound in the .iex file will be available in the
+shell after it has booted.</p>
+
+<p>Sample contents of a local .iex file:</p>
+
+<pre><code># source another .iex file
+import_file &quot;~/.iex&quot;
+
+# print something before the shell starts
+IO.puts &quot;hello world&quot;
+
+# bind a variable that&#39;ll be accessible in the shell
+value = 13
+</code></pre>
+
+<p>Running the shell in the directory where the above .iex file is located
+results in</p>
+
+<pre><code>$ iex
+Erlang R15B03 (erts-5.9.3.1) [...]
+
+hello world
+Interactive Elixir (0.8.3.dev) - press Ctrl+C to exit (type h() ENTER for help)
+iex(1)&gt; value
+13
+</code></pre>
+
+<p>It is possible to override the default loading sequence for .iex file by
+supplying the --dot-iex option to iex. See <code>iex --help</code>.</p>
+
+<h2>Configuring the shell</h2>
+
+<p>There is a number of customization options provided by the shell. Take a look
+at the docs for the <code>IEx.Options</code> module.</p>
+
+<p>The main functions there are <code>IEx.Options.get/1</code> and <code>IEx.Options.set/2</code>. One
+can also use <code>IEx.Options.list/0</code> to get the list of all supported options.
+<code>IEx.Options.print_help/1</code> will print documentation for the given option.</p>
+
+<p>In particular, it might be convenient to customize those options inside your
+.iex file like this:</p>
+
+<pre><code># .iex
+IEx.Options.set :inspect, limit: 3
+
+### now run the shell ###
+
+$ iex
+Erlang R16B (erts-5.10.1) [...]
+
+Interactive Elixir (0.9.1.dev) - press Ctrl+C to exit (type h() ENTER for help)
+iex(1)&gt; [1,2,3,4,5]
+[1,2,3,...]
+</code></pre>
+
+<h2>Expressions in IEx</h2>
+
+<p>As an interactive shell, IEx evaluates expressions. This has some
+interesting consequences that are worth discussing.</p>
+
+<p>The first one is that the code is truly evaluated and not compiled.
+This means that any benchmarking done in the shell is going to have
+skewed results. So never run any profiling nor benchmarks in the shell.</p>
+
+<p>Second of all, IEx alows you to break an expression into many lines,
+since this is common in Elixir. For example:</p>
+
+<pre><code>iex(1)&gt; &quot;ab
+...(1)&gt; c&quot;
+&quot;ab\nc&quot;
+</code></pre>
+
+<p>In the example above, the shell will be expecting more input until it
+finds the closing quote. Sometimes it is not obvious which character
+the shell is expecting, and the user may find themselves trapped in
+the state of incomplete expression with no ability to terminate it other
+than by exiting the shell.</p>
+
+<p>For such cases, there is a special break-trigger (&quot;#iex:break&quot;) that when
+encountered on a line by itself will force the shell to break out of any
+pending expression and return to its normal state:</p>
+
+<pre><code>iex(1)&gt; [&quot;ab
+...(1)&gt; c&quot;
+...(1)&gt; &quot;
+...(1)&gt; ]
+...(1)&gt; #iex:break
+** (TokenMissingError) iex:1: incomplete expression
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex.ex#L4" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#after_spawn/0">after_spawn/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#after_spawn/1">after_spawn/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#color/2">color/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#color_fragment/1">color_fragment/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#color_reset/0">color_reset/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#started?/0">started?/0</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="after_spawn/0">
+    <strong>after_spawn()</strong>
+  </p>
+  <div class="docstring"><p>Returns registered after spawn callbacks.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex.ex#L162" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="after_spawn/1">
+    <strong>after_spawn(fun)</strong>
+  </p>
+  <div class="docstring"><p>Registers a function to be invoked after IEx process is spawned.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex.ex#L155" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="color/2">
+    <strong>color(color_name, string)</strong>
+  </p>
+  <div class="docstring"><p>Returns <code>string</code> escaped using the specified color.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex.ex#L249" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="color_fragment/1">
+    <strong>color_fragment(color_name)</strong>
+  </p>
+  <div class="docstring"><p>Returns an escaped fragment using the specified color.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex.ex#L257" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="color_reset/0">
+    <strong>color_reset()</strong>
+  </p>
+  <div class="docstring"><p>Returns an escaped fragment that resets colors and attributes.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex.ex#L265" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="started?/0">
+    <strong>started?()</strong>
+  </p>
+  <div class="docstring"><p>Returns true if IEx was properly started.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/iex/lib/iex.ex#L170" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/IO.ANSI.html b/docs/stable/IO.ANSI.html
new file mode 100644
index 000000000..0861730f5
--- /dev/null
+++ b/docs/stable/IO.ANSI.html
@@ -0,0 +1,815 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>IO.ANSI</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        IO.ANSI
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module provides functionality to render ANSI escape sequences
+(<a href="http://en.wikipedia.org/wiki/ANSI_escape_code">http://en.wikipedia.org/wiki/ANSI_escape_code</a>) —  characters embedded
+in the text used to control formatting, color, and other output options
+on video text terminals.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L21" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#black/0">black/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#black_background/0">black_background/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#blink_off/0">blink_off/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#blink_rapid/0">blink_rapid/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#blink_slow/0">blink_slow/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#blue/0">blue/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#blue_background/0">blue_background/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bright/0">bright/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#conceal/0">conceal/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#crossed_out/0">crossed_out/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cyan/0">cyan/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cyan_background/0">cyan_background/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#default_background/0">default_background/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#default_color/0">default_color/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#encircled/0">encircled/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#escape/2">escape/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#escape_fragment/2">escape_fragment/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#faint/0">faint/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_1/0">font_1/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_2/0">font_2/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_3/0">font_3/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_4/0">font_4/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_5/0">font_5/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_6/0">font_6/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_7/0">font_7/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_8/0">font_8/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#font_9/0">font_9/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#framed/0">framed/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#green/0">green/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#green_background/0">green_background/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#inverse/0">inverse/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#italic/0">italic/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#magenta/0">magenta/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#magenta_background/0">magenta_background/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#no_underline/0">no_underline/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#normal/0">normal/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#not_framed_encircled/0">not_framed_encircled/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#not_italic/0">not_italic/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#not_overlined/0">not_overlined/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#overlined/0">overlined/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#primary_font/0">primary_font/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#red/0">red/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#red_background/0">red_background/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reset/0">reset/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reverse/0">reverse/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#terminal?/1">terminal?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#underline/0">underline/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#white/0">white/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#white_background/0">white_background/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#yellow/0">yellow/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#yellow_background/0">yellow_background/0</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="black/0">
+    <strong>black()</strong>
+  </p>
+  <div class="docstring"><p>Sets foreground color to black</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="black_background/0">
+    <strong>black_background()</strong>
+  </p>
+  <div class="docstring"><p>Sets background color to black</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="blink_off/0">
+    <strong>blink_off()</strong>
+  </p>
+  <div class="docstring"><p>Blink: off</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L94" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="blink_rapid/0">
+    <strong>blink_rapid()</strong>
+  </p>
+  <div class="docstring"><p>Blink: Rapid. MS-DOS ANSI.SYS; 150 per minute or more; not widely supported</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L62" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="blink_slow/0">
+    <strong>blink_slow()</strong>
+  </p>
+  <div class="docstring"><p>Blink: Slow. Less than 150 per minute</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L59" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="blue/0">
+    <strong>blue()</strong>
+  </p>
+  <div class="docstring"><p>Sets foreground color to blue</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="blue_background/0">
+    <strong>blue_background()</strong>
+  </p>
+  <div class="docstring"><p>Sets background color to blue</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bright/0">
+    <strong>bright()</strong>
+  </p>
+  <div class="docstring"><p>Bright (increased intensity) or Bold</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L47" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="conceal/0">
+    <strong>conceal()</strong>
+  </p>
+  <div class="docstring"><p>Conceal. Not widely supported</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L71" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="crossed_out/0">
+    <strong>crossed_out()</strong>
+  </p>
+  <div class="docstring"><p>Crossed-out. Characters legible, but marked for deletion. Not widely supported.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L74" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cyan/0">
+    <strong>cyan()</strong>
+  </p>
+  <div class="docstring"><p>Sets foreground color to cyan</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cyan_background/0">
+    <strong>cyan_background()</strong>
+  </p>
+  <div class="docstring"><p>Sets background color to cyan</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="default_background/0">
+    <strong>default_background()</strong>
+  </p>
+  <div class="docstring"><p>Default background color</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L111" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="default_color/0">
+    <strong>default_color()</strong>
+  </p>
+  <div class="docstring"><p>Default text color</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L108" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="encircled/0">
+    <strong>encircled()</strong>
+  </p>
+  <div class="docstring"><p>Encircled</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L117" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="escape/2">
+    <strong>escape(string, emit // terminal?())</strong>
+  </p>
+  <div class="docstring"><p>Escapes a string by converting named ANSI sequences into actual ANSI codes.</p>
+
+<p>The format for referring to sequences is <code>%{red}</code> and <code>%{red,bright}</code> (for
+multiple sequences).</p>
+
+<p>It will also append a %{reset} to the string. If you don&#39;t want this
+behaviour, use <code>escape_fragment/1</code> and <code>escape_fragment/2</code>.</p>
+
+<p>An optional boolean parameter can be passed to enable or disable
+emitting actual ANSI codes. When false, no ANSI codes will emitted.
+By default, standard output will be checked if it is a terminal capable
+of handling these sequences (using <code>terminal?/0</code> function)</p>
+
+<h2>Example</h2>
+
+<p>iex&gt; IO.ANSI.escape(&quot;Hello %{red,bright,green}yes&quot;)
+  &quot;Hello \e[31m\e[1m\e[32myes\e[0m&quot;</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L158" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="escape_fragment/2">
+    <strong>escape_fragment(string, emit // terminal?())</strong>
+  </p>
+  <div class="docstring"><p>Escapes a string by converting named ANSI sequences into actual ANSI codes.</p>
+
+<p>The format for referring to sequences is <code>%{red}</code> and <code>%{red,bright}</code> (for
+multiple sequences).</p>
+
+<p>An optional boolean parameter can be passed to enable or disable
+emitting actual ANSI codes. When false, no ANSI codes will emitted.
+By default, standard output will be checked if it is a terminal capable
+of handling these sequences (using <code>terminal?/0</code> function)</p>
+
+<h2>Example</h2>
+
+<p>iex&gt; IO.ANSI.escape<em>fragment(&quot;Hello %{red,bright,green}yes&quot;)
+  &quot;Hello \e[31m\e[1m\e[32myes&quot;
+  iex&gt; IO.ANSI.escape</em>fragment(&quot;%{reset}bye&quot;)
+  &quot;\e[0mbye&quot;</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L187" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="faint/0">
+    <strong>faint()</strong>
+  </p>
+  <div class="docstring"><p>Faint (decreased intensity), not widely supported</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L50" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_1/0">
+    <strong>font_1()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 1</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_2/0">
+    <strong>font_2()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 2</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_3/0">
+    <strong>font_3()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 3</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_4/0">
+    <strong>font_4()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 4</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_5/0">
+    <strong>font_5()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 5</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_6/0">
+    <strong>font_6()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 6</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_7/0">
+    <strong>font_7()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 7</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_8/0">
+    <strong>font_8()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 8</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="font_9/0">
+    <strong>font_9()</strong>
+  </p>
+  <div class="docstring"><p>Sets alternative font 9</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="framed/0">
+    <strong>framed()</strong>
+  </p>
+  <div class="docstring"><p>Framed</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L114" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="green/0">
+    <strong>green()</strong>
+  </p>
+  <div class="docstring"><p>Sets foreground color to green</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="green_background/0">
+    <strong>green_background()</strong>
+  </p>
+  <div class="docstring"><p>Sets background color to green</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="inverse/0">
+    <strong>inverse()</strong>
+  </p>
+  <div class="docstring"><p>Image: Negative. Swap foreground and background</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L65" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="italic/0">
+    <strong>italic()</strong>
+  </p>
+  <div class="docstring"><p>Italic: on. Not widely supported. Sometimes treated as inverse.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="magenta/0">
+    <strong>magenta()</strong>
+  </p>
+  <div class="docstring"><p>Sets foreground color to magenta</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="magenta_background/0">
+    <strong>magenta_background()</strong>
+  </p>
+  <div class="docstring"><p>Sets background color to magenta</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="no_underline/0">
+    <strong>no_underline()</strong>
+  </p>
+  <div class="docstring"><p>Underline: None</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L91" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="normal/0">
+    <strong>normal()</strong>
+  </p>
+  <div class="docstring"><p>Normal color or intensity</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L85" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="not_framed_encircled/0">
+    <strong>not_framed_encircled()</strong>
+  </p>
+  <div class="docstring"><p>Not framed or encircled</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L123" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="not_italic/0">
+    <strong>not_italic()</strong>
+  </p>
+  <div class="docstring"><p>Not italic</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L88" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="not_overlined/0">
+    <strong>not_overlined()</strong>
+  </p>
+  <div class="docstring"><p>Not overlined</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L126" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="overlined/0">
+    <strong>overlined()</strong>
+  </p>
+  <div class="docstring"><p>Overlined</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L120" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="primary_font/0">
+    <strong>primary_font()</strong>
+  </p>
+  <div class="docstring"><p>Sets primary (default) font</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L77" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="red/0">
+    <strong>red()</strong>
+  </p>
+  <div class="docstring"><p>Sets foreground color to red</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="red_background/0">
+    <strong>red_background()</strong>
+  </p>
+  <div class="docstring"><p>Sets background color to red</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reset/0">
+    <strong>reset()</strong>
+  </p>
+  <div class="docstring"><p>Resets all attributes</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L44" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reverse/0">
+    <strong>reverse()</strong>
+  </p>
+  <div class="docstring"><p>Image: Negative. Swap foreground and background</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L68" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="terminal?/1">
+    <strong>terminal?(device // :erlang.group_leader())</strong>
+  </p>
+  <div class="docstring"><p>Checks whether the default I/O device is a terminal or a file.</p>
+
+<p>Used to identify whether printing ANSI escape sequences will likely
+be printed as intended.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="underline/0">
+    <strong>underline()</strong>
+  </p>
+  <div class="docstring"><p>Underline: Single</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L56" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="white/0">
+    <strong>white()</strong>
+  </p>
+  <div class="docstring"><p>Sets foreground color to white</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="white_background/0">
+    <strong>white_background()</strong>
+  </p>
+  <div class="docstring"><p>Sets background color to white</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="yellow/0">
+    <strong>yellow()</strong>
+  </p>
+  <div class="docstring"><p>Sets foreground color to yellow</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="yellow_background/0">
+    <strong>yellow_background()</strong>
+  </p>
+  <div class="docstring"><p>Sets background color to yellow</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io/ansi.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/IO.html b/docs/stable/IO.html
new file mode 100644
index 000000000..23dc12d35
--- /dev/null
+++ b/docs/stable/IO.html
@@ -0,0 +1,323 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>IO</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        IO
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Module responsible for doing IO. Many functions in this
+module expects an IO device and an io data encoded in UTF-8.</p>
+
+<p>An IO device must be a pid or an atom representing a process.
+For convenience, Elixir provides <code>:stdio</code> and <code>:stderr</code> as
+shortcut to Erlang&#39;s <code>:standard_io</code> and <code>:standard_error</code>.</p>
+
+<p>An io data can be:</p>
+
+<ul>
+<li><p>A list of integers representing a string. Any unicode
+character must be represented with one entry in the list,
+this entry being an integer with the codepoint value;</p></li>
+<li><p>A binary in which unicode characters are represented
+with many bytes (Elixir&#39;s default representation);</p></li>
+<li><p>A list of binaries or a list of char lists (as described above);</p></li>
+<li><p>If none of the above, <code>to_binary</code> is invoked in the
+given argument;</p></li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#binread/2">binread/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binreadline/1">binreadline/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binwrite/2">binwrite/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#getn/2">getn/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#getn/3">getn/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#gets/2">gets/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#inspect/3">inspect/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#puts/2">puts/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#read/2">read/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#readline/1">readline/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#write/2">write/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="binread/2">
+    <strong>binread(device // group_leader(), count)</strong>
+  </p>
+  <div class="docstring"><p>Reads <code>count</code> bytes from the IO device as binary,
+no unicode conversion happens.</p>
+
+<p>Check <code>read/2</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binreadline/1">
+    <strong>binreadline(device // group_leader())</strong>
+  </p>
+  <div class="docstring"><p>Reads a line from the IO device as binary,
+no unicode conversion happens.</p>
+
+<p>Check <code>readline/1</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L80" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binwrite/2">
+    <strong>binwrite(device // group_leader(), item)</strong>
+  </p>
+  <div class="docstring"><p>Writes the given argument to the given device
+as a binary, no unicode conversion happens.</p>
+
+<p>Check <code>write/2</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L114" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="getn/2">
+    <strong>getn(prompt, count // 1)</strong>
+  </p>
+  <div class="docstring"><p>Gets a number of bytes from the io device. If the
+io device is a unicode device, count implies
+the number of unicode codepoints to be retrieved.
+Otherwise, the number of raw bytes. It returns:</p>
+
+<ul>
+<li><p><code>data</code> - The input characters.</p></li>
+<li><p>:eof - End of file was encountered.</p></li>
+<li><p>{:error, reason} - Other (rare) error condition,
+for instance {:error, :estale} if reading from an
+NFS file system.</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L163" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="getn/3">
+    <strong>getn(device, prompt, count)</strong>
+  </p>
+  <div class="docstring"><p>Gets a number of bytes from the io device. If the
+io device is a unicode device, count implies
+the number of unicode codepoints to be retrieved.
+Otherwise, the number of raw bytes.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L179" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="gets/2">
+    <strong>gets(device // group_leader(), prompt)</strong>
+  </p>
+  <div class="docstring"><p>Reads a line from the IO device. It returns:</p>
+
+<ul>
+<li><p><code>data</code> - The characters in the line terminated
+by a LF (or end of file).</p></li>
+<li><p>:eof - End of file was encountered.</p></li>
+<li><p>{:error, reason} - Other (rare) error condition,
+for instance {:error, :estale} if reading from an
+NFS file system.</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L195" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(item, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Inspects and writes the given argument to the device
+followed by a new line. A set of options can be given.</p>
+
+<h2>Examples</h2>
+
+<pre><code>IO.inspect Process.list
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L137" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="inspect/3">
+    <strong>inspect(device, item, opts)</strong>
+  </p>
+  <div class="docstring"><p>Inspects the item with options using the given device.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L144" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="puts/2">
+    <strong>puts(device // group_leader(), item)</strong>
+  </p>
+  <div class="docstring"><p>Writes the argument to the device, similarly to write
+but adds a new line at the end. The argument is expected
+to be a chardata.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L123" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="read/2">
+    <strong>read(device // group_leader(), count)</strong>
+  </p>
+  <div class="docstring"><p>Reads <code>count</code> bytes from the IO device. It returns:</p>
+
+<ul>
+<li><p><code>data</code> - The input characters.</p></li>
+<li><p>:eof - End of file was encountered.</p></li>
+<li><p>{:error, reason} - Other (rare) error condition,
+for instance {:error, :estale} if reading from an
+NFS file system.</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="readline/1">
+    <strong>readline(device // group_leader())</strong>
+  </p>
+  <div class="docstring"><p>Reads a line from the IO device. It returns:</p>
+
+<ul>
+<li><p><code>data</code> - The input characters.</p></li>
+<li><p>:eof - End of file was encountered.</p></li>
+<li><p>{:error, reason} - Other (rare) error condition,
+for instance {:error, :estale} if reading from an
+NFS file system.</p></li>
+</ul>
+
+<p>This function does the same as <code>gets/2</code>,
+except the prompt is not required as argument.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L70" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="write/2">
+    <strong>write(device // group_leader(), item)</strong>
+  </p>
+  <div class="docstring"><p>Writes the given argument to the given device.
+By default the device is the standard output.
+The argument is expected to be a chardata (i.e.
+a char list or an unicode binary).</p>
+
+<p>It returns <code>:ok</code> if it succeeds.</p>
+
+<h2>Examples</h2>
+
+<pre><code>IO.write &quot;sample&quot;
+#=&gt; &quot;sample&quot;
+
+IO.write :stderr, &quot;error&quot;
+#=&gt; &quot;error&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/io.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Kernel.CLI.html b/docs/stable/Kernel.CLI.html
new file mode 100644
index 000000000..fb26b8f9d
--- /dev/null
+++ b/docs/stable/Kernel.CLI.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Kernel.CLI</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Kernel.CLI
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Module responsible for controlling Elixir&#39;s CLI</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/cli.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/2">run/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/2">
+    <strong>run(fun, halt // true)</strong>
+  </p>
+  <div class="docstring"><p>Runs the given function by catching any failure
+and printing them to stdout. <code>at_exit</code> hooks are
+also invoked before exiting.</p>
+
+<p>This function is used by Elixir&#39;s CLI and also
+by escripts generated by Elixir.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/cli.ex#L37" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Kernel.ParallelCompiler.html b/docs/stable/Kernel.ParallelCompiler.html
new file mode 100644
index 000000000..c2ecc43d0
--- /dev/null
+++ b/docs/stable/Kernel.ParallelCompiler.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Kernel.ParallelCompiler</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Kernel.ParallelCompiler
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A module responsible for compiling files in parallel.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/parallel_compiler.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#files/2">files/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#files_to_path/3">files_to_path/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="files/2">
+    <strong>files(files, callback // default_callback)</strong>
+  </p>
+  <div class="docstring"><p>Compiles the given files.</p>
+
+<p>Those files are compiled in parallel and can automatically
+detect dependencies between them. Once a dependency is found,
+the current file stops being compiled until the dependency is
+resolved.</p>
+
+<p>A callback that is invoked every time a file is compiled
+with its name can be optionally given as argument.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/parallel_compiler.ex#L21" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="files_to_path/3">
+    <strong>files_to_path(files, path, callback // default_callback)</strong>
+  </p>
+  <div class="docstring"><p>Compiles the given files to the given path.
+Read files/2 for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/parallel_compiler.ex#L29" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Kernel.ParallelRequire.html b/docs/stable/Kernel.ParallelRequire.html
new file mode 100644
index 000000000..4ddaca4a0
--- /dev/null
+++ b/docs/stable/Kernel.ParallelRequire.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Kernel.ParallelRequire</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Kernel.ParallelRequire
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A module responsible for requiring files in parallel.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/parallel_require.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#files/2">files/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="files/2">
+    <strong>files(files, callback // default_callback)</strong>
+  </p>
+  <div class="docstring"><p>Requires the given files.</p>
+
+<p>A callback that is invoked every time a file is required
+can be optionally given as argument.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/parallel_require.ex#L14" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Kernel.SpecialForms.html b/docs/stable/Kernel.SpecialForms.html
new file mode 100644
index 000000000..c2670322b
--- /dev/null
+++ b/docs/stable/Kernel.SpecialForms.html
@@ -0,0 +1,1107 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Kernel.SpecialForms</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Kernel.SpecialForms
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>In this module we define Elixir special forms. Special forms
+cannot be overriden by the developer and are the basic
+building blocks of Elixir code.</p>
+
+<p>Some of those forms are lexical (like <code>alias</code>, <code>import</code>, etc).
+The macros <code>{}</code>, <code>[]</code> and <code>&lt;&lt;&gt;&gt;</code> are also special forms used
+to define data structures, respectively tuples, lists and binaries.</p>
+
+<p>This module also documents Elixir&#39;s pseudo variables (<code>__MODULE__</code>,
+<code>__FILE__</code>, <code>__ENV__</code> and <code>__CALLER__</code>). Pseudo variables return
+information about Elixir&#39;s compilation environment and can only
+be read, never assigned to.</p>
+
+<p>Finally, it also documents 3 special forms (<code>__block__</code>,
+<code>__scope__</code> and <code>__aliases__</code>), which are not intended to be
+called directly by the developer but they appear in quoted
+contents since they are essential in Elixir&#39;s constructions.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#&lt;&lt;&gt;&gt;/1">&lt;&lt;&gt;&gt;/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#[]/1">[]/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__DIR__/0">__DIR__/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__ENV__/0">__ENV__/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__FILE__/0">__FILE__/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__MODULE__/0">__MODULE__/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__aliases__/1">__aliases__/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__block__/1">__block__/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__scope__/2">__scope__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#alias/2">alias/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#alias!/1">alias!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bc/1">bc/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#import/2">import/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#lc/1">lc/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#quote/2">quote/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#require/2">require/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unquote/1">unquote/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unquote_splicing/1">unquote_splicing/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#var!/1">var!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#var!/2">var!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#{}/1">{}/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="&lt;&lt;&gt;&gt;/1">
+    <strong>&lt;&lt;args&gt;&gt;</strong>
+  </p>
+  <div class="docstring"><p>Defines a new bitstring.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; &lt;&lt; 1, 2, 3 &gt;&gt;
+&lt;&lt; 1, 2, 3 &gt;&gt;
+</code></pre>
+
+<h2>Bitstring types</h2>
+
+<p>A bitstring may contain many parts and those may have
+specific types. Most of the time, Elixir will figure out
+the part&#39;s type and won&#39;t require any work from you:</p>
+
+<pre><code>iex&gt; &lt;&lt;102, &quot;oo&quot;&gt;&gt;
+&quot;foo&quot;
+</code></pre>
+
+<p>Above we have two parts: the first is an integer and the
+second is a binary. If we use any other Elixir expression,
+Elixir can no longer guess the type:</p>
+
+<pre><code>iex&gt; rest = &quot;oo&quot;
+...&gt; &lt;&lt;102, rest&gt;&gt;
+** (ArgumentError) argument error
+</code></pre>
+
+<p>When a variable or expression is given as a binary part,
+Elixir defaults the type of that part to an unsigned
+little-endian integer. In the example above, since we haven&#39;t
+specified a type, Elixir expected an integer but we passed a
+binary, resulting in <code>ArgumentError</code>. We can solve this by
+explicitly tagging it as a binary:</p>
+
+<pre><code>&lt;&lt;102, rest :: binary&gt;&gt;
+</code></pre>
+
+<p>The type can be integer, float, binary, bytes, bitstring,
+bits, utf8, utf16 or utf32, e.g.:</p>
+
+<pre><code>&lt;&lt;102 :: float, rest :: binary&gt;&gt;
+</code></pre>
+
+<p>Integer can be any arbitrary precision integer. A float is an
+IEEE 754 binary32 or binary64 floating point number. A bitstring
+is an arbitrary series of bits. A binary is a special case of
+bitstring that has a total size divisible by 8.</p>
+
+<p>The utf8, utf16, and utf32 types are for UTF code points.</p>
+
+<p>The bits type is an alias for bitstring. The bytes type is an
+alias for binary.</p>
+
+<p>The signedness can also be given as signed or unsigned. The
+signedness only matters for matching. If unspecified, it
+defaults to unsigned. Example:</p>
+
+<pre><code>iex&gt; &lt;&lt;-100 :: signed, _rest :: binary&gt;&gt; = &lt;&lt;-100, &quot;foo&quot;&gt;&gt;
+&lt;&lt;156,102,111,111&gt;&gt;
+</code></pre>
+
+<p>This match would have failed if we did not specify that the
+value -100 is signed. If we&#39;re matching into a variable instead
+of a value, the signedness won&#39;t be checked; rather, the number
+will simply be interpreted as having the given (or implied)
+signedness, e.g.:</p>
+
+<pre><code>iex&gt; &lt;&lt;val, _rest :: binary&gt;&gt; = &lt;&lt;-100, &quot;foo&quot;&gt;&gt;
+...&gt; val
+156
+</code></pre>
+
+<p>Here, <code>val</code> is interpreted as unsigned.</p>
+
+<p>Signedness is only relevant on integers.</p>
+
+<p>The endianness of a part can be big, little or native (the
+latter meaning it will be resolved at VM load time). Passing
+many options can be done by giving a list:</p>
+
+<pre><code>&lt;&lt;102 :: [integer, native], rest :: binary&gt;&gt;
+</code></pre>
+
+<p>Or:</p>
+
+<pre><code>&lt;&lt;102 :: [unsigned, big, integer], rest :: binary&gt;&gt;
+</code></pre>
+
+<p>And so on.</p>
+
+<p>Endianness only makes sense for integers and some UTF code
+point types (utf16 and utf32).</p>
+
+<p>Finally, we can also specify size and unit for each part. The
+unit is multiplied by the size to give the effective size of
+the part:</p>
+
+<pre><code>iex&gt; &lt;&lt;102, _rest :: [size(2), unit(8)]&gt;&gt; = &quot;foo&quot;
+&quot;foo&quot;
+
+iex&gt; &lt;&lt;102, _rest :: size(16)&gt;&gt; = &quot;foo&quot;
+&quot;foo&quot;
+
+iex&gt; &lt;&lt;102, _rest :: size(32)&gt;&gt; = &quot;foo&quot;
+** (MatchError) no match of right hand side value: &quot;foo&quot;
+</code></pre>
+
+<p>In the example above, the first two expressions matches
+because the string &quot;foo&quot; takes 24 bits and we are matching
+against a part of 24 bits as well, 8 of which are taken by
+the integer 102 and the remaining 16 bits are specified on
+the rest. On the last example, we expect a rest with size 32,
+which won&#39;t match.</p>
+
+<p>Size and unit are not applicable to utf8, utf16, and utf32.</p>
+
+<p>The default size for integers is 8. For floats, it is 64. For
+binaries, it is the size of the binary. Only the last binary
+in a binary match can use the default size (all others must
+have their size specified explicitly). Bitstrings do not have
+a default size.</p>
+
+<p>Size can also be specified using a syntax shortcut. Instead of
+writing <code>size(8)</code>, one can write just <code>8</code> and it will be interpreted
+as <code>size(8)</code></p>
+
+<pre><code>iex&gt; &lt;&lt; 1 :: 3 &gt;&gt; == &lt;&lt; 1 :: size(3) &gt;&gt;
+true
+</code></pre>
+
+<p>The default unit for integers, floats, and bitstrings is 1. For
+binaries, it is 8.</p>
+
+<p>For floats, unit * size must result in 32 or 64, corresponding
+to binary32 and binary64, respectively.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L170" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="[]/1">
+    <strong>[args]</strong>
+  </p>
+  <div class="docstring"><p>Defines a new list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>:[].(1,2,3)
+[ 1, 2, 3 ]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L42" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__DIR__/0">
+    <strong>__DIR__()</strong>
+  </p>
+  <div class="docstring"><p>Returns the current directory as a binary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L354" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__ENV__/0">
+    <strong>__ENV__()</strong>
+  </p>
+  <div class="docstring"><p>Returns the current environment information as a <code>Macro.Env</code>
+record. In the environment you can access the current filename,
+line numbers, set up aliases, the current function and others.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L335" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__FILE__/0">
+    <strong>__FILE__()</strong>
+  </p>
+  <div class="docstring"><p>Returns the current file name as a binary.
+Although the file can be accessed in the <strong>ENV</strong>, this macro
+is a convenient shortcut.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L349" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__MODULE__/0">
+    <strong>__MODULE__()</strong>
+  </p>
+  <div class="docstring"><p>Returns the current module name as an atom or nil otherwise.
+Although the module can be accessed in the <strong>ENV</strong>, this macro
+is a convenient shortcut.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L342" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__aliases__/1">
+    <strong>args</strong>
+  </p>
+  <div class="docstring"><p>This is the special form used to hold aliases information.
+It is usually compiled to an atom:</p>
+
+<pre><code>quote do: Foo.Bar #=&gt;
+{ :__aliases__, [], [:Foo,:Bar] }
+</code></pre>
+
+<p>Elixir represents <code>Foo.Bar</code> as <code>__aliases__</code> so calls can be
+unambiguously identified by the operator <code>:.</code>. For example:</p>
+
+<pre><code>quote do: Foo.bar #=&gt;
+{{:.,[],[{:__aliases__,[],[:Foo]},:bar]},[],[]}
+</code></pre>
+
+<p>Whenever an expression iterator sees a <code>:.</code> as the tuple key,
+it can be sure that it represents a call and the second argument
+is the list is an atom.</p>
+
+<p>On the other hand, aliases holds some properties:</p>
+
+<p>1) The head element of aliases can be any term;</p>
+
+<p>2) The tail elements of aliases are guaranteed to always be atoms;</p>
+
+<p>3) When the head element of aliases is the atom :Elixir, no expansion happen;</p>
+
+<p>4) When the head element of aliases is not an atom, it is expanded at runtime:</p>
+
+<pre><code>  quote do: some_var.Foo
+  {:__aliases__,[],[{:some_var,[],:quoted},:Bar]}
+</code></pre>
+
+<p>Since <code>some_var</code> is not available at compilation time, the compiler
+   expands such expression to:</p>
+
+<pre><code>  Module.concat [some_var, Foo]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L812" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__block__/1">
+    <strong>args</strong>
+  </p>
+  <div class="docstring"><p>This is the special form used whenever we have a block
+of expressions in Elixir. This special form is private
+and should not be invoked directly:</p>
+
+<pre><code>iex&gt; quote do: (1; 2; 3)
+{ :__block__, [], [1,2,3] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L761" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__scope__/2">
+    <strong>__scope__(opts, args)</strong>
+  </p>
+  <div class="docstring"><p>This is the special form used whenever we have to temporarily
+change the scope information of a block. Used when <code>quote</code> is
+invoked with <code>location: :keep</code> to execute a given block as if
+it belonged to another file.</p>
+
+<pre><code>quote location: :keep, do: 1
+#=&gt; { :__scope__, [line: 1], [[file: &quot;iex&quot;],[do: 1]] }
+</code></pre>
+
+<p>Check <code>quote/1</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L774" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="alias/2">
+    <strong>alias(module, opts)</strong>
+  </p>
+  <div class="docstring"><p><code>alias</code> is used to setup atom aliases, often useful with modules names.</p>
+
+<h2>Examples</h2>
+
+<p><code>alias</code> can be used to setup an alias for any module:</p>
+
+<pre><code>defmodule Math do
+  alias MyKeyword, as: Keyword
+end
+</code></pre>
+
+<p>In the example above, we have set up <code>MyKeyword</code> to be alias
+as <code>Keyword</code>. So now, any reference to <code>Keyword</code> will be
+automatically replaced by <code>MyKeyword</code>.</p>
+
+<p>In case one wants to access the original <code>Keyword</code>, it can be done
+by accessing Elixir:</p>
+
+<pre><code>Keyword.values   #=&gt; uses MyKeyword.values
+Elixir.Keyword.values #=&gt; uses Keyword.values
+</code></pre>
+
+<p>Notice that calling <code>alias</code> without the <code>as:</code> option automatically
+sets an alias based on the last part of the module. For example:</p>
+
+<pre><code>alias Foo.Bar.Baz
+</code></pre>
+
+<p>Is the same as:</p>
+
+<pre><code>alias Foo.Bar.Baz, as: Baz
+</code></pre>
+
+<h2>Lexical scope</h2>
+
+<p><code>import</code>, <code>require</code> and <code>alias</code> are called directives and all
+have lexical scope. This means you can set up aliases inside
+specific functions and it won&#39;t affect the overall scope.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L208" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="alias!/1">
+    <strong>alias!(alias)</strong>
+  </p>
+  <div class="docstring"><p>When used inside quoting, marks that the alias should not
+be hygienezed. This means the alias will be expanded when
+the macro is expanded.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L655" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bc/1">
+    <strong>bc(args)</strong>
+  </p>
+  <div class="docstring"><p>Defines a bit comprehension. It follows the same syntax as
+a list comprehension but expects each element returned to
+be a bitstring. For example, here is how to remove all
+spaces from a string:</p>
+
+<pre><code>iex&gt; bc &lt;&lt;c&gt;&gt; inbits &quot; hello world &quot;, c != ? , do: &lt;&lt;c&gt;&gt;
+&quot;helloworld&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L750" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="import/2">
+    <strong>import(module, opts)</strong>
+  </p>
+  <div class="docstring"><p><code>import</code> allows one to easily access functions or macros from
+others modules without using the qualified name.</p>
+
+<h2>Examples</h2>
+
+<p>If you are using several functions from a given module, you can
+import those functions and reference them as local functions,
+for example:</p>
+
+<pre><code>iex&gt; import List
+...&gt; flatten([1,[2],3])
+[1,2,3]
+</code></pre>
+
+<h2>Selector</h2>
+
+<p>By default, Elixir imports functions and macros from the given
+module, except the ones starting with underscore (which are
+usually callbacks):</p>
+
+<pre><code>import List
+</code></pre>
+
+<p>A developer can change this behavior to include all macros and
+functions, regardless if it starts with underscore, by passing
+<code>:all</code> as first argument:</p>
+
+<pre><code>import :all, List
+</code></pre>
+
+<p>It can also be customized to import only all functions or
+all macros:</p>
+
+<pre><code>import :functions, List
+import :macros, List
+</code></pre>
+
+<p>Alternatively, Elixir allows a developer to specify <code>:only</code>
+or <code>:except</code> as a fine grained control on what to import (or
+not):</p>
+
+<pre><code>import List, only: [flatten: 1]
+</code></pre>
+
+<h2>Lexical scope</h2>
+
+<p>It is important to notice that <code>import</code> is lexical. This means you
+can import specific macros inside specific functions:</p>
+
+<pre><code>defmodule Math do
+  def some_function do
+    # 1) Disable `if/2` from Kernel
+    import Kernel, except: [if: 2]
+
+    # 2) Require the new `if` macro from MyMacros
+    import MyMacros
+
+    # 3) Use the new macro
+    if do_something, it_works
+  end
+end
+</code></pre>
+
+<p>In the example above, we imported macros from <code>MyMacros</code>,
+replacing the original <code>if/2</code> implementation by our own
+during that specific function. All other functions in that
+module will still be able to use the original one.</p>
+
+<h2>Alias/Require shortcut</h2>
+
+<p>All imported modules are also required by default. <code>import</code>
+also accepts <code>as:</code> as an option so it automatically sets up
+an alias. Please check <code>alias</code> for more information.</p>
+
+<h2>Warnings</h2>
+
+<p>If you import a module and you don&#39;t use any of the imported
+functions or macros from this module, Elixir is going to issue
+a warning implying the import is not being used.</p>
+
+<p>In case the import is generated automatically by a macro,
+Elixir won&#39;t emit any warnings though, since the import
+was not explicitly defined.</p>
+
+<p>Both warning behaviors could be changed by explicitily
+setting the <code>:warn</code> option to true or false.</p>
+
+<h2>Ambiguous function/macro names</h2>
+
+<p>If two modules <code>A</code> and <code>B</code> are imported and they both contain
+a <code>foo</code> function with an arity of <code>1</code>, an error is only emitted
+if an ambiguous call to <code>foo/1</code> is actually made; that is, the
+errors are emitted lazily, not eagerly.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L328" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="lc/1">
+    <strong>lc(args)</strong>
+  </p>
+  <div class="docstring"><p>List comprehensions allow you to quickly build a list from another list:</p>
+
+<pre><code>iex&gt; lc n inlist [1,2,3,4], do: n * 2
+[2,4,6,8]
+</code></pre>
+
+<p>A comprehension accepts many generators and also filters. Generators
+are defined using both <code>inlist</code> and <code>inbits</code> operators, allowing you
+to loop lists and bitstrings:</p>
+
+<pre><code># A list generator:
+iex&gt; lc n inlist [1,2,3,4], do: n * 2
+[2,4,6,8]
+
+# A bit string generator:
+iex&gt; lc &lt;&lt;n&gt;&gt; inbits &lt;&lt;1,2,3,4&gt;&gt;, do: n * 2
+[2,4,6,8]
+
+# A generator from a variable:
+iex&gt; list = [1,2,3,4]
+...&gt; lc n inlist list, do: n * 2
+[2,4,6,8]
+
+# A comprehension with two generators
+iex&gt; lc x inlist [1,2], y inlist [2,3], do: x*y
+[2,3,4,6]
+</code></pre>
+
+<p>Filters can also be given:</p>
+
+<pre><code># A comprehension with a generator and a filter
+iex&gt; lc n inlist [1,2,3,4,5,6], rem(n, 2) == 0, do: n
+[2,4,6]
+</code></pre>
+
+<p>Bit string generators are quite useful when you need to
+organize bit string streams:</p>
+
+<pre><code>iex&gt; pixels = &lt;&lt;213,45,132,64,76,32,76,0,0,234,32,15&gt;&gt;
+iex&gt; lc &lt;&lt;r::8,g::8,b::8&gt;&gt; inbits pixels, do: {r,g,b}
+[{213,45,132},{64,76,32},{76,0,0},{234,32,15}]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L738" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="quote/2">
+    <strong>quote(opts, block)</strong>
+  </p>
+  <div class="docstring"><p>Allows you to get the representation of any expression.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; quote do: sum(1, 2, 3)
+{ :sum, [], [1, 2, 3] }
+</code></pre>
+
+<h2>Explanation</h2>
+
+<p>Any Elixir code can be represented using Elixir data structures.
+The building block of Elixir macros is a tuple with three elements,
+for example:</p>
+
+<pre><code>{ :sum, [], [1, 2, 3] }
+</code></pre>
+
+<p>The tuple above represents a function call to sum passing 1, 2 and
+3 as arguments. The tuple elements are:</p>
+
+<ul>
+<li>The first element of the tuple is always an atom or
+another tuple in the same representation;</li>
+<li>The second element of the tuple represents metadata;</li>
+<li>The third element of the tuple are the arguments for the
+function call. The third argument may be an atom, which is
+usually a variable (or a local call);</li>
+</ul>
+
+<h2>Options</h2>
+
+<ul>
+<li><code>:unquote</code> - When false, disables unquoting. Useful when you have a quote
+           inside another quote and want to control which quote is
+           able to unquote;</li>
+<li><code>:location</code> - When set to <code>:keep</code>, keeps the current line and file on quotes.
+            Read the Stacktrace information section below for more information;</li>
+<li><code>:hygiene</code> - Allows a developer to disable hygiene selectively;</li>
+<li><code>:context</code> - Sets the context resolution happens at;</li>
+</ul>
+
+<h2>Macro literals</h2>
+
+<p>Besides the tuple described above, Elixir has a few literals that
+when quoted return themselves. They are:</p>
+
+<pre><code>:sum         #=&gt; Atoms
+1            #=&gt; Integers
+2.0          #=&gt; Floats
+[1,2]        #=&gt; Lists
+&quot;binaries&quot;   #=&gt; Binaries
+{key, value} #=&gt; Tuple with two elements
+</code></pre>
+
+<h2>Hygiene and context</h2>
+
+<p>Elixir macros are hygienic via means of deferred resolution.
+This means variables, aliases and imports defined inside the
+quoted refer to the context that defined the macro and not
+the context where the macro is expanded.</p>
+
+<p>For this mechanism to work, every quoted code is attached
+to a context. Consider the following example:</p>
+
+<pre><code>defmodule ContextSample do
+  def hello do
+    quote do: world
+  end
+end
+
+ContextSample.hello
+#=&gt; {:world,[],ContextSample}
+</code></pre>
+
+<p>Notice how the third element of the returned tuple is the
+module name. This means that the variable is associated to the
+ContextSample module and only code generated by this module
+will be able to access that particular <code>world</code> variable.
+While this means macros from the same module could have
+conflicting variables, it also allows different quotes from
+the same module to access them.</p>
+
+<p>The context can be disabled or changed by explicitly setting
+the context option. All hygiene mechanisms are based on such
+context and we are going to explore each of them in the following
+subsections.</p>
+
+<h3>Hygiene in variables</h3>
+
+<p>Consider the following example:</p>
+
+<pre><code>defmodule Hygiene do
+  defmacro no_interference do
+    quote do: a = 1
+  end
+end
+
+require Hygiene
+
+a = 10
+Hygiene.no_interference
+a #=&gt; 10
+</code></pre>
+
+<p>In the example above, <code>a</code> returns 10 even if the macro
+is apparently setting it to 1 because variables defined
+in the macro does not affect the context the macro is executed.
+If you want to set or get a variable in the user context, you
+can do it with the help of the <code>var!</code> macro:</p>
+
+<pre><code>defmodule NoHygiene do
+  defmacro interference do
+    quote do: var!(a) = 1
+  end
+end
+
+require NoHygiene
+
+a = 10
+NoHygiene.interference
+a #=&gt; 1
+</code></pre>
+
+<p>It is important to understand that quoted variables are scoped
+to the module they are defined. That said, even if two modules
+define the same quoted variable <code>a</code>, their values are going
+to be independent:</p>
+
+<pre><code>defmodule Hygiene1 do
+  defmacro var1 do
+    quote do: a = 1
+  end
+end
+
+defmodule Hygiene2 do
+  defmacro var2 do
+    quote do: a = 2
+  end
+end
+</code></pre>
+
+<p>Calling macros <code>var1</code> and <code>var2</code> are not going to change their
+each other values for <code>a</code>. This is useful because quoted
+variables from different modules cannot conflict. If you desire
+to explicitly access a variable from another module, we can once
+again use <code>var!</code> macro, but explicitly passing a second argument:</p>
+
+<pre><code># Access the variable a from Hygiene1
+quote do: var!(a, Hygiene1) = 2
+</code></pre>
+
+<p>Hygiene for variables can be disabled overall as:</p>
+
+<pre><code>quote hygiene: [vars: false], do: x
+</code></pre>
+
+<h3>Hygiene in aliases</h3>
+
+<p>Aliases inside quote are hygienic by default.
+Consider the following example:</p>
+
+<pre><code>defmodule Hygiene do
+  alias HashDict, as: D
+
+  defmacro no_interference do
+    quote do: D.new
+  end
+end
+
+require Hygiene
+Hygiene.no_interference #=&gt; #HashDict&lt;[]&gt;
+</code></pre>
+
+<p>Notice that, even though the alias <code>D</code> is not available
+in the context the macro is expanded, the code above works
+because <code>D</code> still expands to <code>HashDict</code>.</p>
+
+<p>In some particular cases you may want to access an alias
+or a module defined in the caller. In such scenarios, you
+can access it by disabling hygiene with <code>hygiene: [aliases: false]</code>
+or by using the <code>alias!</code> macro inside the quote:</p>
+
+<pre><code>defmodule Hygiene do
+  # This will expand to Elixir.Nested.hello
+  defmacro no_interference do
+    quote do: Nested.hello
+  end
+
+  # This will expand to Nested.hello for
+  # whatever is Nested in the caller
+  defmacro interference do
+    quote do: alias!(Nested).hello
+  end
+end
+
+defmodule Parent do
+  defmodule Nested do
+    def hello, do: &quot;world&quot;
+  end
+
+  require Hygiene
+  Hygiene.no_interference
+  #=&gt; ** (UndefinedFunctionError) ...
+
+  Hygiene.interference
+  #=&gt; &quot;world&quot;
+end
+</code></pre>
+
+<h2>Hygiene in imports</h2>
+
+<p>Similar to aliases, imports in Elixir hygienic. Consider the
+following code:</p>
+
+<pre><code>defmodule Hygiene do
+  defmacrop get_size do
+    quote do
+      size(&quot;hello&quot;)
+    end
+  end
+
+  def return_size do
+    import Kernel, except: [size: 1]
+    get_size
+  end
+end
+
+Hygiene.return_size #=&gt; 5
+</code></pre>
+
+<p>Notice how <code>return_size</code> returns 5 even though the <code>size/1</code>
+function is not imported.</p>
+
+<p>Elixir is smart enough to delay the resolution to the latest
+moment possible. So, if you call <code>size(&quot;hello&quot;)</code> inside quote,
+but no <code>size/1</code> function is available, it is then expanded on
+the caller:</p>
+
+<pre><code>defmodule Lazy do
+  defmacrop get_size do
+    import Kernel, except: [size: 1]
+
+    quote do
+      size([a: 1, b: 2])
+    end
+  end
+
+  def return_size do
+    import Kernel, except: [size: 1]
+    import Dict, only: [size: 1]
+    get_size
+  end
+end
+
+Lazy.return_size #=&gt; 2
+</code></pre>
+
+<p>As in aliases, imports expansion can be explicitly disabled
+via the <code>hygiene: [imports: false]</code> option.</p>
+
+<h2>Stacktrace information</h2>
+
+<p>One of Elixir goals is to provide proper stacktrace whenever there is an
+exception. In order to work properly with macros, the default behavior
+in quote is to not set a line. When a macro is invoked and the quoted
+expressions is expanded, the call site line is inserted.</p>
+
+<p>This is a good behavior for the majority of the cases, except if the macro
+is defining new functions. Consider this example:</p>
+
+<pre><code>defmodule MyServer do
+  use GenServer.Behaviour
+end
+</code></pre>
+
+<p><code>GenServer.Behaviour</code> defines new functions in our <code>MyServer</code> module.
+However, if there is an exception in any of these functions, we want
+the stacktrace to point to the <code>GenServer.Behaviour</code> and not the line
+that calls <code>use GenServer.Behaviour</code>. For this reason, there is an
+option called <code>:location</code> that when set to <code>:keep</code> keeps the original
+line and file lines instead of setting them to 0:</p>
+
+<pre><code>quote location: :keep do
+  def handle_call(request, _from, state) do
+    { :reply, :undef, state }
+  end
+end
+</code></pre>
+
+<p>It is important to warn though that <code>location: :keep</code> evaluates the
+code as if it was defined inside <code>GenServer.Behaviour</code> file, in
+particular, the macro <code>__FILE__</code> and exceptions happening inside
+the quote will always point to <code>GenServer.Behaviour</code> file.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L633" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="require/2">
+    <strong>require(module, opts)</strong>
+  </p>
+  <div class="docstring"><p><code>require</code> is used to require the presence of external
+modules so macros can be invoked.</p>
+
+<h2>Examples</h2>
+
+<p>Notice that usually modules should not be required before usage,
+the only exception is if you want to use the macros from a module.
+In such cases, you need to explicitly require them.</p>
+
+<p>Let&#39;s suppose you created your own <code>if</code> implementation in the module
+<code>MyMacros</code>. If you want to invoke it, you need to first explicitly
+require the <code>MyMacros</code>:</p>
+
+<pre><code>defmodule Math do
+  require MyMacros
+  MyMacros.if do_something, it_works
+end
+</code></pre>
+
+<p>An attempt to call a macro that was not loaded will raise an error.</p>
+
+<h2>Alias shortcut</h2>
+
+<p><code>require</code> also accepts <code>as:</code> as an option so it automatically sets
+up an alias. Please check <code>alias</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L237" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unquote/1">
+    <strong>unquote(expr)</strong>
+  </p>
+  <div class="docstring"><p>Unquotes the given expression from inside a macro.</p>
+
+<h2>Examples</h2>
+
+<p>Imagine the situation you have a variable <code>name</code> and
+you want to inject it inside some quote. The first attempt
+would be:</p>
+
+<pre><code>value = 13
+quote do: sum(1, value, 3)
+</code></pre>
+
+<p>Which would then return:</p>
+
+<pre><code>{ :sum, [], [1, { :value, [], quoted }, 3] }
+</code></pre>
+
+<p>Which is not the expected result. For this, we use unquote:</p>
+
+<pre><code>value = 13
+quote do: sum(1, unquote(value), 3)
+#=&gt; { :sum, [], [1, 13, 3] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L681" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unquote_splicing/1">
+    <strong>unquote_splicing(expr)</strong>
+  </p>
+  <div class="docstring"><p>Unquotes the given list expanding its arguments. Similar
+to unquote.</p>
+
+<h2>Examples</h2>
+
+<pre><code>values = [2,3,4]
+quote do: sum(1, unquote_splicing(values), 5)
+#=&gt; { :sum, [], [1, 2, 3, 4, 5] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L695" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="var!/1">
+    <strong>var!(var)</strong>
+  </p>
+  <div class="docstring"><p>When used inside quoting, marks that the variable should
+not be hygienized. The argument can be either a variable
+node (i.e. a tuple with three elements where the last
+one is an atom) or an atom representing the variable name.
+Check <code>quote/2</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L642" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="var!/2">
+    <strong>var!(var, context)</strong>
+  </p>
+  <div class="docstring"><p>Defines a variable in the given context.
+Check <code>quote/2</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L648" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="{}/1">
+    <strong>{args}</strong>
+  </p>
+  <div class="docstring"><p>Defines a new tuple.</p>
+
+<h2>Examples</h2>
+
+<pre><code>:{}.(1,2,3)
+{ 1, 2, 3 }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/special_forms.ex#L31" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Kernel.Typespec.html b/docs/stable/Kernel.Typespec.html
new file mode 100644
index 000000000..6b3fec7e7
--- /dev/null
+++ b/docs/stable/Kernel.Typespec.html
@@ -0,0 +1,437 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Kernel.Typespec</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Kernel.Typespec
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Holds macros and functions for working with typespecs.</p>
+
+<p>The attributes <code>@type</code>, <code>@opaque</code>, <code>@typep</code>, <code>@spec</code> and
+<code>@callback</code> available in modules are handled by the equivalent
+macros defined by this module.</p>
+
+<h2>Defining a type</h2>
+
+<p>@type type<em>name :: type
+@typep type</em>name :: type
+@opaque type_name :: type</p>
+
+<p>For more details, see documentation for deftype, deftypep and defopaque in
+Kernel.Typespec</p>
+
+<h2>Defining a specification</h2>
+
+<p>@spec function<em>name(type, type) :: type
+@callback function</em>name(type, type) :: type</p>
+
+<p>For more details, see documentation for defspec and defcallback in
+Kernel.Typespec</p>
+
+<h2>Types</h2>
+
+<p>The type syntax provided by Elixir is fairly similar to the one
+in Erlang.</p>
+
+<p>Most of the built-in types provided in Erlang (for example, <code>pid()</code>)
+are expressed the same way: <code>pid()</code> or simply <code>pid</code>. Parametrized types
+are also supported: <code>list(integer())</code> and so are remote types: <code>Enum.t</code>.</p>
+
+<p>Certain data type shortcuts ([...], &lt;&lt;&gt;&gt; and {...}) are supported as well.</p>
+
+<p>Main differences lie in how bit strings and functions are defined:</p>
+
+<h3>Bit Strings</h3>
+
+<p>Bit string with a base size of 3:</p>
+
+<pre><code>&lt;&lt;_ :: 3&gt;&gt;
+</code></pre>
+
+<p>Bit string with a unit size of 8:</p>
+
+<pre><code>&lt;&lt;_ :: _ * 8&gt;&gt;
+</code></pre>
+
+<h3>Anonymous functions</h3>
+
+<p>Any anonymous function:</p>
+
+<pre><code>(fun(...) -&gt; any)
+or
+((...) -&gt; any)
+or
+(... -&gt; any)
+</code></pre>
+
+<p>Anonymous function with arity of zero:</p>
+
+<pre><code>(fun() -&gt; type)
+or
+(() -&gt; type)
+</code></pre>
+
+<p>Anonymous function with some arity:</p>
+
+<pre><code>(fun(type, type) -&gt; type)
+or
+((type, type) -&gt; type)
+or
+(type, type -&gt; type)
+</code></pre>
+
+<h2>Notes</h2>
+
+<p>Elixir discourages the use of type <code>string()</code> as it might be confused
+with binaries which are referred to as &quot;strings&quot; in Elixir (as opposed to
+character lists). In order to use the type that is called <code>string()</code> in Erlang,
+one has to use the <code>char_list()</code> type which is a synonym for <code>string()</code>. If you
+use <code>string()</code>, you&#39;ll get a warning from the compiler.</p>
+
+<p>If you want to refer to the &quot;string&quot; type (the one operated by functions in the
+String module), use <code>String.t()</code> type instead.</p>
+
+<p>See <a href="http://www.erlang.org/doc/reference_manual/typespec.html">http://www.erlang.org/doc/reference_manual/typespec.html</a>
+for more information.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#beam_callbacks/1">beam_callbacks/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#beam_specs/1">beam_specs/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#beam_types/1">beam_types/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#define_callback/3">define_callback/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#define_spec/3">define_spec/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#define_type/3">define_type/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defines_callback?/3">defines_callback?/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defines_spec?/3">defines_spec?/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defines_type?/3">defines_type?/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spec_to_ast/2">spec_to_ast/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#type_to_ast/1">type_to_ast/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#defcallback/1">defcallback/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defopaque/1">defopaque/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defspec/1">defspec/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#deftype/1">deftype/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#deftypep/1">deftypep/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="beam_callbacks/1">
+    <strong>beam_callbacks(module)</strong>
+  </p>
+  <div class="docstring"><p>Returns all callbacks available from the beam.</p>
+
+<p>It is returned as a list of tuples where the first
+element is spec name and arity and the second is the spec.</p>
+
+<p>The module has to have a corresponding beam file
+on the file system.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L313" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="beam_specs/1">
+    <strong>beam_specs(module)</strong>
+  </p>
+  <div class="docstring"><p>Returns all specs available from the beam.</p>
+
+<p>It is returned as a list of tuples where the first
+element is spec name and arity and the second is the spec.</p>
+
+<p>The module has to have a corresponding beam file
+on the file system.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L300" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="beam_types/1">
+    <strong>beam_types(module)</strong>
+  </p>
+  <div class="docstring"><p>Returns all types available from the beam.</p>
+
+<p>It is returned as a list of tuples where the first
+element is the type (<code>:typep</code>, <code>:type</code> and <code>:opaque</code>).</p>
+
+<p>The module has to have a corresponding beam file
+on the file system.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L273" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="define_callback/3">
+    <strong>define_callback(module, tuple, definition)</strong>
+  </p>
+  <div class="docstring"><p>Defines a <code>callback</code> by receiving Erlang&#39;s typespec.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L192" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="define_spec/3">
+    <strong>define_spec(module, tuple, definition)</strong>
+  </p>
+  <div class="docstring"><p>Defines a <code>spec</code> by receiving Erlang&#39;s typespec.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L185" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="define_type/3">
+    <strong>define_type(module, kind, type)</strong>
+  </p>
+  <div class="docstring"><p>Defines a <code>type</code>, <code>typep</code> or <code>opaque</code> by receiving Erlang&#39;s typespec.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L168" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defines_callback?/3">
+    <strong>defines_callback?(module, name, arity)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the current module defines a callback.
+This function is only available for modules being compiled.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L220" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defines_spec?/3">
+    <strong>defines_spec?(module, name, arity)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the current module defines a given spec.
+This function is only available for modules being compiled.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L211" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defines_type?/3">
+    <strong>defines_type?(module, name, arity)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the current module defines a given type
+(private, opaque or not). This function is only available
+for modules being compiled.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L201" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spec_to_ast/2">
+    <strong>spec_to_ast(name, arg2)</strong>
+  </p>
+  <div class="docstring"><p>Converts a spec clause back to Elixir AST.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L228" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="type_to_ast/1">
+    <strong>type_to_ast(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Converts a type clause back to Elixir AST.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L252" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="defcallback/1">
+    <strong>defcallback(spec)</strong>
+  </p>
+  <div class="docstring"><p>Defines a callback.
+This macro is the one responsible to handle the attribute @callback.</p>
+
+<h2>Examples</h2>
+
+<pre><code>@callback add(number, number) :: number
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L157" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defopaque/1">
+    <strong>defopaque(type)</strong>
+  </p>
+  <div class="docstring"><p>Defines an opaque type.
+This macro is the one responsible to handle the attribute @opaque.</p>
+
+<h2>Examples</h2>
+
+<pre><code>@opaque my_type :: atom
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L112" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defspec/1">
+    <strong>defspec(spec)</strong>
+  </p>
+  <div class="docstring"><p>Defines a spec.
+This macro is the one responsible to handle the attribute @spec.</p>
+
+<h2>Examples</h2>
+
+<pre><code>@spec add(number, number) :: number
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L142" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="deftype/1">
+    <strong>deftype(type)</strong>
+  </p>
+  <div class="docstring"><p>Defines a type.
+This macro is the one responsible to handle the attribute @type.</p>
+
+<h2>Examples</h2>
+
+<pre><code>@type my_type :: atom
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L97" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="deftypep/1">
+    <strong>deftypep(type)</strong>
+  </p>
+  <div class="docstring"><p>Defines a private type.
+This macro is the one responsible to handle the attribute @typep.</p>
+
+<h2>Examples</h2>
+
+<pre><code>@typep my_type :: atom
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel/typespec.ex#L127" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Kernel.html b/docs/stable/Kernel.html
new file mode 100644
index 000000000..0be9e10b6
--- /dev/null
+++ b/docs/stable/Kernel.html
@@ -0,0 +1,4459 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Kernel</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Kernel
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p><code>Kernel</code> provides the default macros and functions
+Elixir imports into your environment. Those macros and functions
+can be skipped or cherry-picked via the <code>import</code> macro. For
+instance, if you want to tell Elixir to not import the <code>case</code>
+macro, you can do:</p>
+
+<pre><code>import Kernel, except: [case: 2]
+</code></pre>
+
+<p>Elixir also has special forms that are always imported and
+cannot be skipped. These are described in <code>Kernel.SpecialForms</code>.</p>
+
+<p>Some of the functions described in this module are simply
+a proxy to its Erlang counterpart. Although they are documented
+here for convenience, you can access their original documentation
+at <a href="http://www.erlang.org/doc/man/erlang.html">http://www.erlang.org/doc/man/erlang.html</a>.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#abs/1">abs/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#atom_to_binary/2">atom_to_binary/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#atom_to_list/1">atom_to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_part/3">binary_part/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_atom/2">binary_to_atom/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_existing_atom/2">binary_to_existing_atom/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_float/1">binary_to_float/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_integer/1">binary_to_integer/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_integer/2">binary_to_integer/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_list/1">binary_to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_list/3">binary_to_list/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_term/1">binary_to_term/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_term/2">binary_to_term/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bit_size/1">bit_size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#bitstring_to_list/1">bitstring_to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#byte_size/1">byte_size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#exit/1">exit/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#float/1">float/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#float_to_binary/1">float_to_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#float_to_binary/2">float_to_binary/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#float_to_list/1">float_to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#float_to_list/2">float_to_list/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#function_exported?/3">function_exported?/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#hd/1">hd/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#integer_to_binary/1">integer_to_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#integer_to_binary/2">integer_to_binary/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#integer_to_list/1">integer_to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#integer_to_list/2">integer_to_list/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#iolist_size/1">iolist_size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#iolist_to_binary/1">iolist_to_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_alive/0">is_alive/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_atom/1">is_atom/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_binary/1">is_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_bitstring/1">is_bitstring/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_boolean/1">is_boolean/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_float/1">is_float/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_function/1">is_function/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_function/2">is_function/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_integer/1">is_integer/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_list/1">is_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_number/1">is_number/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_pid/1">is_pid/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_port/1">is_port/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_reference/1">is_reference/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_tuple/1">is_tuple/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#length/1">length/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_atom/1">list_to_atom/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_binary/1">list_to_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_bitstring/1">list_to_bitstring/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_existing_atom/1">list_to_existing_atom/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_float/1">list_to_float/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_integer/1">list_to_integer/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_integer/2">list_to_integer/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_pid/1">list_to_pid/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list_to_tuple/1">list_to_tuple/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#macro_exported?/3">macro_exported?/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#make_ref/0">make_ref/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#max/2">max/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#min/2">min/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#node/0">node/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#node/1">node/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#pid_to_list/1">pid_to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#raise/1">raise/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#raise/2">raise/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#raise/3">raise/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#round/1">round/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#self/0">self/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#size/1">size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/1">spawn/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/3">spawn/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn_link/1">spawn_link/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn_link/3">spawn_link/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#term_to_binary/1">term_to_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#term_to_binary/2">term_to_binary/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#throw/1">throw/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#tl/1">tl/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#trunc/1">trunc/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#tuple_size/1">tuple_size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#tuple_to_list/1">tuple_to_list/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#!/1">!/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#!=/2">!=/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#!==/2">!==/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&amp;&amp;/2">&amp;&amp;/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#*/2">*/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#+/2">+/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#++/2">++/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#-/2">-/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#--/2">--/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#../2">../2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#//2">//2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&lt;/2">&lt;/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&lt;-/2">&lt;-/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&lt;=/2">&lt;=/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&lt;&gt;/2">&lt;&gt;/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#==/2">==/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#===/2">===/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#=~/2">=~/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&gt;/2">&gt;/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#&gt;=/2">&gt;=/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#@/1">@/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__B__/2">__B__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__C__/2">__C__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__R__/2">__R__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__W__/2">__W__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__b__/2">__b__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__c__/2">__c__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__r__/2">__r__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#__w__/2">__w__/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#access/2">access/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#and/2">and/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#apply/2">apply/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#apply/3">apply/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#atom_to_binary/1">atom_to_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_atom/1">binary_to_atom/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#binary_to_existing_atom/1">binary_to_existing_atom/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#case/2">case/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cond/1">cond/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#def/2">def/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#def/4">def/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defdelegate/2">defdelegate/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defexception/4">defexception/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defimpl/3">defimpl/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defmacro/2">defmacro/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defmacro/4">defmacro/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defmacrop/2">defmacrop/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defmacrop/4">defmacrop/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defmodule/2">defmodule/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defoverridable/1">defoverridable/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defp/2">defp/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defp/4">defp/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defprotocol/2">defprotocol/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defrecord/3">defrecord/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defrecordp/2">defrecordp/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete_elem/2">delete_elem/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#destructure/2">destructure/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#div/2">div/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#elem/2">elem/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#function/1">function/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#function/3">function/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#if/2">if/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#in/2">in/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#insert_elem/3">insert_elem/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#inspect/2">inspect/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_exception/1">is_exception/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_range/1">is_range/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_record/1">is_record/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_record/2">is_record/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#is_regex/1">is_regex/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#match?/2">match?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#nil?/1">nil?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#not/1">not/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#or/2">or/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#receive/1">receive/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rem/2">rem/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#set_elem/3">set_elem/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_binary/1">to_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_char_list/1">to_char_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#try/1">try/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unless/2">unless/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#use/2">use/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#xor/2">xor/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#|&gt;/2">|&gt;/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#||/2">||/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="abs/1">
+    <strong>abs(number)</strong>
+  </p>
+  <div class="docstring"><p>Returns an integer or float which is the arithmetical absolute value of <code>number</code>.</p>
+
+<p>Allowed in guard tests.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; abs(-3.33)
+3.33
+iex&gt; abs(-3)
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L332" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="atom_to_binary/2">
+    <strong>atom_to_binary(atom, encoding)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which corresponds to the text representation of <code>atom</code>.
+If <code>encoding</code> is latin1, there will be one byte for each character in the text
+representation. If <code>encoding</code> is utf8 or unicode, the characters will be encoded
+using UTF-8 (meaning that characters from 16#80 up to 0xFF will be encoded in
+two bytes).</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; atom_to_binary(:elixir, :utf8)
+&quot;elixir&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L350" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="atom_to_list/1">
+    <strong>atom_to_list(atom)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string which corresponds to the text representation of <code>atom</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; atom_to_list(:elixir)
+&#39;elixir&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L364" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_part/3">
+    <strong>binary_part(binary, start, length)</strong>
+  </p>
+  <div class="docstring"><p>Extracts the part of the binary starting at <code>start</code> with length <code>length</code>.
+Binaries are zero-indexed.</p>
+
+<p>If start or length references in any way outside the binary, an
+<code>ArgumentError</code> exception is raised.</p>
+
+<p>Allowed in guard tests.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; binary_part(&quot;foo&quot;, 1, 2)
+&quot;oo&quot;
+</code></pre>
+
+<p>A negative length can be used to extract bytes at the end of a binary:</p>
+
+<pre><code>iex&gt; binary_part(&quot;foo&quot;, 3, -1)
+&quot;o&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L389" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_atom/2">
+    <strong>binary_to_atom(binary, encoding)</strong>
+  </p>
+  <div class="docstring"><p>Returns the atom whose text representation is <code>binary</code>. If <code>encoding</code> is latin1,
+no translation of bytes in the binary is done. If <code>encoding</code> is utf8 or unicode,
+the binary must contain valid UTF-8 sequences; furthermore, only Unicode
+characters up to 0xFF are allowed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; binary_to_atom(&quot;elixir&quot;, :utf8)
+:elixir
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L406" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_existing_atom/2">
+    <strong>binary_to_existing_atom(binary, encoding)</strong>
+  </p>
+  <div class="docstring"><p>Works like <code>binary_to_atom/2</code>, but the atom must already exist.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L414" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_float/1">
+    <strong>binary_to_float(some_binary)</strong>
+  </p>
+  <div class="docstring"><p>Returns a float whose text representation is <code>some_binary</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; binary_to_float(&quot;2.2017764e+0&quot;)
+2.2017764
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2645" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_integer/1">
+    <strong>binary_to_integer(some_binary)</strong>
+  </p>
+  <div class="docstring"><p>Returns a integer whose text representation is <code>some_binary</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; binary_to_integer(&quot;123&quot;)
+123
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2618" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_integer/2">
+    <strong>binary_to_integer(some_binary, base)</strong>
+  </p>
+  <div class="docstring"><p>Returns an integer whose text representation in base <code>base</code>
+is <code>some_binary</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; binary_to_integer(&quot;3FF&quot;, 16)
+1023
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2632" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_list/1">
+    <strong>binary_to_list(binary)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of integers which correspond to the bytes of <code>binary</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L422" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_list/3">
+    <strong>binary_to_list(binary, start, stop)</strong>
+  </p>
+  <div class="docstring"><p>Like binary<em>to</em>list/1, but returns a list of integers corresponding to the bytes
+from position <code>start</code> to position <code>stop</code> in <code>binary</code>. Positions in the binary
+are numbered starting from 1.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L432" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_term/1">
+    <strong>binary_to_term(binary)</strong>
+  </p>
+  <div class="docstring"><p>Returns an Erlang term which is the result of decoding the binary
+object <code>binary</code>, which must be encoded according to the Erlang external
+term format.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; binary_to_term(term_to_binary(&quot;foo&quot;))
+&quot;foo&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L448" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_term/2">
+    <strong>binary_to_term(binary, options)</strong>
+  </p>
+  <div class="docstring"><p>As <code>binary_to_term/1</code>, but accepts a safe option useful when receiving
+binaries from an untrusted source.</p>
+
+<p>When enabled, it prevents decoding data that may be used to attack the
+Erlang system. In the event of receiving unsafe data, decoding fails
+with a badarg error.</p>
+
+<p>Currently, this prevents creation of new atoms directly, creation of
+new atoms indirectly (as they are embedded in certain structures like pids,
+refs, funs, etc), and creation of new external function references. None
+of those resources are currently garbage collected, so unchecked creation
+of them can exhaust available memory.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; binary_to_term(term_to_binary(&quot;foo&quot;), [:safe])
+&quot;foo&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L473" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bit_size/1">
+    <strong>bit_size(bitstring)</strong>
+  </p>
+  <div class="docstring"><p>Returns an integer which is the size in bits of <code>bitstring</code>.</p>
+
+<p>Allowed in guard tests.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; bit_size(&lt;&lt;433::16,3::3&gt;&gt;)
+19
+iex&gt; bit_size(&lt;&lt;1,2,3&gt;&gt;)
+24
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L491" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="bitstring_to_list/1">
+    <strong>bitstring_to_list(bitstring)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of integers which correspond to the bytes of <code>bitstring</code>. If the
+number of bits in the binary is not divisible by 8, the last element of the list will
+be a bitstring containing the remaining bits (1 up to 7 bits).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L501" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="byte_size/1">
+    <strong>byte_size(bitstring)</strong>
+  </p>
+  <div class="docstring"><p>Returns an integer which is the number of bytes needed to contain <code>bitstring</code>.
+(That is, if the number of bits in Bitstring is not divisible by 8, the resulting
+number of bytes will be rounded up.)</p>
+
+<p>Allowed in guard tests.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; byte_size(&lt;&lt;433::16,3::3&gt;&gt;)
+3
+iex&gt; byte_size(&lt;&lt;1,2,3&gt;&gt;)
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L521" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="exit/1">
+    <strong>exit(reason)</strong>
+  </p>
+  <div class="docstring"><p>Stops the execution of the calling process with the given reason.
+Since evaluating this function causes the process to terminate,
+it has no return value.</p>
+
+<h2>Examples</h2>
+
+<pre><code>exit(:normal)
+exit(:seems_bad)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L537" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="float/1">
+    <strong>float(number)</strong>
+  </p>
+  <div class="docstring"><p>Converts the given number to a float. Allowed in guard clauses.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L545" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="float_to_binary/1">
+    <strong>float_to_binary(some_float)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which corresponds to the text representation
+of <code>some_float</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; float_to_binary(7.0)
+&quot;7.00000000000000000000e+00&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2687" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="float_to_binary/2">
+    <strong>float_to_binary(float, options)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which corresponds to the text representation
+of <code>float</code>.</p>
+
+<h2>Options</h2>
+
+<ul>
+<li><code>:decimals</code> — number of decimal points to show</li>
+<li><code>:scientific</code> — number of decimal points to show, in scientific format</li>
+<li><code>:compact</code> — If true, use the most compact representation (ignored with the <code>scientific</code> option)</li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>float_to_binary 7.1, [decimals: 2, compact: true] #=&gt; &quot;7.1&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2706" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="float_to_list/1">
+    <strong>float_to_list(number)</strong>
+  </p>
+  <div class="docstring"><p>Returns a char list which corresponds to the text representation of the given float.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; float_to_list(7.0)
+&#39;7.00000000000000000000e+00&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L559" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="float_to_list/2">
+    <strong>float_to_list(float, options)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list which corresponds to the text representation
+of <code>float</code>.</p>
+
+<h2>Options</h2>
+
+<ul>
+<li><code>:decimals</code> — number of decimal points to show</li>
+<li><code>:scientific</code> — number of decimal points to show, in scientific format</li>
+<li><code>:compact</code> — If true, use the most compact representation (ignored with the <code>scientific</code> option)</li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>float_to_list 7.1, [decimals: 2, compact: true] #=&gt; &#39;7.1&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2725" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="function_exported?/3">
+    <strong>function_exported?(module, function, arity)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the <code>module</code> is loaded and contains a
+public <code>function</code> with the given <code>arity</code>, otherwise false.</p>
+
+<p>In case a tuple module is given, the <code>arity</code> is automatically
+increased by one.</p>
+
+<p>Notice that this function does not load the module in case
+it is not loaded. Check <code>Code.ensure_loaded/1</code> for more
+information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3088" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="hd/1">
+    <strong>hd(list)</strong>
+  </p>
+  <div class="docstring"><p>Returns the head of a list, raises badarg if the list is empty.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L567" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="integer_to_binary/1">
+    <strong>integer_to_binary(some_integer)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which corresponds to the text representation
+of <code>some_integer</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; integer_to_binary(123)
+&quot;123&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2659" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="integer_to_binary/2">
+    <strong>integer_to_binary(some_integer, base)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which corresponds to the text representation
+of <code>some_integer</code> in base <code>base</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; integer_to_binary(100, 16)
+&quot;64&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2673" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="integer_to_list/1">
+    <strong>integer_to_list(number)</strong>
+  </p>
+  <div class="docstring"><p>Returns a char list which corresponds to the text representation of the given integer.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; integer_to_list(7)
+&#39;7&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L581" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="integer_to_list/2">
+    <strong>integer_to_list(number, base)</strong>
+  </p>
+  <div class="docstring"><p>Returns a char list which corresponds to the text representation of the
+given integer in the given case.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; integer_to_list(1023, 16)
+&#39;3FF&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L596" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="iolist_size/1">
+    <strong>iolist_size(item)</strong>
+  </p>
+  <div class="docstring"><p>Returns the size of an iolist.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; iolist_size([1,2|&lt;&lt;3,4&gt;&gt;])
+4
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L610" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="iolist_to_binary/1">
+    <strong>iolist_to_binary(item)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which is made from the integers and binaries in iolist.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; bin1 = &lt;&lt;1,2,3&gt;&gt;
+...&gt; bin2 = &lt;&lt;4,5&gt;&gt;
+...&gt; bin3 = &lt;&lt;6&gt;&gt;
+...&gt; iolist_to_binary([bin1,1,[2,3,bin2],4|bin3])
+&lt;&lt;1,2,3,1,2,3,4,5,4,6&gt;&gt;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L627" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_alive/0">
+    <strong>is_alive()</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the local node is alive; that is,
+if the node can be part of a distributed system.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L636" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_atom/1">
+    <strong>is_atom(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is an atom; otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L646" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_binary/1">
+    <strong>is_binary(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a binary; otherwise returns false.</p>
+
+<p>A binary always contains a complete number of bytes.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L658" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_bitstring/1">
+    <strong>is_bitstring(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a bitstring (including a binary); otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L668" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_boolean/1">
+    <strong>is_boolean(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is either the atom <code>true</code> or the atom <code>false</code> (i.e. a boolean);
+otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L679" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_float/1">
+    <strong>is_float(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a floating point number; otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L689" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_function/1">
+    <strong>is_function(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a function; otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L699" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_function/2">
+    <strong>is_function(term, arity)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a function that can be applied with <code>arity</code> number of arguments;
+otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L710" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_integer/1">
+    <strong>is_integer(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is an integer; otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L720" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_list/1">
+    <strong>is_list(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a list with zero or more elements; otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L730" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_number/1">
+    <strong>is_number(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is either an integer or a floating point number;
+otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L741" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_pid/1">
+    <strong>is_pid(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a pid (process identifier); otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L751" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_port/1">
+    <strong>is_port(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a port identifier; otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L761" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_reference/1">
+    <strong>is_reference(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a reference; otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L771" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_tuple/1">
+    <strong>is_tuple(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>term</code> is a tuple; otherwise returns false.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L781" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="length/1">
+    <strong>length(list)</strong>
+  </p>
+  <div class="docstring"><p>Returns the length of <code>list</code>.</p>
+
+<p>Allowed in guard tests.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; length([1,2,3,4,5,6,7,8,9])
+9
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L796" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_atom/1">
+    <strong>list_to_atom(char_list)</strong>
+  </p>
+  <div class="docstring"><p>Returns the atom whose text representation is <code>char_list</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; list_to_atom(&#39;elixir&#39;)
+:elixir
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L809" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_binary/1">
+    <strong>list_to_binary(char_list)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which is made from the content of <code>char_list</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; list_to_binary(&#39;Elixir&#39;)
+&quot;Elixir&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L822" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_bitstring/1">
+    <strong>list_to_bitstring(bitstring_list)</strong>
+  </p>
+  <div class="docstring"><p>Returns a bitstring which is made from the integers and bitstrings in <code>bitstring_list</code>.
+(the last tail in <code>bitstring_list</code> is allowed to be a bitstring.)</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; bin1 = &lt;&lt;1,2,3&gt;&gt;
+...&gt; bin2 = &lt;&lt;4,5&gt;&gt;
+...&gt; bin3 = &lt;&lt;6,7::4&gt;&gt;
+...&gt; list_to_bitstring([bin1,1,[2,3,bin2],4|bin3])
+&lt;&lt;1,2,3,1,2,3,4,5,4,6,7::size(4)&gt;&gt;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L840" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_existing_atom/1">
+    <strong>list_to_existing_atom(char_list)</strong>
+  </p>
+  <div class="docstring"><p>Returns the atom whose text representation is <code>char_list</code>, but only if there already
+exists such atom.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L849" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_float/1">
+    <strong>list_to_float(char_list)</strong>
+  </p>
+  <div class="docstring"><p>Returns the float whose text representation is <code>char_list</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; list_to_float(&#39;2.2017764e+0&#39;)
+2.2017764
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L862" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_integer/1">
+    <strong>list_to_integer(char_list)</strong>
+  </p>
+  <div class="docstring"><p>Returns an integer whose text representation is <code>char_list</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; list_to_integer(&#39;123&#39;)
+123
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L875" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_integer/2">
+    <strong>list_to_integer(char_list, base)</strong>
+  </p>
+  <div class="docstring"><p>Returns an integer whose text representation in base <code>base</code> is <code>char_list</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; list_to_integer(&#39;3FF&#39;, 16)
+1023
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L888" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_pid/1">
+    <strong>list_to_pid(char_list)</strong>
+  </p>
+  <div class="docstring"><p>Returns a pid whose text representation is <code>char_list</code>.</p>
+
+<h2>Warning:</h2>
+
+<p>This function is intended for debugging and for use in the Erlang
+operating system.</p>
+
+<p>It should not be used in application programs.</p>
+
+<h2>Examples</h2>
+
+<pre><code>list_to_pid(&#39;&lt;0.4.1&gt;&#39;) #=&gt; #PID&lt;0.4.1&gt;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L907" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list_to_tuple/1">
+    <strong>list_to_tuple(list)</strong>
+  </p>
+  <div class="docstring"><p>Returns a tuple which corresponds to <code>list</code>. <code>list</code> can contain any Erlang terms.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; list_to_tuple([:share, [:elixir, 163]])
+{:share, [:elixir, 163]}
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L920" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="macro_exported?/3">
+    <strong>macro_exported?(module, macro, arity)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the <code>module</code> is loaded and contains a
+public <code>macro</code> with the given <code>arity</code>, otherwise false.</p>
+
+<p>Notice that this function does not load the module in case
+it is not loaded. Check <code>Code.ensure_loaded/1</code> for more
+information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3106" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="make_ref/0">
+    <strong>make_ref()</strong>
+  </p>
+  <div class="docstring"><p>Returns an almost unique reference.</p>
+
+<p>The returned reference will re-occur after approximately 2^82 calls;
+therefore it is unique enough for practical purposes.</p>
+
+<h2>Examples</h2>
+
+<pre><code>make_ref() #=&gt; #Reference&lt;0.0.0.135&gt;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L936" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="max/2">
+    <strong>max(first, second)</strong>
+  </p>
+  <div class="docstring"><p>Return the biggest of the two given terms according to
+Erlang&#39;s term ordering. If the terms compare equal, the
+first one is returned.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; max(1, 2)
+2
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L952" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="min/2">
+    <strong>min(first, second)</strong>
+  </p>
+  <div class="docstring"><p>Return the smallest of the two given terms according to
+Erlang&#39;s term ordering. If the terms compare equal, the
+first one is returned.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; min(1, 2)
+1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L968" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="node/0">
+    <strong>node()</strong>
+  </p>
+  <div class="docstring"><p>Returns an atom representing the name of the local node.
+If the node is not alive, nonode@nohost is returned instead.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L979" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="node/1">
+    <strong>node(arg)</strong>
+  </p>
+  <div class="docstring"><p>Returns the node where the given argument is located.
+The argument can be a pid, a reference, or a port.
+If the local node is not alive, nonode@nohost is returned.</p>
+
+<p>Allowed in guard tests.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L991" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="pid_to_list/1">
+    <strong>pid_to_list(pid)</strong>
+  </p>
+  <div class="docstring"><p>Returns a char list which corresponds to the text representation of pid.
+This function is intended for debugging and for use in the Erlang operating
+system. It should not be used in application programs.</p>
+
+<h2>Warning:</h2>
+
+<p>This function is intended for debugging and for use in the Erlang
+operating system.</p>
+
+<p>It should not be used in application programs.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1008" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="raise/1">
+    <strong>raise(msg)</strong>
+  </p>
+  <div class="docstring"><p>Raises an error.</p>
+
+<p>If the argument is a binary, it raises <code>RuntimeError</code>
+using the given argument as message.</p>
+
+<p>If anything else, becomes a call to <code>raise(argument, [])</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>raise &quot;Given values do not match&quot;
+
+try do
+  1 + :foo
+rescue
+  x in [ArithmeticError] -&gt;
+    IO.puts &quot;that was expected&quot;
+    raise x
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3019" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="raise/2">
+    <strong>raise(exception, args)</strong>
+  </p>
+  <div class="docstring"><p>Raises an error.</p>
+
+<p>It calls <code>.exception</code> on the given argument passing
+the args in order to retrieve the appropriate exception
+structure.</p>
+
+<p>Any module defined via <code>defexception</code> automatically
+defines both <code>exception(args)</code> and <code>exception(args, current)</code>
+that creates a new and updates the given exception.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; raise(ArgumentError, message: &quot;Sample&quot;)
+** (ArgumentError) Sample
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3045" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="raise/3">
+    <strong>raise(exception, args, stacktrace)</strong>
+  </p>
+  <div class="docstring"><p>Re-raises an exception with the given stacktrace.</p>
+
+<h2>Examples</h2>
+
+<pre><code>try do
+  raise &quot;Oops&quot;
+rescue
+  exception -&gt;
+    stacktrace = System.stacktrace
+    if exception.message == &quot;Oops&quot; do
+      raise exception, [], stacktrace
+    end
+end
+</code></pre>
+
+<p>Notice that <code>System.stacktrace</code> returns the stacktrace
+of the last exception. That said, it is common to assign
+the stacktrace as the first expression inside a <code>rescue</code>
+clause as any other exception potentially raised (and
+rescued) in between the rescue clause and the raise call
+may change the <code>System.stacktrace</code> value.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3072" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="round/1">
+    <strong>round(number)</strong>
+  </p>
+  <div class="docstring"><p>Returns an integer by rounding the given number.
+Allowed in guard tests.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; round(5.5)
+6
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1023" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="self/0">
+    <strong>self()</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid (process identifier) of the calling process.
+Allowed in guard clauses.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1032" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="size/1">
+    <strong>size(arg)</strong>
+  </p>
+  <div class="docstring"><p>Returns the size of the given argument, which must be a tuple
+or a binary. If possible, please use <code>tuple_size</code> or <code>binary_size</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1041" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/1">
+    <strong>spawn(fun)</strong>
+  </p>
+  <div class="docstring"><p>Spawns the given function and returns its pid.</p>
+
+<p>Check the modules <code>Process</code> and <code>Node</code> for other functions
+to handle processes, including spawning functions in nodes.</p>
+
+<h2>Examples</h2>
+
+<pre><code>current = Kernel.self
+child   = spawn(fn -&gt; current &lt;- { Kernel.self, 1 + 2 } end)
+
+receive do
+  { ^child, 3 } -&gt; IO.puts &quot;Received 3 back&quot;
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1062" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/3">
+    <strong>spawn(module, fun, args)</strong>
+  </p>
+  <div class="docstring"><p>Spawns the given module and function passing the given args
+and returns its pid.</p>
+
+<p>Check the modules <code>Process</code> and <code>Node</code> for other functions
+to handle processes, including spawning functions in nodes.</p>
+
+<h2>Examples</h2>
+
+<pre><code>spawn(SomeModule, :function, [1,2,3])
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1079" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn_link/1">
+    <strong>spawn_link(fun)</strong>
+  </p>
+  <div class="docstring"><p>Spawns the given function, links it to the current process and returns its pid.</p>
+
+<p>Check the modules <code>Process</code> and <code>Node</code> for other functions
+to handle processes, including spawning functions in nodes.</p>
+
+<h2>Examples</h2>
+
+<pre><code>current = Kernel.self
+child   = spawn_link(fn -&gt; current &lt;- { Kernel.self, 1 + 2 } end)
+
+receive do
+  { ^child, 3 } -&gt; IO.puts &quot;Received 3 back&quot;
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1100" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn_link/3">
+    <strong>spawn_link(module, fun, args)</strong>
+  </p>
+  <div class="docstring"><p>Spawns the given module and function passing the given args,
+links it to the current process and returns its pid.</p>
+
+<p>Check the modules <code>Process</code> and <code>Node</code> for other functions
+to handle processes, including spawning functions in nodes.</p>
+
+<h2>Examples</h2>
+
+<pre><code>spawn_link(SomeModule, :function, [1,2,3])
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1117" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="term_to_binary/1">
+    <strong>term_to_binary(term)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which is the result of encoding the given term
+according to the Erlang external term format.</p>
+
+<p>This can be used for a variety of purposes, for example, writing a term
+to a file in an efficient way, or sending an Erlang term to some type
+of communications channel not supported by distributed :</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1130" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="term_to_binary/2">
+    <strong>term_to_binary(term, opts)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>term_to_binary/1</code> but also supports two options:</p>
+
+<ul>
+<li><code>compressed</code>: the level of compression to be used from 0 to 9;</li>
+<li><code>minor_version</code>: used to control the details of encoding. Can be 0 or 1,
+please read <a href="http://www.erlang.org/doc/man/erlang.html#term_to_binary-2">http://www.erlang.org/doc/man/erlang.html#term_to_binary-2</a>
+for more details</li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1144" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="throw/1">
+    <strong>throw(term)</strong>
+  </p>
+  <div class="docstring"><p>A non-local return from a function. Check try/2 for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1152" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="tl/1">
+    <strong>tl(list)</strong>
+  </p>
+  <div class="docstring"><p>Returns the tail of a list. Raises ArgumentError if the list is empty.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1160" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="trunc/1">
+    <strong>trunc(number)</strong>
+  </p>
+  <div class="docstring"><p>Returns an integer by truncating the given number.
+Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; trunc(5.5)
+5
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1175" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="tuple_size/1">
+    <strong>tuple_size(tuple)</strong>
+  </p>
+  <div class="docstring"><p>Returns the size of a tuple.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1183" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="tuple_to_list/1">
+    <strong>tuple_to_list(tuple)</strong>
+  </p>
+  <div class="docstring"><p>Converts a tuple to a list.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1191" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="!/1">
+    <strong>!arg</strong>
+  </p>
+  <div class="docstring"><p>Receives any argument and returns true if it is false
+or nil. Returns false otherwise. Not allowed in guard
+clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; !1
+false
+iex&gt; ![1,2,3]
+false
+iex&gt; !false
+true
+iex&gt; !nil
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L180" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="!=/2">
+    <strong>left != right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the two items are not equal.</p>
+
+<p>This operator considers 1 and 1.0 to be equal. For strict
+comparison, use <code>!==</code> instead.</p>
+
+<p>Like Erlang, Elixir can compare any term. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 != 2
+true
+iex&gt; 1 != 1.0
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L265" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="!==/2">
+    <strong>left !== right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the two items are strictly not equal.
+Like Erlang, Elixir can compare any term. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 !== 2
+true
+
+iex&gt; 1 !== 1.0
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L295" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&amp;&amp;/2">
+    <strong>left &amp;&amp; right</strong>
+  </p>
+  <div class="docstring"><p>Provides a short-circuit operator that evaluates and returns
+the second expression only if the first one evaluates to true
+(i.e. it is not nil nor false). Returns the first expression
+otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; true &amp;&amp; true
+true
+iex&gt; nil &amp;&amp; true
+nil
+iex&gt; true &amp;&amp; 1
+1
+iex&gt; false &amp;&amp; throw(:bad)
+false
+</code></pre>
+
+<p>Notice that, differently from Erlang <code>and</code> operator,
+this operator accepts any expression as arguments,
+not only booleans, however it is not allowed in guards.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2842" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="*/2">
+    <strong>left * right</strong>
+  </p>
+  <div class="docstring"><p>Arithmetic multiplication. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 * 2
+2
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="+/2">
+    <strong>left + right</strong>
+  </p>
+  <div class="docstring"><p>Arithmetic plus. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 + 2
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L31" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="++/2">
+    <strong>left ++ right</strong>
+  </p>
+  <div class="docstring"><p>Concatenates two lists. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; [1] ++ [2,3]
+[1,2,3]
+
+iex&gt; &#39;foo&#39; ++ &#39;bar&#39;
+&#39;foobar&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L95" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="-/2">
+    <strong>left - right</strong>
+  </p>
+  <div class="docstring"><p>Arithmetic minus. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 - 2
+-1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L42" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="--/2">
+    <strong>left -- right</strong>
+  </p>
+  <div class="docstring"><p>Removes the first occorrence of an item on the left
+for each item on the right. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; [1,2,3] -- [1,2]
+[3]
+
+iex&gt; [1,2,3,2,1] -- [1,2,2]
+[3,1]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L110" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="../2">
+    <strong>first .. last</strong>
+  </p>
+  <div class="docstring"><p>Returns a range with the specified start and end.
+Includes both ends.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 0 in 1..3
+false
+iex&gt; 1 in 1..3
+true
+iex&gt; 2 in 1..3
+true
+iex&gt; 3 in 1..3
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2817" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="//2">
+    <strong>left / right</strong>
+  </p>
+  <div class="docstring"><p>Arithmetic division. Differently from other languages,
+the result is always a float. Use div and rem if you want
+a natural division or the remainder. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 / 2
+0.5
+iex&gt; 2 / 1
+2.0
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L68" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&lt;/2">
+    <strong>left &lt; right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if left is less than right.
+Like Erlang, Elixir can compare any term. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 &lt; 2
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L192" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&lt;-/2">
+    <strong>pid &lt;- msg</strong>
+  </p>
+  <div class="docstring"><p>Sends a message to the process identified on the left.
+A process can be identified bu its PID or, if it is registered,
+by an atom.</p>
+
+<h2>Examples</h2>
+
+<pre><code>process = Kernel.self
+process &lt;- { :ok, &quot;Sending myself a message&quot; }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L81" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&lt;=/2">
+    <strong>left &lt;= right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if left is less than or equal to right.
+Like Erlang, Elixir can compare any term. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 &lt;= 2
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L216" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&lt;&gt;/2">
+    <strong>left &lt;&gt; right</strong>
+  </p>
+  <div class="docstring"><p>Concatenates two binaries.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; &quot;foo&quot; &lt;&gt; &quot;bar&quot;
+&quot;foobar&quot;
+</code></pre>
+
+<p>The <code>&lt;&gt;</code> operator can also be used in guard clauses as
+long as the first part is a literal binary:</p>
+
+<pre><code>iex&gt; &quot;foo&quot; &lt;&gt; x = &quot;foobar&quot;
+...&gt; x
+&quot;bar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2796" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="==/2">
+    <strong>left == right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the two items are equal.</p>
+
+<p>This operator considers 1 and 1.0 to be equal. For strict
+comparison, use <code>===</code> instead.</p>
+
+<p>Like Erlang, Elixir can compare any term. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 == 2
+false
+
+iex&gt; 1 == 1.0
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L247" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="===/2">
+    <strong>left === right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the two items are strictly equal.
+Like Erlang, Elixir can compare any term. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 === 2
+false
+
+iex&gt; 1 === 1.0
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L280" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="=~/2">
+    <strong>left =~ right</strong>
+  </p>
+  <div class="docstring"><p>Matches the term on the left against the regular expression
+on the right. It returns nil if not match happened or the
+first match otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; &quot;abcd&quot; =~ %r/c(d)/
+2
+iex&gt; &quot;abcd&quot; =~ %r/e/
+nil
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2936" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&gt;/2">
+    <strong>left &gt; right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if left is more than right.
+Like Erlang, Elixir can compare any term. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 &gt; 2
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L204" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="&gt;=/2">
+    <strong>left &gt;= right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if left is more than or equal to right.
+Like Erlang, Elixir can compare any term. Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; 1 &gt;= 2
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L228" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="@/1">
+    <strong>@expr</strong>
+  </p>
+  <div class="docstring"><p>This macro is a shortcut to read and add attributes to the module
+being compiled. Elixir module attributes are similar to Erlang&#39;s with
+some differences. The canonical example for attributes is annotating
+that a module implements the OTP behavior called <code>gen_server</code>:</p>
+
+<pre><code>defmodule MyServer do
+  @behavior :gen_server
+  # ... callbacks ...
+end
+</code></pre>
+
+<p>Elixir supports by default all Erlang module attributes but any developer
+can also add custom attributes:</p>
+
+<pre><code>defmodule MyServer do
+  @my_data 13
+  IO.inspect @my_data #=&gt; 13
+end
+</code></pre>
+
+<p>Differently from Erlang, such attributes are not stored in the module by
+default since it is common in Elixir to use such attributes to store
+temporary data. A developer can configure an attribute to behave closer
+to Erlang by calling <code>Module.register_attribute/2</code>.</p>
+
+<p>Finally notice that attributes can also be read inside functions:</p>
+
+<pre><code>defmodule MyServer do
+  @my_data 11
+  def first_data, do: @my_data
+  @my_data 13
+  def second_data, do: @my_data
+end
+
+MyServer.first_data #=&gt; 11
+MyServer.second_data #=&gt; 13
+</code></pre>
+
+<p>It is important to note that reading an attribute takes a snapshot of
+its current value. In other words, the value is read at compilation
+time and not at runtime. Check the module <code>Module</code> for other functions
+to manipulate module attributes.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2456" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__B__/2">
+    <strong>__B__(string, list2)</strong>
+  </p>
+  <div class="docstring"><p>Handles the sigil %B. It simples returns a binary
+without escaping characters and without interpolations.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; %B(foo)
+&quot;foo&quot;
+iex&gt; %B(f#{o}o)
+&quot;f\#{o}o&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3286" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__C__/2">
+    <strong>__C__(arg1, list2)</strong>
+  </p>
+  <div class="docstring"><p>Handles the sigil %C. It simply returns a char list
+without escaping characters and without interpolations.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; %C(foo)
+&#39;foo&#39;
+iex&gt; %C(f#{o}o)
+&#39;f\#{o}o&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3318" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__R__/2">
+    <strong>__R__(arg1, options)</strong>
+  </p>
+  <div class="docstring"><p>Handles the sigil %R. It returns a Regex pattern without escaping
+nor interpreting interpolations.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.match?(%R(f#{1,3}o), &quot;f#o&quot;)
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3376" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__W__/2">
+    <strong>__W__(arg1, modifiers)</strong>
+  </p>
+  <div class="docstring"><p>Handles the sigil %W. It returns a list of &quot;words&quot; split by whitespace
+without escaping nor interpreting interpolations.</p>
+
+<h2>Modifiers</h2>
+
+<ul>
+<li><code>b</code>: binaries (default)</li>
+<li><code>a</code>: atoms</li>
+<li><code>c</code>: char lists</li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; %W(foo #{bar} baz)
+[&quot;foo&quot;, &quot;\#{bar}&quot;, &quot;baz&quot;]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3426" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__b__/2">
+    <strong>__b__(arg1, list2)</strong>
+  </p>
+  <div class="docstring"><p>Handles the sigil %b. It returns a binary as if it was double quoted
+string, unescaping characters and replacing interpolations.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; %b(foo)
+&quot;foo&quot;
+iex&gt; %b(f#{:o}o)
+&quot;foo&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3302" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__c__/2">
+    <strong>__c__(arg1, list2)</strong>
+  </p>
+  <div class="docstring"><p>Handles the sigil %c. It returns a char list as if it was a single
+quoted string, unescaping characters and replacing interpolations.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; %c(foo)
+&#39;foo&#39;
+iex&gt; %c(f#{:o}o)
+&#39;foo&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3337" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__r__/2">
+    <strong>__r__(arg1, options)</strong>
+  </p>
+  <div class="docstring"><p>Handles the sigil %r. It returns a Regex pattern.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.match?(%r(foo), &quot;foo&quot;)
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3355" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="__w__/2">
+    <strong>__w__(arg1, modifiers)</strong>
+  </p>
+  <div class="docstring"><p>Handles the sigil %w. It returns a list of &quot;words&quot; split by whitespace.</p>
+
+<h2>Modifiers</h2>
+
+<ul>
+<li><code>b</code>: binaries (default)</li>
+<li><code>a</code>: atoms</li>
+<li><code>c</code>: char lists</li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; %w(foo #{:bar} baz)
+[&quot;foo&quot;, &quot;bar&quot;, &quot;baz&quot;]
+iex&gt; %w(--source test/enum_test.exs)
+[&quot;--source&quot;, &quot;test/enum_test.exs&quot;]
+iex&gt; %w(foo bar baz)a
+[:foo, :bar, :baz]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3401" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="access/2">
+    <strong>access(element, args)</strong>
+  </p>
+  <div class="docstring"><p>Access the given element using the qualifier according
+to the <code>Access</code> protocol. All calls in the form <code>foo[bar]</code>
+are translated to <code>access(foo, bar)</code>.</p>
+
+<p>The usage of this protocol is to access a raw value in a
+keyword list.</p>
+
+<pre><code>sample = [a: 1, b: 2, c: 3]
+sample[:b] #=&gt; 2
+</code></pre>
+
+<h2>Atoms</h2>
+
+<p>Whenever invoked on an atom, the access protocol is expanded
+at compilation time rather than on runtime. This feature is used
+by records to allow a developer to match against an specific part
+of a record:</p>
+
+<pre><code>def increment(State[counter: counter, other: 13] = state) do
+  state.counter(counter + 1)
+end
+</code></pre>
+
+<p>In the example above, we use the Access protocol to match the
+counter field in the record <code>State</code>. Considering the record
+definition is as follows:</p>
+
+<pre><code>defrecord State, counter: 0, other: nil
+</code></pre>
+
+<p>The clause above is translated to:</p>
+
+<pre><code>def increment({ State, counter, 13 } = state) do
+  state.counter(counter + 1)
+end
+</code></pre>
+
+<p>The same pattern can be used to create a new record:</p>
+
+<pre><code>def new_state(counter) do
+  State[counter: counter]
+end
+</code></pre>
+
+<p>The example above is slightly faster than <code>State.new(counter: :counter)</code>
+because the record is expanded at compilation time and not at runtime.
+If a field is not specified on creation, it will have its default value.</p>
+
+<p>Finally, as in Erlang, Elixir also allows the following syntax:</p>
+
+<pre><code>new_uri = State[_: 1]
+</code></pre>
+
+<p>In this case <strong>all</strong> fields will be set to <code>1</code>. Notice that,
+as in Erlang, in case an expression is given, it will be
+evaluated multiple times:</p>
+
+<pre><code>new_uri = State[_: IO.puts &quot;Hello&quot;]
+</code></pre>
+
+<p>In this case, <code>&quot;Hello&quot;</code> will be printed twice (one per each field).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3167" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="and/2">
+    <strong>left and right</strong>
+  </p>
+  <div class="docstring"><p>Boolean and. Arguments must be booleans.
+Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; true and false
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L134" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="apply/2">
+    <strong>apply(fun, args)</strong>
+  </p>
+  <div class="docstring"><p>Invokes the given <code>fun</code> with the array of arguments <code>args</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; apply(fn x -&gt; x * 2 end, [2])
+4
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L306" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="apply/3">
+    <strong>apply(module, fun, args)</strong>
+  </p>
+  <div class="docstring"><p>Invokes the given <code>fun</code> from <code>module</code> with the array of arguments <code>args</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; apply(Enum, :reverse, [[1,2,3]])
+[3,2,1]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L317" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="atom_to_binary/1">
+    <strong>atom_to_binary(some_atom)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary which corresponds to the text representation
+of <code>some_atom</code> in UTF8 encoding.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; atom_to_binary(:my_atom)
+&quot;my_atom&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2774" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_atom/1">
+    <strong>binary_to_atom(some_binary)</strong>
+  </p>
+  <div class="docstring"><p>Returns the atom whose text representation is
+<code>some_binary</code> in UTF8 encoding.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; binary_to_atom(&quot;my_atom&quot;)
+:my_atom
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2739" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="binary_to_existing_atom/1">
+    <strong>binary_to_existing_atom(some_binary)</strong>
+  </p>
+  <div class="docstring"><p>Works like <code>binary_to_atom</code> but the atom must exist.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; :my_atom
+...&gt; binary_to_existing_atom(&quot;my_atom&quot;)
+:my_atom
+
+iex&gt; binary_to_existing_atom(&quot;this_atom_will_never_exist&quot;)
+** (ArgumentError) argument error
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2758" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="case/2">
+    <strong>case(condition, blocks)</strong>
+  </p>
+  <div class="docstring"><p>Matches the given expression against the match clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>case thing do
+  { :selector, i, value } when is_integer(i) -&gt;
+    value
+  value -&gt; value
+end
+</code></pre>
+
+<p>In the example above, we compare <code>thing</code> with each given match
+clause and evaluate the expression corresponding to the first clause
+that matches. If no clause matches, an error is raised.</p>
+
+<p>Since Elixir variables can be assigned more than once, variables
+in a match clause will always be assigned instead of matching with
+its previous values. For example:</p>
+
+<pre><code>i = 1
+case 10 do
+  i -&gt; i * 2
+end
+</code></pre>
+
+<p>The example above will return 20, because <code>i</code> is assigned to 10
+and then multiplied by 2. If you desire to match the value of <code>i</code>
+against the given condition, you need to use the <code>^</code> operator:</p>
+
+<pre><code>i = 1
+case 10 do
+  ^i -&gt; i * 2
+end
+</code></pre>
+
+<p>The example above will actually fail because 10 does not match 1.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2259" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cond/1">
+    <strong>cond(list1)</strong>
+  </p>
+  <div class="docstring"><p>Evaluates the expression corresponding to the first clause that
+evaluates to true. Raises an error if all conditions evaluate to
+to falsy values (nil or false).</p>
+
+<h2>Examples</h2>
+
+<pre><code>cond do
+  1 + 1 == 1 -&gt;
+    &quot;This will never match&quot;
+  2 * 2 != 4 -&gt;
+    &quot;Nor this&quot;
+  true -&gt;
+    &quot;This will&quot;
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2522" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="def/2">
+    <strong>def(name, list2)</strong>
+  </p>
+  <div class="docstring"><p>Defines a function with the given name and contents.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Foo do
+  def bar, do: :baz
+end
+
+Foo.bar #=&gt; :baz
+</code></pre>
+
+<p>A function that expects arguments can be defined as follow:</p>
+
+<pre><code>defmodule Foo do
+  def sum(a, b) do
+    a + b
+  end
+end
+</code></pre>
+
+<p>In the example above, we defined a function <code>sum</code> that receives
+two arguments and sum them.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1261" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="def/4">
+    <strong>def(name, args, guards, list4)</strong>
+  </p>
+  <div class="docstring"><p>This macro allows a function to be defined more explicitly
+by accepting the name, args and guards as different entries.</p>
+
+<p>Differently from <code>def/2</code>, the macro arguments are evaluated
+and therefore requires quoting.</p>
+
+<p>The <code>name</code> must be an atom, the <code>arguments</code> a list where each
+element represents another argument and <code>guards</code> a list of
+clauses, where each clause is disjunct.</p>
+
+<h2>Examples</h2>
+
+<p>The most common mistake when using this macro is to pass the
+arguments without quoting:</p>
+
+<pre><code>def :some_function, [first_arg, second_arg], is_list(first_arg) do
+  # ...
+end
+</code></pre>
+
+<p>However, the example above will fail because it will attempt to
+evaluate <code>[first_arg, second_arg]</code> and fail because the variable
+<code>first_arg</code> is not defined. Therefore, we need to use quote:</p>
+
+<pre><code>name   = :some_function
+args   = quote(do: [first_arg, second_arg])
+guards = quote(do: is_list(first_arg))
+exprs  = quote(do: ...)
+
+def name, args, guards, do: exprs
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1295" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defdelegate/2">
+    <strong>defdelegate(funs, opts)</strong>
+  </p>
+  <div class="docstring"><p>Defines the given functions in the current module that will
+delegate to the given <code>target</code>. Functions defined with
+<code>defdelegate</code> are public and are allowed to be invoked
+from external. If you find yourself wishing to define a
+delegation as private, you should likely use import
+instead.</p>
+
+<p>Delegation only works with functions, delegating to macros
+is not supported.</p>
+
+<h2>Options</h2>
+
+<ul>
+<li><p><code>:to</code> - The expression to delegate to. Any expression
+is allowed and its results will be calculated on runtime;</p></li>
+<li><p><code>:as</code> - The function to call on the target given in <code>:to</code>.
+This parameter is optional and defaults to the name being
+delegated.</p></li>
+<li><p><code>:append_first</code> - If true, when delegated, first argument
+passed to the delegate will be relocated to the end of the
+arguments when dispatched to the target. The motivation behind
+this is a disparity between conventions used in Elixir and :
+Elixir&#39;s convention is to pass the &quot;handle&quot; as a first argument,
+while in Erlang the convention is to pass it as the last argument</p></li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule MyList do
+  defdelegate reverse(list), to: :lists
+  defdelegate [reverse(list), map(callback, list)], to: :lists
+  defdelegate other_reverse(list), to: :lists, as: :reverse
+end
+
+MyList.reverse([1,2,3])
+#=&gt; [3,2,1]
+
+MyList.other_reverse([1,2,3])
+#=&gt; [3,2,1]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L3244" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defexception/4">
+    <strong>defexception(name, fields, opts // [], do_block // [])</strong>
+  </p>
+  <div class="docstring"><p>Defines an exception.</p>
+
+<p>Exceptions are simply records and therefore <code>defexception/4</code> has
+the same API and similar behavior to <code>defrecord/4</code> with two notable
+differences:</p>
+
+<p>1) Differently from records, exceptions are documented by default;</p>
+
+<p>2) Exceptions <strong>must</strong> implement <code>message/1</code> as API that return a
+   binary as result;</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1578" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defimpl/3">
+    <strong>defimpl(name, opts, do_block // [])</strong>
+  </p>
+  <div class="docstring"><p>Defines an implementation for the given protocol. See
+<code>defprotocol/2</code> for examples.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1824" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defmacro/2">
+    <strong>defmacro(name, list2)</strong>
+  </p>
+  <div class="docstring"><p>Defines a macro with the given name and contents.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule MyLogic do
+  defmacro unless(expr, opts) do
+    quote do
+      if !unquote(expr), unquote(opts)
+    end
+  end
+end
+
+require MyLogic
+MyLogic.unless false do
+  IO.puts &quot;It works&quot;
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1342" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defmacro/4">
+    <strong>defmacro(name, args, guards, list4)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>def/4</code> but generates a macro.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1347" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defmacrop/2">
+    <strong>defmacrop(name, list2)</strong>
+  </p>
+  <div class="docstring"><p>Defines a macro that is private. Private macros
+can only be accessible from the same module it is defined.</p>
+
+<p>Check <code>defmacro/2</code> for more information</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1355" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defmacrop/4">
+    <strong>defmacrop(name, args, guards, list4)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>def/4</code> but generates a private macro.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1360" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defmodule/2">
+    <strong>defmodule(name, list2)</strong>
+  </p>
+  <div class="docstring"><p>Defines a module given by name with the given contents.</p>
+
+<p>It returns the module name, the module binary and the
+block contents result.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Foo do
+  def bar, do: :baz
+end
+
+Foo.bar #=&gt; :baz
+</code></pre>
+
+<h2>Nesting</h2>
+
+<p>Nesting a module inside the other affects its name:</p>
+
+<pre><code>defmodule Foo do
+  defmodule Bar do
+  end
+end
+</code></pre>
+
+<p>In the example above, two modules <code>Foo</code> and <code>Foo.Bar</code>. The
+second can be accessed as <code>Bar</code> inside <code>Foo</code> in the same
+lexical scope. If the module Bar is moved away to another
+file, it needs to be referenced via the full name or an
+alias need to be set with the help of <code>Kernel.SpecialForms.alias/2</code>.</p>
+
+<h2>Dynamic names</h2>
+
+<p>Elixir module names can be dynamically generated. This is very
+useful for macros. For instance, one could write:</p>
+
+<pre><code>defmodule binary_to_atom(&quot;Foo#{1}&quot;, :utf8) do
+  # contents ...
+end
+</code></pre>
+
+<p>Elixir will accept any module name as long as the expression
+returns an atom.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1236" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defoverridable/1">
+    <strong>defoverridable(tuples)</strong>
+  </p>
+  <div class="docstring"><p>Makes the given functions in the current module overridable.
+An overridable function is lazily defined, allowing a
+developer to customize it.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1835" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defp/2">
+    <strong>defp(name, list2)</strong>
+  </p>
+  <div class="docstring"><p>Defines a function that is private. Private functions
+can only be accessible from the same module it is defined.</p>
+
+<p>Check <code>def/2</code> for more information</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Foo do
+  def bar do
+    sum(1, 2)
+  end
+
+  defp sum(a, b), do: a + b
+end
+</code></pre>
+
+<p>In the example above, <code>sum</code> is private and accessing it
+through <code>Foo.sum</code> will raise an error.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1316" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defp/4">
+    <strong>defp(name, args, guards, list4)</strong>
+  </p>
+  <div class="docstring"><p>The same as <code>def/4</code> but generates a private function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1321" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defprotocol/2">
+    <strong>defprotocol(name, list2)</strong>
+  </p>
+  <div class="docstring"><p>Defines the current module as a protocol and specifies the API
+that should be implemented.</p>
+
+<h2>Examples</h2>
+
+<p>In Elixir, only <code>false</code> and <code>nil</code> are considered falsy values.
+Everything else evaluates to true in <code>if</code> clauses. Depending
+on the application, it may be important to specify a <code>blank?</code>
+protocol that returns a boolean for other data types that should
+be considered <code>blank?</code>. For instance, an empty list or an empty
+binary could be considered blanks.</p>
+
+<p>We could implement this protocol as follow:</p>
+
+<pre><code>defprotocol Blank do
+  @doc &quot;Returns true if data is considered blank/empty&quot;
+  def blank?(data)
+end
+</code></pre>
+
+<p>Now that the protocol is defined, we can implement it. We need
+to implement the protocol for each Elixir type. For example:</p>
+
+<pre><code># Numbers are never blank
+defimpl Blank, for: Number do
+  def blank?(number), do: false
+end
+
+# Just empty list is blank
+defimpl Blank, for: List do
+  def blank?([]), do: true
+  def blank?(_),  do: false
+end
+
+# Just the atoms false and nil are blank
+defimpl Blank, for: Atom do
+  def blank?(false), do: true
+  def blank?(nil),   do: true
+  def blank?(_),     do: false
+end
+</code></pre>
+
+<p>And we would have to define the implementation for all types.
+The types available are:</p>
+
+<ul>
+<li>Record</li>
+<li>Tuple</li>
+<li>Atom</li>
+<li>List</li>
+<li>BitString</li>
+<li>Number</li>
+<li>Function</li>
+<li>PID</li>
+<li>Port</li>
+<li>Reference</li>
+<li>Any</li>
+</ul>
+
+<h2>Selecting implementations</h2>
+
+<p>Implementing the protocol for all default types can be cumbersome.
+Even more, if you consider that Number, Function, PID, Port and
+Reference are never going to be blank, it would be easier if we
+could simply provide a default implementation.</p>
+
+<p>This can be achieved in Elixir as follows:</p>
+
+<pre><code>defprotocol Blank do
+  @only [Atom, Tuple, List, BitString, Any]
+  def blank?(data)
+end
+</code></pre>
+
+<p>If the protocol is invoked with a data type that is not an Atom,
+a Tuple, a List, or a BitString, Elixir will now dispatch to
+Any. That said, the default behavior could be implemented as:</p>
+
+<pre><code>defimpl Blank, for: Any do
+  def blank?(_), do: false
+end
+</code></pre>
+
+<p>Now, all data types that we have not specified will be
+automatically considered non blank.</p>
+
+<h2>Protocols + Records</h2>
+
+<p>The real benefit of protocols comes when mixed with records.
+For instance, imagine we have a module called <code>RedBlack</code> that
+provides an API to create and manipulate Red-Black trees. This
+module represents such trees via a record named <code>RedBlack.Tree</code>
+and we want this tree to be considered blank in case it has no
+items. To achieve this, the developer just needs to implement
+the protocol for <code>RedBlack.Tree</code>:</p>
+
+<pre><code>defimpl Blank, for: RedBlack.Tree do
+  def blank?(tree), do: RedBlack.empty?(tree)
+end
+</code></pre>
+
+<p>In the example above, we have implemented <code>blank?</code> for
+<code>RedBlack.Tree</code> that simply delegates to <code>RedBlack.empty?</code> passing
+the tree as argument. This implementation doesn&#39;t need to be defined
+inside the <code>RedBlack</code> tree or inside the record; it can be defined
+anywhere in the code.</p>
+
+<p>Finally, since records are simply tuples, one can add a default
+protocol implementation to any record by defining a default
+implementation for tuples.</p>
+
+<h2>Types</h2>
+
+<p>As in records, defining a protocol automatically defines a type
+named <code>t</code>, which can be used as:</p>
+
+<pre><code>@spec present?(Blank.t) :: boolean
+def present?(blank) do
+  not Blank.blank?(blank)
+end
+</code></pre>
+
+<p>The <code>@spec</code> above expresses that all types allowed to implement the
+given protocol are valid argument types for the given function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1816" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defrecord/3">
+    <strong>defrecord(name, fields, do_block // [])</strong>
+  </p>
+  <div class="docstring"><p>Defines a record.</p>
+
+<p>A record is a tagged tuple which contains one or more elements
+and the first element is a module. This macro defines a module
+that generates accessors to manipulate the record at both
+compilation and runtime.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defrecord FileInfo, atime: nil, accesses: 0
+</code></pre>
+
+<p>The line above will define a module named <code>FileInfo</code> which
+contains a function named <code>new</code> that returns a new record
+and other functions to read and set the values in the
+record:</p>
+
+<pre><code>file_info = FileInfo.new(atime: now())
+file_info.atime         #=&gt; Returns the value of atime
+file_info.atime(now())  #=&gt; Updates the value of atime
+</code></pre>
+
+<p>A record is simply a tuple where the first element is the record
+module name. We can get the record raw representation as follow:</p>
+
+<pre><code>inspect FileInfo.new, raw: true
+#=&gt; { FileInfo, nil, nil }
+</code></pre>
+
+<p>Besides defining readers and writers for each attribute, Elixir also
+defines an <code>update_#{attribute}</code> function to update the value. Such
+functions expect a function as argument that receives the current
+value and must return the new one. For example, every time the file
+is accessed, the accesses counter can be incremented with:</p>
+
+<pre><code>file_info.update_accesses(fn(old) -&gt; old + 1 end)
+</code></pre>
+
+<p>Which can be also written as:</p>
+
+<pre><code>file_info.update_accesses(&amp;1 + 1)
+</code></pre>
+
+<h2>Access syntax</h2>
+
+<p>Records in Elixir can be expanded at compilation time to provide
+pattern matching and faster operations. For example, the clause
+below will only match if a <code>FileInfo</code> is given and the number of
+accesses is zero:</p>
+
+<pre><code>def enforce_no_access(FileInfo[accesses: 0]), do: :ok
+</code></pre>
+
+<p>The clause above will expand to:</p>
+
+<pre><code>def enforce_no_access({ FileInfo, _, 0 }), do: :ok
+</code></pre>
+
+<p>The downside of using such syntax is that, every time the record
+changes, your code now needs to be recompiled (which is usually
+not a concern since Elixir build tools by default recompiles the
+whole project whenever there is a change).</p>
+
+<p>Finally, keep in mind that Elixir triggers some optimizations whenever
+the access syntax is used. For example:</p>
+
+<pre><code>def no_access?(FileInfo[] = file_info) do
+  file_info.accesses == 0
+end
+</code></pre>
+
+<p>Is translated to:</p>
+
+<pre><code>def no_access?({ FileInfo, _, _ } = file_info) do
+  elem(file_info, 1) == 0
+end
+</code></pre>
+
+<p>Which provides faster get and set times for record operations.</p>
+
+<h2>Runtime introspection</h2>
+
+<p>At runtime, developers can use <code>__record__</code> to get information
+about the given record:</p>
+
+<pre><code>FileInfo.__record__(:name)
+#=&gt; FileInfo
+
+FileInfo.__record__(:fields)
+#=&gt; [atime: nil, accesses: 0]
+</code></pre>
+
+<p>In order to quickly access the index of a field, one can use
+the <code>__index__</code> function:</p>
+
+<pre><code>FileInfo.__index__(:atime)
+#=&gt; 0
+
+FileInfo.__index__(:unknown)
+#=&gt; nil
+</code></pre>
+
+<h2>Compile-time introspection</h2>
+
+<p>At the compile time, one can access following information about the record
+from within the record module:</p>
+
+<ul>
+<li><code>@record_fields</code> — a keyword list of record fields with defaults</li>
+<li><p><code>@record_types</code> — a keyword list of record fields with types</p>
+
+<p>defrecord Foo, bar: nil do
+   record<em>type bar: nil | integer
+   IO.inspect @record</em>fields
+   IO.inspect @record_types
+ end</p></li>
+</ul>
+
+<p>prints out</p>
+
+<pre><code> [bar: nil]
+ [bar: {:|,[line: ...],[nil,{:integer,[line: ...],nil}]}]
+</code></pre>
+
+<p>where the last line is a quoted representation of</p>
+
+<pre><code> [bar: nil | integer]
+</code></pre>
+
+<h2>Documentation</h2>
+
+<p>By default records are not documented and have <code>@moduledoc</code> set to false.</p>
+
+<h2>Types</h2>
+
+<p>Every record defines a type named <code>t</code> that can be accessed in typespecs.
+For example, assuming the <code>Config</code> record defined above, it could be used
+in typespecs as follow:</p>
+
+<pre><code>@spec handle_config(Config.t) :: boolean()
+</code></pre>
+
+<p>Inside the record definition, a developer can define his own types too:</p>
+
+<pre><code>defrecord Config, counter: 0, failures: [] do
+  @type kind :: term
+  record_type counter: integer, failures: [kind]
+end
+</code></pre>
+
+<p>When defining a type, all the fields not mentioned in the type are
+assumed to have type <code>term</code>.</p>
+
+<h2>Importing records</h2>
+
+<p>It is also possible to import a public record (a record, defined using
+<code>defrecord</code>) as a set of private macros (as if it was defined using <code>defrecordp</code>):</p>
+
+<pre><code>Record.import Config, as: :config
+</code></pre>
+
+<p>See <code>Record.import/2</code> and <code>defrecordp/2</code> documentation for more information</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1509" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defrecordp/2">
+    <strong>defrecordp(name, fields)</strong>
+  </p>
+  <div class="docstring"><p>Defines a record with a set of private macros to manipulate it.</p>
+
+<p>A record is a tagged tuple which contains one or more elements
+and the first element is a module. This macro defines a set of
+macros private to the current module to manipulate the record
+exclusively at compilation time.</p>
+
+<p><code>defrecordp</code> must be used instead of <code>defrecord</code> when there is
+no interest in exposing the record as a whole. In many ways,
+it is similar to Erlang records, since it is only available at
+compilation time.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule User do
+  defrecordp :user, [name: &quot;José&quot;, age: &quot;25&quot;]
+end
+</code></pre>
+
+<p>In the example above, a set of macros named <code>user</code> but with different
+arities will be defined to manipulate the underlying record:</p>
+
+<pre><code># To create records
+user()        #=&gt; { User, &quot;José&quot;, 25 }
+user(age: 26) #=&gt; { User, &quot;José&quot;, 26 }
+
+# To get a field from the record
+user(record, :name) #=&gt; &quot;José&quot;
+
+# To get many fields from the record
+user(record, [:name, :age]) #=&gt; [&quot;José&quot;, 25]
+
+# To update the record
+user(record, age: 26) #=&gt; { User, &quot;José&quot;, 26 }
+
+# To convert the record to keywords
+user(record) #=&gt; [name: &quot;José&quot;, age: 25]
+
+# To match against the record
+user(name: name) = record
+name #=&gt; &quot;José&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1561" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete_elem/2">
+    <strong>delete_elem(tuple, index)</strong>
+  </p>
+  <div class="docstring"><p>Define delete_elem to delete element from a tuple according to
+Elixir conventions (i.e. it expects the tuple as first argument,
+zero-index based).</p>
+
+<p>Please note that in versions of Erlang prior to R16B there is no BIF
+for this operation and it is emulated by converting the tuple to a list
+and back and is, therefore, inefficient.</p>
+
+<h2>Example</h2>
+
+<pre><code>iex&gt; tuple = { :foo, :bar, :baz }
+...&gt; delete_elem(tuple, 0)
+{ :bar, :baz }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2035" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="destructure/2">
+    <strong>destructure(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Allows you to destructure two lists, assigning each term in the right to the
+matching term in the left. Unlike pattern matching via <code>=</code>, if the sizes of
+the left and right lists don&#39;t match, destructuring simply stops instead of
+raising an error.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; destructure([x,y,z], [1,2,3,4,5])
+...&gt; {x, y, z}
+{1, 2, 3}
+</code></pre>
+
+<p>Notice in the example above, even though the right
+size has more entries than the left, destructuring works
+fine. If the right size is smaller, the remaining items
+are simply assigned to nil:</p>
+
+<pre><code>iex&gt; destructure([x,y,z], [1])
+...&gt; {x, y, z}
+{1, nil, nil}
+</code></pre>
+
+<p>The left side supports any expression you would use
+on the left side of a match:</p>
+
+<pre><code>x = 1
+destructure([^x,y,z], [1,2,3])
+</code></pre>
+
+<p>The example above will only work if x matches
+the first value from the right side. Otherwise,
+it will raise a CaseClauseError.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2596" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="div/2">
+    <strong>div(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Provides an integer division macro according to Erlang semantics.
+Raises an error if one of the arguments is not an integer.
+Can be used in guard tests.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; div(5, 2)
+2
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2054" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="elem/2">
+    <strong>elem(tuple, index)</strong>
+  </p>
+  <div class="docstring"><p>Define elem to get Tuple element according to Elixir conventions
+(i.e. it expects the tuple as first argument, zero-index based).</p>
+
+<p>It is implemented as a macro so it can be used in guards.</p>
+
+<h2>Example</h2>
+
+<pre><code>iex&gt; tuple = { :foo, :bar, 3 }
+...&gt; elem(tuple, 1)
+:bar
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1974" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="function/1">
+    <strong>function(args)</strong>
+  </p>
+  <div class="docstring"><p>Construct an anonymous function based on the given expression
+or retrieve an existing one.</p>
+
+<h2>Function composition</h2>
+
+<pre><code>iex&gt; sum = function do
+...&gt;   (x, y) -&gt; x + y
+...&gt; end
+...&gt; sum.(1, 2)
+3
+</code></pre>
+
+<p>Notice that a function needs to be invoked using the dot between
+the function and the arguments.</p>
+
+<p>Multiple clauses can be specified as in <code>case</code>, <code>receive</code> and
+similar macros:</p>
+
+<pre><code>iex&gt; sum = function do
+...&gt;   x, y when y &gt; 0 -&gt; x + y
+...&gt;   x, y -&gt; x - y
+...&gt; end
+...&gt; sum.(1, 2)
+3
+</code></pre>
+
+<p>All clauses must expect the same number of arguments.</p>
+
+<h2>Function retrieval</h2>
+
+<p>The <code>function</code> macro can also be used to retrieve local, imported
+and remote functions.</p>
+
+<pre><code># Retrieve local/import
+iex&gt; f = function(is_atom/1)
+iex&gt; f.(:foo)
+true
+
+# Retrieve remote
+iex&gt; f = function(Kernel.is_atom/1)
+iex&gt; f.(:foo)
+true
+</code></pre>
+
+<p>In case a function needs to be dynamically retrieved based on its
+module, name or arity, use <code>function/3</code> instead.</p>
+
+<h2>Shortcut syntax</h2>
+
+<p>In order to reduce verbosity, functions in Elixir can be written
+using a shortcut syntax via <code>fn</code>:</p>
+
+<pre><code>Enum.map [1,2,3], fn x -&gt;
+  x * 2
+end
+</code></pre>
+
+<p>Not only is the example shorter, it solves ambiguity issues. Since
+<code>do/end</code> always matches the furthest call, if we used the <code>function</code>
+macro as below:</p>
+
+<pre><code>Enum.map [1,2,3], function do
+  x -&gt; x * 2
+end
+</code></pre>
+
+<p>It would be parsed as:</p>
+
+<pre><code>Enum.map([1,2,3], function) do
+  x -&gt; x * 2
+end
+</code></pre>
+
+<p>The stab shortcut syntax has the proper precedence:</p>
+
+<pre><code>Enum.map [1,2,3], fn
+  x -&gt; x * 2
+end
+</code></pre>
+
+<p>Which is handled as:</p>
+
+<pre><code>Enum.map([1,2,3], fn
+  x -&gt; x * 2
+end)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2210" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="function/3">
+    <strong>function(module, function, arity)</strong>
+  </p>
+  <div class="docstring"><p>Retrieves a function with given name and arity from a module.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; f = function(Kernel, :is_atom, 1)
+...&gt; f.(:foo)
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2222" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="if/2">
+    <strong>if(condition, clauses)</strong>
+  </p>
+  <div class="docstring"><p>Provides an <code>if</code> macro. This macro expects the first argument to
+be a condition and the rest are keyword arguments.</p>
+
+<h2>One-liner examples</h2>
+
+<pre><code>if(foo, do: bar)
+</code></pre>
+
+<p>In the example above, bar will be returned if foo evaluates to
+true (i.e. it is not false nor nil). Otherwise, nil will be returned.</p>
+
+<p>An else option can be given to specify the opposite:</p>
+
+<pre><code>if(foo, do: bar, else: bar)
+</code></pre>
+
+<h2>Blocks examples</h2>
+
+<p>Elixir also allows you to pass a block to the if macro. The first
+example above would be translated to:</p>
+
+<pre><code>if foo do
+  bar
+end
+</code></pre>
+
+<p>Notice that do/end becomes delimiters. The second example would
+then translate do:</p>
+
+<pre><code>if foo do
+  bar
+else
+  baz
+end
+</code></pre>
+
+<p>If you want to compare more than two clauses, you can use the <code>cond/1</code>
+macro.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2494" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="in/2">
+    <strong>left in right</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the element on the left is equal (==) to
+any of the items in the right.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; x = 1
+...&gt; x in [1,2,3]
+true
+</code></pre>
+
+<p>This macro simply translates the expression above to:</p>
+
+<pre><code>x == 1 or x == 2 or x == 3
+</code></pre>
+
+<p>with the exception that the expression on the left of <code>in</code>
+is evaluated only once.</p>
+
+<h2>Clauses</h2>
+
+<p>Whenever used inside a function or a case clause, you can
+optionally omit the variable declaration, for example:</p>
+
+<pre><code>case 3 do
+  x when x in [1,2] -&gt; x * 2
+  _ -&gt; 0
+end
+</code></pre>
+
+<p>Could be rewritten as:</p>
+
+<pre><code>case 3 do
+  x in [1,2] -&gt; x * 2
+  _ -&gt; 0
+end
+</code></pre>
+
+<p>In this case, Elixir will automatically expand it and define
+the variable for us.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2921" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="insert_elem/3">
+    <strong>insert_elem(tuple, index, value)</strong>
+  </p>
+  <div class="docstring"><p>Define insert_elem to insert element into a tuple according to
+Elixir conventions (i.e. it expects the tuple as first argument,
+zero-index based).</p>
+
+<h2>Example</h2>
+
+<pre><code>iex&gt; tuple = { :bar, :baz }
+...&gt; insert_elem(tuple, 0, :foo)
+{ :foo, :bar, :baz }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2012" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="inspect/2">
+    <strong>inspect(arg, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Inspect the given arguments according to the <code>Binary.Inspect</code> protocol.</p>
+
+<h2>Options</h2>
+
+<p>The following options are supported:</p>
+
+<ul>
+<li><p>raw   -- when true, record tuples are not formatted by the inspect protocol,
+       but are printed as just tuples; default: false</p></li>
+<li><p>limit -- limits the number of items that are printed for tuples, bitstrings,
+       and lists; does not apply to strings</p></li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; inspect(:foo)
+&quot;:foo&quot;
+
+iex&gt; inspect [1,2,3,4,5], limit: 3
+&quot;[1,2,3,...]&quot;
+
+inspect(ArgumentError[])
+#=&gt; &quot;ArgumentError[message: &quot;argument error&quot;]&quot;
+
+inspect(ArgumentError[], raw: true)
+#=&gt; &quot;{ArgumentError,:__exception__,&quot;argument error&quot;}&quot;
+</code></pre>
+
+<p>Note that the inspect protocol does not necessarily return a valid
+representation of an Elixir term. In such cases, the inspected result must
+start with <code>#</code>. For example, inspecting a function will return:</p>
+
+<pre><code>inspect &amp;1 + &amp;2
+#=&gt; #Function&lt;...&gt;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1923" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_exception/1">
+    <strong>is_exception(thing)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the given structure is an exception.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; is_exception((fn -&gt; ArithmeticError.new end).())
+true
+iex&gt; is_exception((fn -&gt; 1 end).())
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1616" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_range/1">
+    <strong>is_range(thing)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the given argument is a range.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1692" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_record/1">
+    <strong>is_record(thing)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the given argument is a record.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1664" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_record/2">
+    <strong>is_record(thing, kind)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the given structure is a record. It is basically
+a convenient macro that checks the structure is a tuple and
+the first element matches the given kind.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defrecord Config, sample: nil
+
+is_record(Config.new, Config) #=&gt; true
+is_record(Config.new, List)   #=&gt; false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1645" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="is_regex/1">
+    <strong>is_regex(thing)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the given argument is a regex.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1683" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="match?/2">
+    <strong>match?(left, right)</strong>
+  </p>
+  <div class="docstring"><p>A convenient macro that checks if the right side matches
+the left side. The left side is allowed to be a match pattern.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; match?(1, 1)
+true
+iex&gt; match?(1, 2)
+false
+iex&gt; match?({1,_}, {1,2})
+true
+</code></pre>
+
+<p>Match can also be used to filter or find a value in an enumerable:</p>
+
+<pre><code>list = [{:a,1},{:b,2},{:a,3}]
+Enum.filter list, match?({:a, _}, _)
+</code></pre>
+
+<p>Guard clauses can also be given to the match:</p>
+
+<pre><code>list = [{:a,1},{:b,2},{:a,3}]
+Enum.filter list, match?({:a, x } when x &lt; 2, &amp;1)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2113" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="nil?/1">
+    <strong>nil?(x)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the given argument is nil or not.
+Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; nil?(1)
+false
+iex&gt; nil?(nil)
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2085" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="not/1">
+    <strong>not arg</strong>
+  </p>
+  <div class="docstring"><p>Boolean not. Argument must be a boolean.
+Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; not false
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L161" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="or/2">
+    <strong>left or right</strong>
+  </p>
+  <div class="docstring"><p>Boolean or. Arguments must be booleans.
+Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; true or false
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L122" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="receive/1">
+    <strong>receive(args)</strong>
+  </p>
+  <div class="docstring"><p>The current process will hang until it receives a message
+from other processes that matches the given clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>receive do
+  { :selector, i, value } when is_integer(i) -&gt;
+    value
+  value when is_atom(value) -&gt;
+    value
+  _ -&gt;
+    IO.puts :stderr, &quot;Unexpected message received&quot;
+end
+</code></pre>
+
+<p>The match clauses above follows the same rules as <code>case/2</code>.</p>
+
+<p>An optional after clause can be given in case the message was not
+received after the specified period of time:</p>
+
+<pre><code>receive do
+  { :selector, i, value } when is_integer(i) -&gt;
+    value
+  value when is_atom(value) -&gt;
+    value
+  _ -&gt;
+    IO.puts :stderr, &quot;Unexpected message received&quot;
+after
+  5000 -&gt;
+    IO.puts :stderr, &quot;No message in 5 seconds&quot;
+end
+</code></pre>
+
+<p>The <code>after</code> clause can be specified even if there are no match clauses.
+There are two special cases for the timout value given to after</p>
+
+<ul>
+<li><p><code>:infinity</code> - The process should wait indefinitely for a matching
+message, this is the same as not using a timeout.</p></li>
+<li><p>0 - if there is no matching message in the mailbox, the timeout
+will occur immediately.</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2413" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rem/2">
+    <strong>rem(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Provides an integer remainder macro according to Erlang semantics.
+Raises an error if one of the arguments is not an integer.
+Can be used in guard tests.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; rem(5, 2)
+1
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2069" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="set_elem/3">
+    <strong>set_elem(tuple, index, value)</strong>
+  </p>
+  <div class="docstring"><p>Define set_elem to set Tuple element according to Elixir conventions
+(i.e. it expects the tuple as first argument, zero-index based).</p>
+
+<h2>Example</h2>
+
+<pre><code>iex&gt; tuple = { :foo, :bar, 3 }
+...&gt; set_elem(tuple, 0, :baz)
+{ :baz, :bar, 3 }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1993" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_binary/1">
+    <strong>to_binary(arg)</strong>
+  </p>
+  <div class="docstring"><p>Convert the argument to a string according to the Binary.Chars protocol.
+This is the function invoked when there is string interpolation.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; to_binary(:foo)
+&quot;foo&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1944" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_char_list/1">
+    <strong>to_char_list(arg)</strong>
+  </p>
+  <div class="docstring"><p>Convert the argument to a list according to the List.Chars protocol.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; to_char_list(:foo)
+&#39;foo&#39;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1957" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="try/1">
+    <strong>try(args)</strong>
+  </p>
+  <div class="docstring"><p>Evaluate the given expressions and catch any error, exit
+or throw that may have happened.</p>
+
+<h2>Examples</h2>
+
+<pre><code>try do
+  do_something_that_may_fail(some_arg)
+rescue
+  ArgumentError -&gt;
+    IO.puts &quot;Invalid argument given&quot;
+catch
+  value -&gt;
+    IO.puts &quot;caught #{value}&quot;
+after
+  IO.puts &quot;This is printed regardless if it failed or succeed&quot;
+end
+</code></pre>
+
+<p>The rescue clause is used to handle exceptions, while the catch
+clause can be used to catch thrown values. Both catch and rescue
+clauses work based on pattern matching.</p>
+
+<p>Note that calls inside <code>try</code> are not tail recursive since the VM
+needs to keep the stacktrace in case an exception happens.</p>
+
+<h2>Rescue clauses</h2>
+
+<p>Besides relying on pattern matching, rescue clauses provides some
+conveniences around exceptions that allows one to rescue an
+exception by its name. All the following formats are valid rescue
+expressions:</p>
+
+<pre><code>try do
+  UndefinedModule.undefined_function
+rescue
+  UndefinedFunctionError -&gt; nil
+end
+
+try do
+  UndefinedModule.undefined_function
+rescue
+  [UndefinedFunctionError] -&gt; nil
+end
+
+# rescue and assign to x
+try do
+  UndefinedModule.undefined_function
+rescue
+  x in [UndefinedFunctionError] -&gt; nil
+end
+
+# rescue all and assign to x
+try do
+  UndefinedModule.undefined_function
+rescue
+  x -&gt; nil
+end
+</code></pre>
+
+<h2>Catching exits and Erlang errors</h2>
+
+<p>The catch clause works exactly the same as in erlang. Therefore,
+one can also handle exits/errors coming from Erlang as below:</p>
+
+<pre><code>try do
+  exit(1)
+catch
+  :exit, 1 -&gt; IO.puts &quot;Exited with 1&quot;
+end
+
+try do
+  error(:sample)
+catch
+  :error, :sample -&gt;
+    IO.puts &quot;sample error&quot;
+end
+</code></pre>
+
+<p>Although the second form should be avoided in favor of raise/rescue
+control mechanisms.</p>
+
+<h2>Variable visibility</h2>
+
+<p>Since an expression inside <code>try</code> may not have been evaluated
+due to an exception, any variable created inside <code>try</code> cannot
+be accessed externaly. For instance:</p>
+
+<pre><code>try do
+  x = 1
+  do_something_that_may_fail(same_arg)
+  :ok
+catch
+  _, _ -&gt; :failed
+end
+
+x #=&gt; Cannot access `x`
+</code></pre>
+
+<p>In the example above, <code>x</code> cannot be accessed since it was defined
+inside the <code>try</code> clause. A common practice to address this issue
+is to return the variables defined inside <code>try</code>:</p>
+
+<pre><code>x =
+  try do
+    x = 1
+    do_something_that_may_fail(same_arg)
+    x
+  catch
+    _, _ -&gt; :failed
+  end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2370" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unless/2">
+    <strong>unless(clause, options)</strong>
+  </p>
+  <div class="docstring"><p>Evaluates and returns the do-block passed in as a second argument
+unless clause evaluates to true.
+Returns nil otherwise.
+See also <code>if</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; unless(1, do: &quot;Hello&quot;)
+nil
+iex&gt; unless(false, do: &quot;Hello&quot;)
+&quot;Hello&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2557" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="use/2">
+    <strong>use(module, args // [])</strong>
+  </p>
+  <div class="docstring"><p><code>use</code> is a simple mechanism for using a given module into
+the current context.</p>
+
+<h2>Examples</h2>
+
+<p>For example, in order to write tests using the ExUnit framework,
+a developer should use the <code>ExUnit.Case</code> module:</p>
+
+<pre><code>defmodule AssertionTest do
+  use ExUnit.Case, async: true
+
+  def test_always_pass do
+    true = true
+  end
+end
+</code></pre>
+
+<p>By calling <code>use</code>, a hook called <code>__using__</code> will be invoked in
+<code>ExUnit.Case</code> which will then do the proper setup.</p>
+
+<p>Simply put, <code>use</code> is simply a translation to:</p>
+
+<pre><code>defmodule AssertionTest do
+  require ExUnit.Case
+  ExUnit.Case.__using__([sync: true])
+
+  def test_always_pass do
+    true = true
+  end
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L1873" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="xor/2">
+    <strong>left xor right</strong>
+  </p>
+  <div class="docstring"><p>Boolean exclusive-or. Arguments must be booleans. Returns true if and only if
+both arguments are different.
+Allowed in guard clauses.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; true xor false
+true
+iex&gt; true xor true
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L149" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="|&gt;/2">
+    <strong>left |&gt; right</strong>
+  </p>
+  <div class="docstring"><p><code>|&gt;</code> is called the pipeline operator as it is useful
+to write pipeline style expressions. This operator
+tntroduces the expression on the left as the first
+argument to the expression on the right.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; [1,[2],3] |&gt; List.flatten |&gt; Enum.map(&amp;1 * 2)
+[2,4,6]
+</code></pre>
+
+<p>The expression above is simply translated to:</p>
+
+<pre><code>Enum.map(List.flatten([1,[2],3]), &amp;1 * 2)
+</code></pre>
+
+<p>Please be aware of operator precendence, when using
+this operator. For example, the following expression:</p>
+
+<pre><code>String.graphemes &quot;Hello&quot; |&gt; Enum.reverse
+</code></pre>
+
+<p>Is translated to:</p>
+
+<pre><code>String.graphemes(&quot;Hello&quot; |&gt; Enum.reverse)
+</code></pre>
+
+<p>Which will result in an error as Enumerable protocol
+is not defined for binaries. Adding explicit parenthesis
+is recommended:</p>
+
+<pre><code>String.graphemes(&quot;Hello&quot;) |&gt; Enum.reverse
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2973" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="||/2">
+    <strong>left || right</strong>
+  </p>
+  <div class="docstring"><p>Provides a short-circuit operator that evaluates and returns the second
+expression only if the first one does not evaluate to true (i.e. it
+is either nil or false). Returns the first expression otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; false || false
+false
+iex&gt; nil || true
+true
+iex&gt; false || 1
+1
+iex&gt; true || throw(:bad)
+true
+</code></pre>
+
+<p>Notice that, differently from Erlang <code>or</code> operator,
+this operator accepts any expression as arguments,
+not only booleans, however it is not allowed in guards.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/kernel.ex#L2873" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/KeyError.html b/docs/stable/KeyError.html
new file mode 100644
index 000000000..539551ce3
--- /dev/null
+++ b/docs/stable/KeyError.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>KeyError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        KeyError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L82" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>key:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L83" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Keyword.html b/docs/stable/Keyword.html
new file mode 100644
index 000000000..e62dc7929
--- /dev/null
+++ b/docs/stable/Keyword.html
@@ -0,0 +1,526 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Keyword</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Keyword
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A keyword is a list of tuples where the first element
+of the tuple is an atom and the second element can be
+any value.</p>
+
+<p>A keyword may have duplicated keys, so it is not strictly
+a dictionary. However most of the functions in this module
+allows it to behave exactly as a dictionary. For example,
+<code>Keyword.get</code> will get the first entry matching the given
+key, regardless if duplicated entries exist. Similarly,
+<code>Keyword.put</code> and <code>Keyword.delete</code> ensure all duplicated
+entries for a given key are removed when invoked.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#delete/2">delete/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete_first/2">delete_first/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#equal?/2">equal?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch/2">fetch/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch!/2">fetch!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#from_enum/1">from_enum/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/3">get/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_values/2">get_values/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#has_key?/2">has_key?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keys/1">keys/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keyword?/1">keyword?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#merge/2">merge/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#merge/3">merge/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/0">new/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/1">new/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/2">new/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put/3">put/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_new/3">put_new/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/3">update/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/4">update/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#values/1">values/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="delete/2">
+    <strong>delete(keywords, key)</strong>
+  </p>
+  <div class="docstring"><p>Deletes all entries in the keyword list for a specific key.
+If the key does not exist, returns the keyword list unchanged.
+Use <code>delete_first</code> to delete just the first entry in case of
+duplicated keys.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.delete([a: 1, b: 2], :a)
+[b: 2]
+iex&gt; Keyword.delete([b: 2], :a)
+[b: 2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L217" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete_first/2">
+    <strong>delete_first(keywords, key)</strong>
+  </p>
+  <div class="docstring"><p>Deletes the first entry in the keyword list for a specific key.
+If the key does not exist, returns the keyword list unchanged.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.delete_first([a: 1, b: 2, a: 3], :a)
+[b: 2, a: 3]
+iex&gt; Keyword.delete_first([b: 2], :a)
+[b: 2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L234" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="equal?/2">
+    <strong>equal?(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Checks if two keywords are equal. I.e. they contain
+the same keys and those keys contain the same values.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.equal?([a: 1, b: 2], [b: 2, a: 1])
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L284" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch/2">
+    <strong>fetch(keywords, key)</strong>
+  </p>
+  <div class="docstring"><p>Fetchs the value for specific key and return it in a tuple.
+If the key does not exist, returns <code>:error</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.fetch([a: 1], :a)
+{ :ok, 1 }
+
+iex&gt; Keyword.fetch([a: 1], :b)
+:error
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L131" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch!/2">
+    <strong>fetch!(keywords, key)</strong>
+  </p>
+  <div class="docstring"><p>Fetches the value for specific key. If key does not exist,
+an error is raised.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.fetch!([a: 1], :a)
+1
+
+iex&gt; Keyword.fetch!([a: 1], :b)
+** (KeyError) key not found: :b
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L152" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="from_enum/1">
+    <strong>from_enum(enum)</strong>
+  </p>
+  <div class="docstring"><p>Creates a Keyword from enum. Differently from <code>Keyword.new</code>
+which behaves as a dict, <code>Keyword.from_enum</code> do not remove
+duplicated entries.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L26" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/3">
+    <strong>get(keywords, key, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Gets the value for specific key.</p>
+
+<p>If key not exist return default value (nil if no default value)
+exists.</p>
+
+<p>If duplicated entries exist, the first one is returned.
+Use get_values/2 to retrieve all entries.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.get([a: 1], :a)
+1
+iex&gt; Keyword.get([a: 1], :b)
+nil
+iex&gt; Keyword.get([a: 1], :b, 3)
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L110" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_values/2">
+    <strong>get_values(keywords, key)</strong>
+  </p>
+  <div class="docstring"><p>Gets all values for a specific key.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.get_values([a: 1, a: 2], :a)
+[1,2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L169" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="has_key?/2">
+    <strong>has_key?(keywords, key)</strong>
+  </p>
+  <div class="docstring"><p>Returns whether a given key exists in the given keywords.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.has_key?([a: 1], :a)
+true
+iex&gt; Keyword.has_key?([a: 1], :b)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L340" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keys/1">
+    <strong>keys(keywords)</strong>
+  </p>
+  <div class="docstring"><p>Returns all keys from the keyword list. Duplicated
+keys appear duplicated in the final list of keys.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.keys([a: 1, b: 2])
+[:a,:b]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L184" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keyword?/1">
+    <strong>keyword?(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the given argument is a keywords list or not</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L38" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="merge/2">
+    <strong>merge(d1, d2)</strong>
+  </p>
+  <div class="docstring"><p>Merges two keyword lists into one. If they have duplicated
+entries, the one given as second argument wins.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.merge([a: 1, b: 2], [a: 3, d: 4]) |&gt; Enum.sort
+[a: 3, b: 2, d: 4]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L299" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="merge/3">
+    <strong>merge(d1, d2, fun)</strong>
+  </p>
+  <div class="docstring"><p>Merges two keyword lists into one. If they have duplicated
+entries, the given function is invoked to solve conflicts.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.merge([a: 1, b: 2], [a: 3, d: 4], fn (_k, v1, v2) -&gt;
+...&gt;  v1 + v2
+iex&gt; end)
+[a: 4, b: 2, d: 4]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L316" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/0">
+    <strong>new()</strong>
+  </p>
+  <div class="docstring"><p>Returns an empty keyword list, i.e. an empty list.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/1">
+    <strong>new(pairs)</strong>
+  </p>
+  <div class="docstring"><p>Creates a Keyword from an enumerable. Similarly to dicts,
+duplicated entries are removed, the latest one prevails.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.new([{:b,1},{:a,2}])
+[a: 2, b: 1]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L64" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/2">
+    <strong>new(pairs, transform)</strong>
+  </p>
+  <div class="docstring"><p>Creates a Keyword from an enumerable with the
+help of the transformation function. Duplicated
+entries are removed, the latest one prevails.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.new([:a, :b], fn (x) -&gt; {x,x} end) |&gt; Enum.sort
+[a: :a, b: :b]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L82" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put/3">
+    <strong>put(keywords, key, value)</strong>
+  </p>
+  <div class="docstring"><p>Puts the given <code>value</code> under <code>key</code>.</p>
+
+<p>If a previous value is already stored, all entries are
+removed and the value is overriden.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.put([a: 1, b: 2], :a, 3)
+[a: 3, b: 2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L251" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_new/3">
+    <strong>put_new(keywords, key, value)</strong>
+  </p>
+  <div class="docstring"><p>Puts the given <code>value</code> under <code>key</code> unless the entry <code>key</code>
+already exists.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.put_new([a: 1, b: 2], :a, 3)
+[a: 1, b: 2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L266" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/3">
+    <strong>update(list1, key, fun)</strong>
+  </p>
+  <div class="docstring"><p>Updates the key with the given function. If the key does
+not exist, raises <code>KeyError</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.update([a: 1], :a, &amp;1 * 2)
+[a: 2]
+
+iex&gt; Keyword.update([a: 1], :b, &amp;1 * 2)
+** (KeyError) key not found: :b
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L358" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/4">
+    <strong>update(list1, key, initial, fun)</strong>
+  </p>
+  <div class="docstring"><p>Updates the key with the given function. If the key does
+not exist, inserts the given <code>initial</code> value.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.update([a: 1], :a, 13, &amp;1 * 2)
+[a: 2]
+iex&gt; Keyword.update([a: 1], :b, 11, &amp;1 * 2)
+[a: 1, b: 11]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L383" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="values/1">
+    <strong>values(keywords)</strong>
+  </p>
+  <div class="docstring"><p>Returns all values.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Keyword.values([a: 1, b: 2])
+[1,2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/keyword.ex#L198" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/List.Chars.Atom.html b/docs/stable/List.Chars.Atom.html
new file mode 100644
index 000000000..cd219675f
--- /dev/null
+++ b/docs/stable/List.Chars.Atom.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>List.Chars.Atom</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        List.Chars.Atom
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L17" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_char_list/1">to_char_list/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_char_list/1">
+    <strong>to_char_list(atom)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L18" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/List.Chars.BitString.html b/docs/stable/List.Chars.BitString.html
new file mode 100644
index 000000000..1ba8adbdb
--- /dev/null
+++ b/docs/stable/List.Chars.BitString.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>List.Chars.BitString</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        List.Chars.BitString
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L21" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_char_list/1">to_char_list/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_char_list/1">
+    <strong>to_char_list(bitstring)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/List.Chars.List.html b/docs/stable/List.Chars.List.html
new file mode 100644
index 000000000..47e369349
--- /dev/null
+++ b/docs/stable/List.Chars.List.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>List.Chars.List</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        List.Chars.List
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L25" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_char_list/1">to_char_list/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_char_list/1">
+    <strong>to_char_list(list)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L26" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/List.Chars.Number.html b/docs/stable/List.Chars.Number.html
new file mode 100644
index 000000000..6e14e88b6
--- /dev/null
+++ b/docs/stable/List.Chars.Number.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>List.Chars.Number</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        List.Chars.Number
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L29" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_char_list/1">to_char_list/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_char_list/1">
+    <strong>to_char_list(thing)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L33" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/List.Chars.html b/docs/stable/List.Chars.html
new file mode 100644
index 000000000..98ce7e86d
--- /dev/null
+++ b/docs/stable/List.Chars.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>List.Chars</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        List.Chars
+        
+          <small>protocol</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>The List.Chars protocol is responsible for
+converting a structure to a list (only if applicable).
+The only function required to be implemented is
+<code>to_char_list</code> which does the conversion.</p>
+
+<p>The <code>to_char_list</code> function automatically imported
+by Kernel invokes this protocol.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+        <h2 id="implementations">Implementations</h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <a href="List.Chars.Atom.html">Atom</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="List.Chars.BitString.html">BitString</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="List.Chars.List.html">List</a>
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <a href="List.Chars.Number.html">Number</a>
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#to_char_list/1">to_char_list/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="to_char_list/1">
+    <strong>to_char_list(thing)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list/chars.ex#L14" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/List.html b/docs/stable/List.html
new file mode 100644
index 000000000..bad89037d
--- /dev/null
+++ b/docs/stable/List.html
@@ -0,0 +1,491 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>List</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        List
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Implements functions that only make sense for lists
+and cannot be part of the Enum protocol. In general,
+favor using the Enum API instead of List.</p>
+
+<p>A decision was taken to delegate most functions to
+Erlang&#39;s standard lib but following Elixir&#39;s convention
+of receiving the target (in this case, a list) as the
+first argument.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#concat/1">concat/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#concat/2">concat/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete/2">delete/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#duplicate/2">duplicate/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#flatten/1">flatten/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#flatten/2">flatten/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#foldl/3">foldl/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#foldr/3">foldr/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#insert_at/3">insert_at/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keydelete/3">keydelete/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keyfind/4">keyfind/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keymember?/3">keymember?/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keyreplace/4">keyreplace/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keystore/4">keystore/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#last/1">last/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unzip/1">unzip/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#wrap/1">wrap/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#zip/1">zip/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="concat/1">
+    <strong>concat(list)</strong>
+  </p>
+  <div class="docstring"><p>Given a list of lists, concatenates the sublists into a single list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.concat([[1,[2],3], [4], [5,6]])
+[1,[2],3,4,5,6]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="concat/2">
+    <strong>concat(list, elements)</strong>
+  </p>
+  <div class="docstring"><p>Concatenates the list on the right with the list on the left.</p>
+
+<p>This function produces the same result the <code>++</code> operator. The only difference
+is a minor optimization: when the first list contains only one element, we
+simply add it as a head to the second list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.concat([1,2,3], [4,5,6])
+[1,2,3,4,5,6]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete/2">
+    <strong>delete(list, item)</strong>
+  </p>
+  <div class="docstring"><p>Deletes the given item from the list. Returns a list without the item.
+If the item occurs more than once in the list, just the first occurrence
+is removed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.delete([1,2,3], 1)
+[2,3]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L54" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="duplicate/2">
+    <strong>duplicate(elem, n)</strong>
+  </p>
+  <div class="docstring"><p>Duplicates the given element n times in a list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.duplicate(&quot;hello&quot;, 3)
+[&quot;hello&quot;,&quot;hello&quot;,&quot;hello&quot;]
+
+iex&gt; List.duplicate([1,2], 2)
+[[1,2],[1,2]]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L69" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="flatten/1">
+    <strong>flatten(list)</strong>
+  </p>
+  <div class="docstring"><p>Flattens the given <code>list</code> of nested lists. An optional
+tail can be given that will be added at the end of
+the flattened list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.flatten([1,[[2],3]])
+[1,2,3]
+
+iex&gt; List.flatten([1,[[2],3]], [4,5])
+[1,2,3,4,5]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L87" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="flatten/2">
+    <strong>flatten(list, tail)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L91" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="foldl/3">
+    <strong>foldl(list, acc, function)</strong>
+  </p>
+  <div class="docstring"><p>Folds (reduces) the given list to the left with
+a function. Requires an accumulator.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.foldl([5,5], 10, fn (x, acc) -&gt; x + acc end)
+20
+
+iex&gt; List.foldl([1,2,3,4], 0, fn (x, acc) -&gt; x - acc end)
+2
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L108" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="foldr/3">
+    <strong>foldr(list, acc, function)</strong>
+  </p>
+  <div class="docstring"><p>Folds (reduces) the given list to the right with
+a function. Requires an accumulator.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.foldr([1,2,3,4], 0, fn (x, acc) -&gt; x - acc end)
+-2
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L122" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="insert_at/3">
+    <strong>insert_at(list, index, value)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list with an inserted value at specified index. Note that the index
+is capped at the list length and that negative indicies wraps around at the
+end of the list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.insert_at([1, 2, 3, 4], 2, 0)
+[1, 2, 0, 3, 4]
+
+iex&gt; List.insert_at([1, 2, 3], 10, 0)
+[1, 2, 3, 0]
+
+iex&gt; List.insert_at([1, 2, 3], -1, 0)
+[1, 2, 0, 3]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L311" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keydelete/3">
+    <strong>keydelete(list, key, position)</strong>
+  </p>
+  <div class="docstring"><p>Receives a list of tuples and deletes the first tuple
+where the item at position <code>posistion</code> matches with the
+given <code>item</code>. Returns the new tuple.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.keydelete([a: 1, b: 2], :a, 0)
+[{ :b, 2 }]
+
+iex&gt; List.keydelete([a: 1, b: 2], 2, 1)
+[{ :a, 1 }]
+
+iex&gt; List.keydelete([a: 1, b: 2], :c, 0)
+[{ :a, 1 }, { :b, 2 }]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L233" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keyfind/4">
+    <strong>keyfind(list, key, position, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Receives a list of tuples and returns the first tuple
+where the item at position <code>position</code> matches with the
+given <code>item</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.keyfind([a: 1, b: 2], :a, 0)
+{ :a, 1 }
+
+iex&gt; List.keyfind([a: 1, b: 2], 2, 1)
+{ :b, 2 }
+
+iex&gt; List.keyfind([a: 1, b: 2], :c, 0)
+nil
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L162" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keymember?/3">
+    <strong>keymember?(list, key, position)</strong>
+  </p>
+  <div class="docstring"><p>Receives a list of tuples and returns true if there is
+a tuple where the item at position <code>posistion</code> matches
+with the given <code>item</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.keymember?([a: 1, b: 2], :a, 0)
+true
+
+iex&gt; List.keymember?([a: 1, b: 2], 2, 1)
+true
+
+iex&gt; List.keymember?([a: 1, b: 2], :c, 0)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L183" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keyreplace/4">
+    <strong>keyreplace(list, key, position, new_tuple)</strong>
+  </p>
+  <div class="docstring"><p>Receives a list of tuples and replaces the item
+identified by <code>key</code> at position <code>pos</code> if it exists.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.keyreplace([a: 1, b: 2], :a, 0, { :a, 3 })
+[a: 3, b: 2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L197" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keystore/4">
+    <strong>keystore(list, key, position, new_tuple)</strong>
+  </p>
+  <div class="docstring"><p>Receives a list of tuples and replaces the item
+identified by <code>key</code> at position <code>pos</code>. If the item
+does not exist, it is added to the end of the list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.keystore([a: 1, b: 2], :a, 0, { :a, 3 })
+[a: 3, b: 2]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L212" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="last/1">
+    <strong>last(list)</strong>
+  </p>
+  <div class="docstring"><p>Returns the last element in <code>list</code> or nil if the <code>list</code> is empty.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.last([])
+nil
+iex&gt; List.last([1])
+1
+iex&gt; List.last([1, 2, 3])
+3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L139" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unzip/1">
+    <strong>unzip(list)</strong>
+  </p>
+  <div class="docstring"><p>Unzips the given list of lists or tuples into separate lists and returns a
+list of lists.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.unzip([{1, 2}, {3, 4}])
+[[1, 3], [2, 4]]
+
+iex&gt; List.unzip([{1, :a, &quot;apple&quot;}, {2, :b, &quot;banana&quot;}, {3, :c}])
+[[1, 2, 3], [:a, :b, :c]]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L290" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="wrap/1">
+    <strong>wrap(list)</strong>
+  </p>
+  <div class="docstring"><p>Wraps the argument in a list.
+If the argument is already a list, returns the list.
+If the argument is nil, returns an empty list.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.wrap([1,2,3])
+[1,2,3]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L248" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="zip/1">
+    <strong>zip(list_of_lists)</strong>
+  </p>
+  <div class="docstring"><p>Zips corresponding elements from each list in <code>list_of_lists</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; List.zip([[1, 2], [3, 4], [5, 6]])
+[{1, 3, 5}, {2, 4, 6}]
+
+iex&gt; List.zip([[1, 2], [3], [5, 6]])
+[{1, 3, 5}]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list.ex#L272" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/ListDict.html b/docs/stable/ListDict.html
new file mode 100644
index 000000000..7ce779a92
--- /dev/null
+++ b/docs/stable/ListDict.html
@@ -0,0 +1,401 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>ListDict</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        ListDict
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A Dict implementation that works on lists of two-items tuples.</p>
+
+<p>For more information about the functions and their APIs, please
+consult the <code>Dict</code> module.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#delete/2">delete/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#drop/2">drop/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#empty/1">empty/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#equal?/2">equal?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch/2">fetch/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#fetch!/2">fetch!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/3">get/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#has_key?/2">has_key?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#keys/1">keys/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#merge/3">merge/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/0">new/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/1">new/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#new/2">new/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#pop/3">pop/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put/3">put/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_new/3">put_new/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#size/1">size/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/2">split/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#take/2">take/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_list/1">to_list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/3">update/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/4">update/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#values/1">values/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="delete/2">
+    <strong>delete(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Deletes the entry under the given key from the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L119" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="drop/2">
+    <strong>drop(dict, keys)</strong>
+  </p>
+  <div class="docstring"><p>Returns a new dict with only the entries
+which key is not in keys</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L163" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="empty/1">
+    <strong>empty(_dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns an empty <code>ListDict</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L201" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="equal?/2">
+    <strong>equal?(dict, other)</strong>
+  </p>
+  <div class="docstring"><p>Check if the ListDict is equal to another ListDict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L206" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch/2">
+    <strong>fetch(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value under key from the given
+dict in a tagged tuple, otherwise <code>:error</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L72" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="fetch!/2">
+    <strong>fetch!(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value under the given key
+raises <code>KeyError</code> if the key does not exist.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L83" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/3">
+    <strong>get(dict, key, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value under key from the given
+dict or default if no key is set.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L61" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="has_key?/2">
+    <strong>has_key?(dict, key)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the dict has the given key.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="keys/1">
+    <strong>keys(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns all keys in the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L32" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="merge/3">
+    <strong>merge(dict, enum, callback // fn _k, _v1, v2 -&gt; v2 end)</strong>
+  </p>
+  <div class="docstring"><p>Merges the given Enumerable into the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L126" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/0">
+    <strong>new()</strong>
+  </p>
+  <div class="docstring"><p>Returns a new <code>ListDict</code>, i.e. an empty list.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L12" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/1">
+    <strong>new(pairs)</strong>
+  </p>
+  <div class="docstring"><p>Creates a new <code>ListDict</code> from the given pairs.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="new/2">
+    <strong>new(list, transform)</strong>
+  </p>
+  <div class="docstring"><p>Creates a new <code>ListDict</code> from the given pairs
+via the given transformation function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L25" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="pop/3">
+    <strong>pop(dict, key, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value under the given key
+from the dict as well as the dict without that key.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L94" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put/3">
+    <strong>put(dict, key, val)</strong>
+  </p>
+  <div class="docstring"><p>Puts the given key-value pair in the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L101" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_new/3">
+    <strong>put_new(dict, key, val)</strong>
+  </p>
+  <div class="docstring"><p>Puts the given key-value pair in the dict
+if no entry exists yet.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L109" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="size/1">
+    <strong>size(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns the dict size.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L46" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/2">
+    <strong>split(dict, keys)</strong>
+  </p>
+  <div class="docstring"><p>Splits a dict into two dicts,
+one containing entries with key in the keys list,
+and another containing entries with key not in keys.
+Returns a 2-tuple of the new dicts.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L140" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="take/2">
+    <strong>take(dict, keys)</strong>
+  </p>
+  <div class="docstring"><p>Returns a new dict with only the entries
+which key is in keys</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L155" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_list/1">
+    <strong>to_list(dict)</strong>
+  </p>
+  <div class="docstring"><p>Converts the dict to a list.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L213" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/3">
+    <strong>update(list1, key, fun)</strong>
+  </p>
+  <div class="docstring"><p>Updates the key in the dict according to the given function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L170" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/4">
+    <strong>update(list1, key, initial, fun)</strong>
+  </p>
+  <div class="docstring"><p>Updates the key in the dict according to the given function
+or uses the given initial value if no entry exists.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L186" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="values/1">
+    <strong>values(dict)</strong>
+  </p>
+  <div class="docstring"><p>Returns all values in the dict.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/list_dict.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Macro.Env.html b/docs/stable/Macro.Env.html
new file mode 100644
index 000000000..274b0ab06
--- /dev/null
+++ b/docs/stable/Macro.Env.html
@@ -0,0 +1,218 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Macro.Env</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Macro.Env
+        
+          <small>record</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A record that holds compile time environment information.</p>
+
+<p>The current environment can be accessed at any time as
+<code>__ENV__</code>. Inside macros, the caller environment can be
+accessed as <code>__CALLER__</code>. It contains the following fields:</p>
+
+<ul>
+<li><code>module</code> - the current module name.</li>
+<li><code>file</code> - the current file name as a binary</li>
+<li><code>line</code> - the current line as an integer</li>
+<li><code>function</code> - a tuple as <code>{ atom, integer</code> }, where the first
+element is the function name and the seconds its arity. Returns
+<code>nil</code> if not inside a function</li>
+<li><code>aliases</code> -  a list of two item tuples, where the first
+item is the aliased name and the second the actual name</li>
+<li><code>context</code> - the context of the environment. It can be nil
+(default context), inside a guard or inside an assign</li>
+<li><code>requires</code> - the list of required modules</li>
+<li><code>functions</code> - a list of functions imported from each module</li>
+<li><code>macros</code> - a list of macros imported from each module</li>
+<li><code>context_modules</code> - a list of modules defined in the current context</li>
+<li><code>macro_aliases</code> - a list of aliases defined inside the current macro</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro/env.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>module:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>file:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>line:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>function:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>aliases:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>context:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>requires:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>functions:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>macros:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>context_modules:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>macro_aliases:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#in_guard?/1">in_guard?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#in_match?/1">in_match?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#location/1">location/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#stacktrace/1">stacktrace/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="in_guard?/1">
+    <strong>in_guard?(record)</strong>
+  </p>
+  <div class="docstring"><p>Returns wether the compilation environment is currently
+inside a guard.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro/env.ex#L59" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="in_match?/1">
+    <strong>in_match?(record)</strong>
+  </p>
+  <div class="docstring"><p>Returns wether the compilation environment is currently
+inside a match clause.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro/env.ex#L65" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="location/1">
+    <strong>location(record)</strong>
+  </p>
+  <div class="docstring"><p>Returns a keyword list containing the file and line
+information as keys.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro/env.ex#L51" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="stacktrace/1">
+    <strong>stacktrace(record)</strong>
+  </p>
+  <div class="docstring"><p>Returns the environment stacktrace.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro/env.ex#L70" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Macro.html b/docs/stable/Macro.html
new file mode 100644
index 000000000..f2e5a88c1
--- /dev/null
+++ b/docs/stable/Macro.html
@@ -0,0 +1,424 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Macro</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Macro
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module provides conveniences for working with macros.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L3" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#escape/1">escape/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#expand/2">expand/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#extract_args/1">extract_args/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#safe_term/1">safe_term/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_binary/1">to_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unescape_binary/1">unescape_binary/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unescape_binary/2">unescape_binary/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unescape_tokens/1">unescape_tokens/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unescape_tokens/2">unescape_tokens/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#binary_ops/0">binary_ops/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unary_ops/0">unary_ops/0</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="escape/1">
+    <strong>escape(expr)</strong>
+  </p>
+  <div class="docstring"><p>Recursively escapes a value so it can be inserted
+into a syntax tree.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Macro.escape(:foo)
+:foo
+
+iex&gt; Macro.escape({ :a, :b, :c })
+{ :{}, [], [:a, :b, :c] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L66" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="expand/2">
+    <strong>expand(aliases, env)</strong>
+  </p>
+  <div class="docstring"><p>Receives an expression representation and expands it. The following
+contents are expanded:</p>
+
+<ul>
+<li>Macros (local or remote);</li>
+<li>Aliases are expanded (if possible) and return atoms;</li>
+<li>All pseudo-variables (<strong>FILE</strong>, <strong>MODULE</strong>, etc);</li>
+<li>Module attributes reader (@foo);</li>
+</ul>
+
+<p>In case the expression cannot be expanded, it returns the expression itself.</p>
+
+<p>Notice that <code>Macro.expand</code> is not recursive and it does not
+expand child expressions. In this example</p>
+
+<p>Macro.expand(quote(do: !some<em>macro), _</em>ENV__)</p>
+
+<p><code>!some_macro</code> will expand to something like:</p>
+
+<pre><code>case some_macro do
+  false -&gt; true
+  nil   -&gt; true
+  _     -&gt; false
+end
+</code></pre>
+
+<p>Notice that the <code>!</code> operator is a macro that expands to a case.
+Even though <code>some_macro</code> is also a macro, it is not expanded
+because it is a child expression given to <code>!</code> as argument.</p>
+
+<h2>Examples</h2>
+
+<p>In the example below, we have a macro that generates a module
+with a function named <code>name_length</code> that returns the length
+of the module name. The value of this function will be calculated
+at compilation time and not at runtime.</p>
+
+<p>Consider the implementation below:</p>
+
+<pre><code>defmacro defmodule_with_length(name, do: block) do
+  length = length(atom_to_list(name))
+
+  quote do
+    defmodule unquote(name) do
+      def name_length, do: unquote(length)
+      unquote(block)
+    end
+  end
+end
+</code></pre>
+
+<p>When invoked like this:</p>
+
+<pre><code>defmodule_with_length My.Module do
+  def other_function, do: ...
+end
+</code></pre>
+
+<p>The compilation will fail because <code>My.Module</code> when quoted
+is not an atom, but a syntax tree as follow:</p>
+
+<pre><code>{:__aliases__, [], [:My, :Module] }
+</code></pre>
+
+<p>That said, we need to expand the aliases node above to an
+atom, so we can retrieve its length. Expanding the node is
+not straight-forward because we also need to expand the
+caller aliases. For example:</p>
+
+<pre><code>alias MyHelpers, as: My
+
+defmodule_with_length My.Module do
+  def other_function, do: ...
+end
+</code></pre>
+
+<p>The final module name will be <code>MyHelpers.Module</code> and not
+<code>My.Module</code>. With <code>Macro.expand</code>, such aliases are taken
+into consideration. Local and remote macros are also
+expanded. We could rewrite our macro above to use this
+function as:</p>
+
+<pre><code>defmacro defmodule_with_length(name, do: block) do
+  expanded = Macro.expand(name, __CALLER__)
+  length   = length(atom_to_list(expanded))
+
+  quote do
+    defmodule unquote(name) do
+      def name_length, do: unquote(length)
+      unquote(block)
+    end
+  end
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L442" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="extract_args/1">
+    <strong>extract_args(expr)</strong>
+  </p>
+  <div class="docstring"><p>Receives an expresion representing a possible definition
+and extracts its arguments. It returns a tuple with the
+function name and the arguments list or <code>:error</code> if not
+a valid call syntax.</p>
+
+<p>This is useful for macros that want to provide the same
+arguments syntax available in def/defp/defmacro and friends.</p>
+
+<h2>Examples</h2>
+
+<pre><code>extract_args(quote do: foo)        == { :foo, [] }
+extract_args(quote do: foo())      == { :foo, [] }
+extract_args(quote do: foo(1,2,3)) == { :foo, [1,2,3] }
+extract_args(quote do: 1.(1,2,3))  == :error
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="safe_term/1">
+    <strong>safe_term(terms)</strong>
+  </p>
+  <div class="docstring"><p>Recurs the quoted expression checking if all sub terms are
+safe (i.e. they represented data structured and don&#39;t actually
+evaluate code) and returns <code>:ok</code> unless a given term is unsafe,
+which is returned as <code>{ :unsafe, term }</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L534" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_binary/1">
+    <strong>to_binary(tree)</strong>
+  </p>
+  <div class="docstring"><p>Converts the given expression to a binary.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Macro.to_binary(quote do: foo.bar(1, 2, 3))
+&quot;foo.bar(1, 2, 3)&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L178" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unescape_binary/1">
+    <strong>unescape_binary(chars)</strong>
+  </p>
+  <div class="docstring"><p>Unescape the given chars. This is the unescaping behavior
+used by default in Elixir single- and double-quoted strings.
+Check <code>unescape_binary/2</code> for information on how to customize
+the escaping map.</p>
+
+<p>In this setup, Elixir will escape the following: <code>\a</code>, <code>\b</code>,
+<code>\d</code>, <code>\e</code>, <code>\f</code>, <code>\n</code>, <code>\r</code>, <code>\s</code>, <code>\t</code> and <code>\v</code>. Octals are
+also escaped according to the latin1 set they represent.</p>
+
+<p>This function is commonly used on sigil implementations
+(like <code>%r</code>, <code>%b</code> and others).</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Macro.unescape_binary(&quot;example\\n&quot;)
+&quot;example\n&quot;
+</code></pre>
+
+<p>In the example above, we pass a string with <code>\n</code> escaped
+and we return a version with it unescaped.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L96" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unescape_binary/2">
+    <strong>unescape_binary(chars, map)</strong>
+  </p>
+  <div class="docstring"><p>Unescape the given chars according to the map given.
+Check <code>unescape_binary/1</code> if you want to use the same map
+as Elixir single- and double-quoted strings.</p>
+
+<h2>Map</h2>
+
+<p>The map must be a function. The function receives an integer
+representing the number of the characters it wants to unescape.
+Here is the default mapping function implemented by Elixir:</p>
+
+<pre><code>def unescape_map(?a), do: ?\a
+def unescape_map(?b), do: ?\b
+def unescape_map(?d), do: ?\d
+def unescape_map(?e), do: ?\e
+def unescape_map(?f), do: ?\f
+def unescape_map(?n), do: ?\n
+def unescape_map(?r), do: ?\r
+def unescape_map(?s), do: ?\s
+def unescape_map(?t), do: ?\t
+def unescape_map(?v), do: ?\v
+def unescape_map(e),  do: e
+</code></pre>
+
+<p>If the <code>unescape_map</code> function returns false. The char is
+not escaped and <code>\</code> is kept in the char list.</p>
+
+<h2>Octals</h2>
+
+<p>Octals will by default be escaped unless the map function
+returns false for ?0.</p>
+
+<h2>Hex</h2>
+
+<p>Octals will by default be escaped unless the map function
+returns false for ?x.</p>
+
+<h2>Examples</h2>
+
+<p>Using the unescape_map defined above is easy:</p>
+
+<pre><code>Macro.unescape_binary &quot;example\\n&quot;, unescape_map(&amp;1)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L143" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unescape_tokens/1">
+    <strong>unescape_tokens(tokens)</strong>
+  </p>
+  <div class="docstring"><p>Unescape the given tokens according to the default map.
+Check <code>unescape_binary/1</code> and <code>unescape_binary/2</code> for more
+information about unescaping.</p>
+
+<p>Only tokens that are binaries are unescaped, all others are
+ignored. This function is useful when implementing your own
+sigils. Check the implementation of <code>Kernel.__b__</code>
+for examples.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L157" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unescape_tokens/2">
+    <strong>unescape_tokens(tokens, map)</strong>
+  </p>
+  <div class="docstring"><p>Unescape the given tokens according to the given map.
+Check <code>unescape_tokens/1</code> and <code>unescape_binary/2</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L165" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="binary_ops/0">
+    <strong>binary_ops()</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of binary operators. This is available
+as a macro so it can be used in guard clauses.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L12" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unary_ops/0">
+    <strong>unary_ops()</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of unary operators. This is available
+as a macro so it can be used in guard clauses.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/macro.ex#L28" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/MatchError.html b/docs/stable/MatchError.html
new file mode 100644
index 000000000..b224b4a0c
--- /dev/null
+++ b/docs/stable/MatchError.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>MatchError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        MatchError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L30" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>actual:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L31" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Dep.html b/docs/stable/Mix.Dep.html
new file mode 100644
index 000000000..2e1a5e005
--- /dev/null
+++ b/docs/stable/Mix.Dep.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Dep</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Dep
+        
+          <small>record</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This is a record that keeps information about your project
+dependencies. It keeps:</p>
+
+<ul>
+<li>scm - a module representing the source code management tool (SCM) operations;</li>
+<li>app - the app name as an atom;</li>
+<li>requirements - a binary or regexp with the deps requirement;</li>
+<li>status - the current status of dependency, check <code>Mix.Deps.format_status/1</code> for more info;</li>
+<li>opts - the options given by the developer</li>
+<li>project - the Mix.Project for the dependency</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>scm:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>app:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>requirement:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>status:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>opts:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>project:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>deps:</strong> []
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Deps.html b/docs/stable/Mix.Deps.html
new file mode 100644
index 000000000..f4522fa54
--- /dev/null
+++ b/docs/stable/Mix.Deps.html
@@ -0,0 +1,341 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Deps</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Deps
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A module with common functions to work with dependencies.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L16" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#all/0">all/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#all/2">all/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#available?/1">available?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#by_name/2">by_name/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#check_lock/2">check_lock/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#children/0">children/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compile_paths/1">compile_paths/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#depending/2">depending/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#format_dep/1">format_dep/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#format_status/1">format_status/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#in_dependency/3">in_dependency/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#in_umbrella?/2">in_umbrella?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#load_paths/1">load_paths/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#make?/1">make?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#mix?/1">mix?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ok?/1">ok?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#out_of_date?/1">out_of_date?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rebar?/1">rebar?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/1">update/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="all/0">
+    <strong>all()</strong>
+  </p>
+  <div class="docstring"><p>Returns all dependencies recursively as <code>Mix.Dep</code> record.</p>
+
+<h2>Exceptions</h2>
+
+<p>This function raises an exception in case the developer
+provides a dependency in the wrong format.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L29" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="all/2">
+    <strong>all(acc, callback)</strong>
+  </p>
+  <div class="docstring"><p>Returns all dependencies but with a custom callback and
+accumulator.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L38" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="available?/1">
+    <strong>available?(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Check if a dependency is available.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L174" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="by_name/2">
+    <strong>by_name(given, all_deps // all)</strong>
+  </p>
+  <div class="docstring"><p>Receives a list of deps names and returns deps records.
+Logs a message if the dependency could not be found.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L71" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="check_lock/2">
+    <strong>check_lock(dep, lock)</strong>
+  </p>
+  <div class="docstring"><p>Checks the lock for the given dependency and update its status accordingly.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L144" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="children/0">
+    <strong>children()</strong>
+  </p>
+  <div class="docstring"><p>Returns all direct child dependencies.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L46" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compile_paths/1">
+    <strong>compile_paths(dep)</strong>
+  </p>
+  <div class="docstring"><p>Returns all compile paths for the dependency.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L210" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="depending/2">
+    <strong>depending(deps, all_deps // all)</strong>
+  </p>
+  <div class="docstring"><p>Returns all dependencies depending on given dependencies.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L51" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="format_dep/1">
+    <strong>format_dep(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Format the dependency for printing.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L197" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="format_status/1">
+    <strong>format_status(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Formats the status of a dependency.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L111" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="in_dependency/3">
+    <strong>in_dependency(arg1, post_config // [], fun)</strong>
+  </p>
+  <div class="docstring"><p>Runs the given <code>fun</code> inside the given dependency project by
+changing the current working directory and loading the given
+project into the project stack.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L96" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="in_umbrella?/2">
+    <strong>in_umbrella?(arg1, apps_path)</strong>
+  </p>
+  <div class="docstring"><p>Check if a dependency is part of an umbrella project as a top level project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L181" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="load_paths/1">
+    <strong>load_paths(dep)</strong>
+  </p>
+  <div class="docstring"><p>Returns all load paths for the dependency.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L223" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="make?/1">
+    <strong>make?(dep)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if dependency is a make project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L253" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="mix?/1">
+    <strong>mix?(dep)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if dependency is a mix project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L237" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ok?/1">
+    <strong>ok?(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Check if a dependency is ok.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L168" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="out_of_date?/1">
+    <strong>out_of_date?(dep)</strong>
+  </p>
+  <div class="docstring"><p>Check if a dependency is out of date or not, considering its
+lock status. Therefore, be sure to call <code>check_lock</code> before
+invoking this function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L190" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rebar?/1">
+    <strong>rebar?(dep)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if dependency is a rebar project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L244" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/1">
+    <strong>update(dep)</strong>
+  </p>
+  <div class="docstring"><p>Updates the dependency inside the given project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/deps.ex#L163" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Error.html b/docs/stable/Mix.Error.html
new file mode 100644
index 000000000..6a0432a40
--- /dev/null
+++ b/docs/stable/Mix.Error.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Error</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Error
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/exceptions.ex#L16" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>mix_error:</strong> true
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Generator.html b/docs/stable/Mix.Generator.html
new file mode 100644
index 000000000..870ff6e49
--- /dev/null
+++ b/docs/stable/Mix.Generator.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Generator</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Generator
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Conveniences for working with paths and generating content.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/generator.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#create_directory/1">create_directory/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#create_file/2">create_file/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#embed_template/2">embed_template/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#embed_text/2">embed_text/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#from_file/1">from_file/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="create_directory/1">
+    <strong>create_directory(path)</strong>
+  </p>
+  <div class="docstring"><p>Creates a directory if one does not exist yet.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/generator.ex#L21" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="create_file/2">
+    <strong>create_file(path, contents)</strong>
+  </p>
+  <div class="docstring"><p>Creates a file with the given contents.
+If the file already exists, asks for user confirmation.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/generator.ex#L10" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="embed_template/2">
+    <strong>embed_template(name, contents)</strong>
+  </p>
+  <div class="docstring"><p>Embed a template given by <code>contents</code> into the current module.</p>
+
+<p>It will define a private function with the <code>name</code> followed by
+<code>_template</code> that expects assigns as arguments.</p>
+
+<p>This function must be invoked passing a keyword list.
+Each key in the keyword list can be accessed in the
+template using the <code>@</code> macro.</p>
+
+<p>For more information, check <code>EEx.SmartEngine</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/generator.ex#L61" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="embed_text/2">
+    <strong>embed_text(name, contents)</strong>
+  </p>
+  <div class="docstring"><p>Embeds a text given by <code>contents</code> into the current module.</p>
+
+<p>It will define a private function with the <code>name</code> followed by
+<code>_text</code> that expects no argument.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/generator.ex#L74" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="from_file/1">
+    <strong>from_file(path)</strong>
+  </p>
+  <div class="docstring"><p>Reads the content from a file relative to the current
+file and not relative to the cwd. Useful when used with
+embed macros:</p>
+
+<pre><code>embed_template :lib, from_file(&quot;../templates/lib.eex&quot;)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/generator.ex#L43" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.InvalidTaskError.html b/docs/stable/Mix.InvalidTaskError.html
new file mode 100644
index 000000000..f0752eddb
--- /dev/null
+++ b/docs/stable/Mix.InvalidTaskError.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.InvalidTaskError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.InvalidTaskError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/exceptions.ex#L7" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>task:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>mix_error:</strong> true
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/exceptions.ex#L8" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Local.html b/docs/stable/Mix.Local.html
new file mode 100644
index 000000000..47d47e437
--- /dev/null
+++ b/docs/stable/Mix.Local.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Local</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Local
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Module responsible to manage local .mix installation.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/local.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#all_tasks/0">all_tasks/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#append_paths/0">append_paths/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#append_tasks/0">append_tasks/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#tasks_path/0">tasks_path/0</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="all_tasks/0">
+    <strong>all_tasks()</strong>
+  </p>
+  <div class="docstring"><p>Returns all tasks modules in .mix/tasks.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/local.ex#L30" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="append_paths/0">
+    <strong>append_paths()</strong>
+  </p>
+  <div class="docstring"><p>Append mix paths into Erlang code path.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/local.ex#L23" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="append_tasks/0">
+    <strong>append_tasks()</strong>
+  </p>
+  <div class="docstring"><p>Append local tasks path into Erlang code path.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/local.ex#L16" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="tasks_path/0">
+    <strong>tasks_path()</strong>
+  </p>
+  <div class="docstring"><p>The path for local tasks.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/local.ex#L9" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.NoProjectError.html b/docs/stable/Mix.NoProjectError.html
new file mode 100644
index 000000000..cc6664680
--- /dev/null
+++ b/docs/stable/Mix.NoProjectError.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.NoProjectError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.NoProjectError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/exceptions.ex#L13" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>mix_error:</strong> true
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "Could not find a Mix.Project"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.NoTaskError.html b/docs/stable/Mix.NoTaskError.html
new file mode 100644
index 000000000..13026bd55
--- /dev/null
+++ b/docs/stable/Mix.NoTaskError.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.NoTaskError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.NoTaskError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/exceptions.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>task:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>mix_error:</strong> true
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/exceptions.ex#L2" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.OutOfDateDepsError.html b/docs/stable/Mix.OutOfDateDepsError.html
new file mode 100644
index 000000000..5339ec867
--- /dev/null
+++ b/docs/stable/Mix.OutOfDateDepsError.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.OutOfDateDepsError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.OutOfDateDepsError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/exceptions.ex#L18" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>mix_error:</strong> true
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>env:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/exceptions.ex#L19" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Project.html b/docs/stable/Mix.Project.html
new file mode 100644
index 000000000..d0166d8ea
--- /dev/null
+++ b/docs/stable/Mix.Project.html
@@ -0,0 +1,264 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Project</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Project
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A module that provides conveniences for defining and working
+with projects.</p>
+
+<h2>Examples</h2>
+
+<p>In order to configure Mix, a developer needs to use
+<code>Mix.Project</code> in a module and define a function named
+<code>project</code> that returns a keyword list with configuration.</p>
+
+<pre><code>defmodule MyApp do
+  use Mix.Project
+
+  def project do
+    [
+      app: :my_app,
+      vsn: &quot;0.6.0&quot;
+    ]
+  end
+end
+</code></pre>
+
+<p>After defined, the configuration for this project can be read
+as <code>Mix.project/0</code>. Notice that config won&#39;t fail if a
+project is not defined, this allows many of mix tasks to work
+even without a project.</p>
+
+<p>In case the developer needs a project or want to access a special
+function in the project, he can access <code>Mix.Project.get!/0</code>
+which fails with <code>Mix.NoProjectError</code> in case a project is not
+defined.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#apps_path/0">apps_path/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compile_paths/0">compile_paths/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#config/0">config/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#config_files/0">config_files/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/0">get/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get!/0">get!/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#in_project/4">in_project/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#load_paths/0">load_paths/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#recur/1">recur/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#refresh/0">refresh/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#umbrella?/0">umbrella?/0</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="apps_path/0">
+    <strong>apps_path()</strong>
+  </p>
+  <div class="docstring"><p>Returns the path to the apps directory.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L140" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compile_paths/0">
+    <strong>compile_paths()</strong>
+  </p>
+  <div class="docstring"><p>Returns the paths this project compiles to.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L201" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="config/0">
+    <strong>config()</strong>
+  </p>
+  <div class="docstring"><p>Returns the project configuration already
+considering the current environment.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="config_files/0">
+    <strong>config_files()</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of project config files (mix.exs and mix.lock).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L114" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/0">
+    <strong>get()</strong>
+  </p>
+  <div class="docstring"><p>Retrieves the current project.</p>
+
+<p>This is usually called by tasks that needs additional
+functions on the project to be defined. Since such
+tasks usually depends on a project to be defined, this
+function raises <code>Mix.NoProjectError</code> in case no project
+is available.</p>
+
+<p>Returns nil if no project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L86" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get!/0">
+    <strong>get!()</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>get/0</code> but raises an exception if no project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L96" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="in_project/4">
+    <strong>in_project(app, app_path, post_config // [], fun)</strong>
+  </p>
+  <div class="docstring"><p>Runs the given <code>fun</code> inside the given project by changing
+the current working directory and loading the given project
+into the project stack.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L180" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="load_paths/0">
+    <strong>load_paths()</strong>
+  </p>
+  <div class="docstring"><p>Returns all load paths for this project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L208" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="recur/1">
+    <strong>recur(fun)</strong>
+  </p>
+  <div class="docstring"><p>Runs <code>fun</code> in the current project.</p>
+
+<p>The goal of this function is to transparently abstract umbrella projects.
+So if you want to gather data from a project, like beam files, you can
+use this function to transparently go through the project, regardless
+if it is an umbrella project or not.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L152" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="refresh/0">
+    <strong>refresh()</strong>
+  </p>
+  <div class="docstring"><p>Refresh the project configuration. Usually required
+when the environment changes during a task.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L71" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="umbrella?/0">
+    <strong>umbrella?()</strong>
+  </p>
+  <div class="docstring"><p>Returns true if project is an umbrella project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/project.ex#L133" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.SCM.html b/docs/stable/Mix.SCM.html
new file mode 100644
index 000000000..6e6711c6b
--- /dev/null
+++ b/docs/stable/Mix.SCM.html
@@ -0,0 +1,276 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.SCM</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.SCM
+        
+          <small>behaviour</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module provides helper functions and defines the
+behavior required by any SCM used by mix.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#available/0">available/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#register/1">register/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#register_builtin/0">register_builtin/0</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <h2 id="callbacks_summary">Callbacks summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#clean/1">clean/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#equal?/2">equal?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#matches_lock?/1">matches_lock?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#update/1">update/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#checkout/1">checkout/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#checked_out?/1">checked_out?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#accepts_options/1">accepts_options/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#format_lock/1">format_lock/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#format/1">format/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="available/0">
+    <strong>available()</strong>
+  </p>
+  <div class="docstring"><p>Returns all available SCM.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L90" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="register/1">
+    <strong>register(mod)</strong>
+  </p>
+  <div class="docstring"><p>Register the scm repository with the given <code>key</code> and <code>mod</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L97" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="register_builtin/0">
+    <strong>register_builtin()</strong>
+  </p>
+  <div class="docstring"><p>Register builtin SCMs.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L104" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+        <div id="callbacks_details" class="details_list">
+          <h2>Callbacks</h2>
+          <div class="detail">
+  <p class="signature" id="clean/1">
+    <strong>clean(opts())</strong>
+  </p>
+  <div class="docstring"><p>This behavior function should clean the given dependency.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L85" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="equal?/2">
+    <strong>equal?(opts1 :: opts(), opts2 :: opts())</strong>
+  </p>
+  <div class="docstring"><p>Receives two options and must return true if the refer to the
+same repository. The options are guaranteed to belong to the
+same SCM.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L80" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="matches_lock?/1">
+    <strong>matches_lock?(opts())</strong>
+  </p>
+  <div class="docstring"><p>This behavior function checks if the dependency is locked and
+the current repository version matches the lock. Note that some
+SCMs do not require a lock, for such, this function can simply
+return true.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L73" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="update/1">
+    <strong>update(opts())</strong>
+  </p>
+  <div class="docstring"><p>This behavior function updates dependencies. It may be
+called by <code>deps.get</code> or <code>deps.update</code>.</p>
+
+<p>In the first scenario, a lock is received in <code>opts</code> and
+the repository must be updated to the lock. In the second,
+no lock is given and the repository can be updated freely.</p>
+
+<p>It must return the current lock.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L65" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="checkout/1">
+    <strong>checkout(opts())</strong>
+  </p>
+  <div class="docstring"><p>This behavior function checks out dependencies.</p>
+
+<p>If the dependency is locked, a lock is received in <code>opts</code>
+and the repository must be check out at the lock. Otherwise,
+no lock is given and the repository can be checked out
+to the latest version.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="checked_out?/1">
+    <strong>checked_out?(opts())</strong>
+  </p>
+  <div class="docstring"><p>This behavior function returns a boolean if the
+dependency is available.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L43" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="accepts_options/1">
+    <strong>accepts_options(opts())</strong>
+  </p>
+  <div class="docstring"><p>This behavior function receives a keyword list of <code>opts</code>
+and should return an updated list in case the SCM consumes
+the available options. For example, when a developer specifies
+a dependency:</p>
+
+<pre><code>{ :foo, &quot;0.1.0&quot;, github: &quot;foo/bar&quot; }
+</code></pre>
+
+<p>Each registered SCM will be asked if they consume this dependency,
+receiving [github: &quot;foo/bar&quot;] as argument. Since this option makes
+sense for the Git SCM, it will return an update list of options
+while other SCMs would simply return nil.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L37" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="format_lock/1">
+    <strong>format_lock(lock())</strong>
+  </p>
+  <div class="docstring"><p>Returns an Elixir term that contains relevant SCM
+lock information for printing.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="format/1">
+    <strong>format(opts())</strong>
+  </p>
+  <div class="docstring"><p>Returns an Elixir term that contains relevant SCM
+information for printing.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/scm.ex#L16" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Shell.IO.html b/docs/stable/Mix.Shell.IO.html
new file mode 100644
index 000000000..9b512b63f
--- /dev/null
+++ b/docs/stable/Mix.Shell.IO.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Shell.IO</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Shell.IO
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This is Mix&#39;s default shell.
+It simply prints messages to stdio and stderr.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/io.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#cmd/1">cmd/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#error/1">error/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#info/1">info/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_app/0">put_app/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#yes?/1">yes?/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="cmd/1">
+    <strong>cmd(command)</strong>
+  </p>
+  <div class="docstring"><p>Executes the given command and prints its output
+to stdout as it comes.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/io.ex#L13" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="error/1">
+    <strong>error(message)</strong>
+  </p>
+  <div class="docstring"><p>Writes an error message to the shell followed by new line.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/io.ex#L29" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="info/1">
+    <strong>info(message)</strong>
+  </p>
+  <div class="docstring"><p>Writes a message to the shell followed by new line.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/io.ex#L21" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_app/0">
+    <strong>put_app()</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/io.ex#L44" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="yes?/1">
+    <strong>yes?(message)</strong>
+  </p>
+  <div class="docstring"><p>Receives a message and asks the user if he wants to proceed.
+He must press enter or type anything that matches the a &quot;yes&quot;
+regex <code>%r/^Y(es)?$/i</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/io.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Shell.Process.html b/docs/stable/Mix.Shell.Process.html
new file mode 100644
index 000000000..40f84b679
--- /dev/null
+++ b/docs/stable/Mix.Shell.Process.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Shell.Process</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Shell.Process
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This is Mix shell that uses the current process mailbox
+for communication instead of IO.</p>
+
+<p>When a developer calls <code>info(&quot;hello&quot;)</code>, the following
+message will be sent to the current process:</p>
+
+<pre><code>{ :mix_shell, :info, [&quot;hello&quot;] }
+</code></pre>
+
+<p>This is mainly useful in tests, allowing us to assert
+if given messages were received or not. Since we need
+to guarantee a clean slate in between tests, there
+is also a flush function responsible for flushing all
+<code>:mix_shell</code> related tasks from the process inbox.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/process.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#cmd/1">cmd/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#error/1">error/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#flush/1">flush/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#info/1">info/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_app/0">put_app/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#yes?/1">yes?/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="cmd/1">
+    <strong>cmd(command)</strong>
+  </p>
+  <div class="docstring"><p>Executes the given command and fowards its messages to
+the current process.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/process.ex#L43" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="error/1">
+    <strong>error(message)</strong>
+  </p>
+  <div class="docstring"><p>Simply forwards the message to the current process.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/process.ex#L61" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="flush/1">
+    <strong>flush(callback // fn x -&gt; x end)</strong>
+  </p>
+  <div class="docstring"><p>Flush all :mix_shell messages from the current process.
+If a callback is given, it is invoked for each received message.</p>
+
+<h2>Examples</h2>
+
+<pre><code>flush IO.inspect(&amp;1)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/process.ex#L29" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="info/1">
+    <strong>info(message)</strong>
+  </p>
+  <div class="docstring"><p>Simply forwards the message to the current process.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/process.ex#L53" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_app/0">
+    <strong>put_app()</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/process.ex#L86" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="yes?/1">
+    <strong>yes?(message)</strong>
+  </p>
+  <div class="docstring"><p>Simply forwards the message to the current process.
+It also checks the inbox for an input message matching:</p>
+
+<pre><code>{ :mix_shell_input, :yes?, value }
+</code></pre>
+
+<p>If one does not exist, it will abort since there no shell
+process input given. Value must be true or false.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell/process.ex#L75" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Shell.html b/docs/stable/Mix.Shell.html
new file mode 100644
index 000000000..9c9bf7f41
--- /dev/null
+++ b/docs/stable/Mix.Shell.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Shell</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Shell
+        
+          <small>behaviour</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Defines Mix.Shell contract.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#cmd/2">cmd/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#output_app?/0">output_app?/0</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <h2 id="callbacks_summary">Callbacks summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#cmd/1">cmd/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#yes?/1">yes?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#error/1">error/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#info/1">info/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="cmd/2">
+    <strong>cmd(command, callback)</strong>
+  </p>
+  <div class="docstring"><p>An implementation of the command callback that
+is shared accross different shells.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell.ex#L40" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="output_app?/0">
+    <strong>output_app?()</strong>
+  </p>
+  <div class="docstring"><p>Returns if we should output application name to shell.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell.ex#L32" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+        <div id="callbacks_details" class="details_list">
+          <h2>Callbacks</h2>
+          <div class="detail">
+  <p class="signature" id="cmd/1">
+    <strong>cmd(command :: binary())</strong>
+  </p>
+  <div class="docstring"><p>Executes the given command and returns
+its exit status.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell.ex#L27" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="yes?/1">
+    <strong>yes?(message :: binary())</strong>
+  </p>
+  <div class="docstring"><p>Asks the user for confirmation.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell.ex#L21" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="error/1">
+    <strong>error(message :: binary())</strong>
+  </p>
+  <div class="docstring"><p>Warns about the given error message.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell.ex#L16" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="info/1">
+    <strong>info(message :: binary())</strong>
+  </p>
+  <div class="docstring"><p>Informs the given message.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/shell.ex#L11" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Task.html b/docs/stable/Mix.Task.html
new file mode 100644
index 000000000..d28e8091b
--- /dev/null
+++ b/docs/stable/Mix.Task.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Task</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Task
+        
+          <small>behaviour</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A simple module that provides conveniences for creating tasks.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#all_modules/0">all_modules/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#clear/0">clear/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/1">get/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#hidden?/1">hidden?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#load_all/0">load_all/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#moduledoc/1">moduledoc/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#recursive?/1">recursive?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reenable/1">reenable/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#run/2">run/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#shortdoc/1">shortdoc/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#task_name/1">task_name/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <h2 id="callbacks_summary">Callbacks summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="all_modules/0">
+    <strong>all_modules()</strong>
+  </p>
+  <div class="docstring"><p>Returns all loaded modules. Modules that were not yet loaded
+won&#39;t show up. Check <code>load_all/0</code> if you want to preload all tasks.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="clear/0">
+    <strong>clear()</strong>
+  </p>
+  <div class="docstring"><p>Clears all invoked tasks, allowing them to be reinvoked.
+Returns an ordset with all the tasks invoked thus far.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L153" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/1">
+    <strong>get(task)</strong>
+  </p>
+  <div class="docstring"><p>Receives a task name and retrives the task module.</p>
+
+<h2>Exceptions</h2>
+
+<ul>
+<li><code>Mix.NoTaskError</code> - raised if the task could not be found;</li>
+<li><code>Mix.InvalidTaskError</code> - raised if the task is not a valid <code>Mix.Task</code></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L107" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="hidden?/1">
+    <strong>hidden?(module)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the task is hidden or not. Returns a boolean.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L75" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="load_all/0">
+    <strong>load_all()</strong>
+  </p>
+  <div class="docstring"><p>Loads all tasks in all code paths.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L28" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="moduledoc/1">
+    <strong>moduledoc(module)</strong>
+  </p>
+  <div class="docstring"><p>Gets the moduledoc for the given module.
+Returns the moduledoc or <code>nil</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L54" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="recursive?/1">
+    <strong>recursive?(module)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the task is defined for umbrella projects.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L85" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reenable/1">
+    <strong>reenable(task)</strong>
+  </p>
+  <div class="docstring"><p>Reenables a given task so it can be executed again down the stack. If
+an umbrella project reenables a task it is reenabled for all sub projects.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L161" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="run/2">
+    <strong>run(task, args // [])</strong>
+  </p>
+  <div class="docstring"><p>Runs a <code>task</code> with the given <code>args</code>.</p>
+
+<p>If the task was not yet invoked, it returns <code>:ok</code>.</p>
+
+<p>If the task was already invoked, it does not run the task
+again and simply aborts with <code>:noop</code>.</p>
+
+<p>It may raise an exception if the task was not found
+or it is invalid. Check <code>get/2</code> for more information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L131" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="shortdoc/1">
+    <strong>shortdoc(module)</strong>
+  </p>
+  <div class="docstring"><p>Gets the shortdoc for the given module.
+Returns the shortdoc or <code>nil</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L65" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="task_name/1">
+    <strong>task_name(module)</strong>
+  </p>
+  <div class="docstring"><p>Returns the task name for the given module.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L95" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+        <div id="callbacks_details" class="details_list">
+          <h2>Callbacks</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run([binary()])</strong>
+  </p>
+  <div class="docstring"><p>A task needs to implement run which receives
+a list of command line args.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/task.ex#L13" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.App.Start.html b/docs/stable/Mix.Tasks.App.Start.html
new file mode 100644
index 000000000..1441c7203
--- /dev/null
+++ b/docs/stable/Mix.Tasks.App.Start.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.App.Start</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.App.Start
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Starts all registered apps. If no apps key exists,
+it starts the current application.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--no-compile</code> - do not compile even if files require compilation;</li>
+<li><code>--no-start</code> - do not start applications after compilation;</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/app.start.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/app.start.ex#L18" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Clean.html b/docs/stable/Mix.Tasks.Clean.html
new file mode 100644
index 000000000..711aaf4fa
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Clean.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Clean</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Clean
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Clean generated application files.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--all</code> - Clean everything, including dependencies</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/clean.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/clean.ex#L16" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Compile.App.html b/docs/stable/Mix.Tasks.Compile.App.html
new file mode 100644
index 000000000..b17d54f7b
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Compile.App.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Compile.App</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Compile.App
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Writes an .app file.</p>
+
+<p>By default, this task will detect all modules in your compile_path
+(default to &quot;ebin&quot;) and generate a best guess for your application
+specification. This best guess also includes &quot;kernel&quot;, &quot;stdlib&quot;
+and &quot;elixir&quot; as application dependencies.</p>
+
+<p>You can optionally define an <code>application/0</code> function inside your
+<code>Mix.Project</code> that returns a keyword list to further configure
+your application according to OTP design principles:</p>
+
+<p><a href="http://www.erlang.org/doc/design_principles/applications.html">http://www.erlang.org/doc/design_principles/applications.html</a></p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--force</code> forces compilation regardless of mod times</li>
+</ul>
+
+<h2>Configuration</h2>
+
+<ul>
+<li><code>:app</code> - The application name as a binary (required)</li>
+<li><code>:version</code> - The application version as a binary (required)</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.app.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.app.ex#L32" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Compile.Elixir.html b/docs/stable/Mix.Tasks.Compile.Elixir.html
new file mode 100644
index 000000000..fcfbb4b77
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Compile.Elixir.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Compile.Elixir</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Compile.Elixir
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A task to compile Elixir source files.</p>
+
+<p>When this task runs, it will first check the mod times of
+all of the files to be compiled and if they haven&#39;t been
+changed since the last compilation, it will not compile
+them at all. If any one of them has changed, it compiles
+everything.</p>
+
+<p>For this reason, this task touches your <code>:compile_path</code>
+directory and sets the modification time to the current
+time and date at the end of each compilation. You can
+force compilation regardless of mod times by passing
+the <code>--force</code> option.</p>
+
+<p>Note it is important to recompile all files because
+often there are compilation time dependencies between
+the files (macros and etc). However, in some cases it
+is useful to compile just the changed files for quick
+development cycles, for such, a developer can pass
+the <code>--quick</code> otion.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--force</code> - forces compilation regardless of module times;</li>
+<li><code>--quick</code>, <code>-q</code> - only compile files that changed;</li>
+</ul>
+
+<h2>Configuration</h2>
+
+<ul>
+<li><p><code>:elixirc_paths</code> - directories to find source files.
+Defaults to <code>[&quot;lib&quot;]</code>, can be configured as:</p>
+
+<p>[elixirc_paths: [&quot;lib&quot;, &quot;other&quot;]]</p></li>
+<li><p><code>:elixirc_options</code> - compilation options that applies
+to Elixir&#39;s compiler, they are: <code>:ignore_module_conflict</code>,
+<code>:docs</code> and <code>:debug_info</code>. By default, uses the same
+behaviour as Elixir</p>
+
+<ul>
+<li><code>:elixirc_exts</code> - extensions to compile whenever there
+is a change:</li>
+</ul>
+
+<p>[compile_exts: [:ex]]
+* <code>:watch_exts</code> - extensions to watch in order to trigger
+a compilation:</p>
+
+<p>[elixirc<em>watch</em>exts: [:ex, :eex]]</p></li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.elixir.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.elixir.ex#L59" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Compile.Erlang.html b/docs/stable/Mix.Tasks.Compile.Erlang.html
new file mode 100644
index 000000000..9ce60ff3a
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Compile.Erlang.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Compile.Erlang</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Compile.Erlang
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A task to compile Erlang source files.</p>
+
+<p>When this task runs, it will first check the mod times of
+all of the files. Every file will checked, if file or
+file dependencies, like include files, was changed.
+If file of his dependencies haven&#39;t been changed since the
+last compilation, it will not compile. If file or one of his
+dependency has changed, it will compile.</p>
+
+<p>For this reason, this task touches your <code>:compile_path</code>
+directory and sets the modification time to the current
+time and date at the end of each compilation. You can
+force compilation regardless of mod times by passing
+the <code>--force</code> option.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--force</code> - forces compilation regardless of module times</li>
+</ul>
+
+<h2>Configuration</h2>
+
+<ul>
+<li><p><code>ERL_COMPILER_OPTIONS</code> - can be used to give default compile options.
+It&#39;s value must be a valid Erlang term. If the value is a list, it will
+be used as is. If it is not a list, it will be put into a list.</p></li>
+<li><p><code>:erlc_paths</code> - directories to find source files.
+Defaults to <code>[&quot;src&quot;]</code>, can be configured as:</p>
+
+<p>[erlc_paths: [&quot;src&quot;, &quot;other&quot;]]</p></li>
+<li><p><code>:erlc_include_path</code> - directory for adding include files.
+Defaults to <code>&quot;include&quot;</code>, can be configured as:</p>
+
+<p>[<code>erlc_include_path</code>: &quot;other&quot;]</p></li>
+<li><p><code>:erlc_options</code> - compilation options that applies to Erlang&#39;s
+compiler. <code>:debug_info</code> is enabled by default.</p></li>
+</ul>
+
+<p>There are many available options here:
+   <a href="http://www.erlang.org/doc/man/compile.html#file-2">http://www.erlang.org/doc/man/compile.html#file-2</a></p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.erlang.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#extract_stale_pairs/5">extract_stale_pairs/5</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#interpret_result/3">interpret_result/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_erl_file/1">to_erl_file/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="extract_stale_pairs/5">
+    <strong>extract_stale_pairs(dir1, ext1, dir2, ext2, force)</strong>
+  </p>
+  <div class="docstring"><p>Extract stale pairs considering the set of directories
+and filename extensions. It first looks up the <code>dir1</code>
+for files with <code>ext1</code> extensions and then recursively
+try to find matching pairs in <code>dir2</code> with <code>ext2</code>
+extension.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.erlang.ex#L176" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="interpret_result/3">
+    <strong>interpret_result(file, result, ext // &quot;&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Interprets compilation results and prints them to the console.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.erlang.ex#L192" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.erlang.ex#L58" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_erl_file/1">
+    <strong>to_erl_file(file)</strong>
+  </p>
+  <div class="docstring"><p>Converts the given file to a format accepted by
+Erlang compilation tools.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.erlang.ex#L205" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Compile.Leex.html b/docs/stable/Mix.Tasks.Compile.Leex.html
new file mode 100644
index 000000000..56124d783
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Compile.Leex.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Compile.Leex</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Compile.Leex
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A task to compile Leex source files.</p>
+
+<p>When this task runs, it will check the mod time of every file, and
+if it has changed, then file will be compiled. Files will be
+compiled in the same source directory with .erl extension.
+You can force compilation regardless of mod times by passing
+the <code>--force</code> option.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--force</code> - forces compilation regardless of module times;</li>
+</ul>
+
+<h2>Configuration</h2>
+
+<ul>
+<li><p><code>:erlc_paths</code> - directories to find source files.
+Defaults to <code>[&quot;src&quot;]</code>, can be configured as:</p>
+
+<p>[erlc_paths: [&quot;src&quot;, &quot;other&quot;]]</p></li>
+<li><p><code>:leex_options</code> - compilation options that applies
+to Leex&#39;s compiler. There are many available options
+here: <a href="http://www.erlang.org/doc/man/leex.html#file-2">http://www.erlang.org/doc/man/leex.html#file-2</a></p></li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.leex.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.leex.ex#L36" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Compile.Yecc.html b/docs/stable/Mix.Tasks.Compile.Yecc.html
new file mode 100644
index 000000000..1e0022226
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Compile.Yecc.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Compile.Yecc</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Compile.Yecc
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A task to compile Yecc source files.</p>
+
+<p>When this task runs, it will check the mod time of every file, and
+if it has changed, then file will be compiled. Files will be
+compiled in the same source directory with .erl extension.
+You can force compilation regardless of mod times by passing
+the <code>--force</code> option.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--force</code> - forces compilation regardless of module times;</li>
+</ul>
+
+<h2>Configuration</h2>
+
+<ul>
+<li><p><code>:erlc_paths</code> - directories to find source files.
+Defaults to <code>[&quot;src&quot;]</code>, can be configured as:</p>
+
+<p>[erlc_paths: [&quot;src&quot;, &quot;other&quot;]]</p></li>
+<li><p><code>:yecc_options</code> - compilation options that applies
+to Yecc&#39;s compiler. There are many other available
+options here: <a href="http://www.erlang.org/doc/man/yecc.html#file-1">http://www.erlang.org/doc/man/yecc.html#file-1</a></p></li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.yecc.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.yecc.ex#L38" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Compile.html b/docs/stable/Mix.Tasks.Compile.html
new file mode 100644
index 000000000..0b2d03d04
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Compile.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Compile</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Compile
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A meta task that compile source files. It simply runs the
+compilers registered in your project. At the end of compilation
+it ensures load paths are set.</p>
+
+<h2>Configuration</h2>
+
+<ul>
+<li><p><code>:compilers</code> - compilers to be run, defaults to:</p>
+
+<p>[:elixir, :app]</p></li>
+</ul>
+
+<p>It can be configured to handle custom compilers, for example:</p>
+
+<pre><code>[compilers: [:elixir, :mycompiler, :app]]
+</code></pre>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--list</code> - List all enabled compilers.</li>
+</ul>
+
+<p>Remaining options are forwarded to underlying compilers.</p>
+
+<h2>Common configuration</h2>
+
+<p>The following options are usually shared by different compilers:</p>
+
+<ul>
+<li><p><code>:compile_path</code> - directory to output compiled files.
+Defaults to <code>&quot;ebin&quot;</code>, can be configured as:</p>
+
+<p>[compile_path: &quot;ebin&quot;]</p></li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/compile.ex#L38" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Deps.Check.html b/docs/stable/Mix.Tasks.Deps.Check.html
new file mode 100644
index 000000000..06597528d
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Deps.Check.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Deps.Check</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Deps.Check
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Checks if all dependencies are valid and if not, abort.
+Prints the invalid dependencies status before aborting.</p>
+
+<p>This task is not shown in <code>mix help</code> but it is part
+of mix public API and can be depended on.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.check.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(_)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.check.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Deps.Clean.html b/docs/stable/Mix.Tasks.Deps.Clean.html
new file mode 100644
index 000000000..e4ababde8
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Deps.Clean.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Deps.Clean</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Deps.Clean
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Clean dependencies.</p>
+
+<p>By default, cleans all dependencies. A list of deps can
+be given to clean specific ones. Clean does not unlock
+the repositories, unless --unlock is given.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.clean.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.clean.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Deps.Compile.html b/docs/stable/Mix.Tasks.Deps.Compile.html
new file mode 100644
index 000000000..1271f2f15
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Deps.Compile.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Deps.Compile</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Deps.Compile
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Compile dependencies.</p>
+
+<p>By default, compile all dependencies. A list of deps can
+be given to force the compilation of specific deps.</p>
+
+<p>By default, it tries to detect if the project contains one of
+the following files:</p>
+
+<ul>
+<li><code>mix.exs</code>      - if so, invokes <code>mix compile</code></li>
+<li><code>rebar.config</code> - if so, invokes <code>rebar compile</code></li>
+<li><code>Makefile</code>     - if so, invokes <code>make</code></li>
+</ul>
+
+<p>The compilation can be customized by passing a <code>compile</code> option
+in the dependency:</p>
+
+<pre><code>{ :some_dependency, &quot;0.1.0&quot;, git: &quot;...&quot;, compile: &quot;command to compile&quot; }
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.compile.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.compile.ex#L30" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Deps.Get.html b/docs/stable/Mix.Tasks.Deps.Get.html
new file mode 100644
index 000000000..2029f61e8
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Deps.Get.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Deps.Get</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Deps.Get
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Get all out of date dependencies, i.e. dependencies
+that are not available or have an invalid lock.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--no-compile</code> - skip compilation of dependencies</li>
+<li><code>--quiet</code> - do not output success message</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.get.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.get.ex#L20" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Deps.Loadpaths.html b/docs/stable/Mix.Tasks.Deps.Loadpaths.html
new file mode 100644
index 000000000..acf7acb87
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Deps.Loadpaths.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Deps.Loadpaths</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Deps.Loadpaths
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Loads all dependencies. This is invoked directly
+by &quot;loadpaths&quot; when the CLI boots.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.loadpaths.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.loadpaths.ex#L14" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Deps.Unlock.html b/docs/stable/Mix.Tasks.Deps.Unlock.html
new file mode 100644
index 000000000..2068ff470
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Deps.Unlock.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Deps.Unlock</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Deps.Unlock
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Unlock the given dependencies. If no dependencies
+are given, unlock all.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.unlock.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.unlock.ex#L12" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Deps.Update.html b/docs/stable/Mix.Tasks.Deps.Update.html
new file mode 100644
index 000000000..7b6e8709d
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Deps.Update.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Deps.Update</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Deps.Update
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Update dependencies.</p>
+
+<p>By default, updates all dependencies. A list of deps can
+be given to update specific ones. Recompiles the given
+projects after updating.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--no-compile</code> - skip compilation of dependencies</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.update.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.update.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Deps.html b/docs/stable/Mix.Tasks.Deps.html
new file mode 100644
index 000000000..db47befb4
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Deps.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Deps</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Deps
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>List all dependencies and their status.
+The output is given as follow:</p>
+
+<ul>
+<li>APP [VERSION] SCM: LOCATION
+[locked at REF]
+STATUS</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(_)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/deps.ex#L18" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Do.html b/docs/stable/Mix.Tasks.Do.html
new file mode 100644
index 000000000..7df2c7fff
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Do.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Do</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Do
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Executes the commands separated by comma.</p>
+
+<h2>Examples</h2>
+
+<p>The example below prints the available compilers and
+then the list of dependencies.</p>
+
+<pre><code>mix do compile --list, deps
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/do.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/do.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Escriptize.html b/docs/stable/Mix.Tasks.Escriptize.html
new file mode 100644
index 000000000..4b953bc4c
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Escriptize.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Escriptize</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Escriptize
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Generates an escript for the project.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><p><code>--force</code> forces compilation regardless of mod times</p></li>
+<li><p><code>--no-compile</code> skips compilation to .beam</p></li>
+</ul>
+
+<h2>Configuration</h2>
+
+<p>The following options can be specified in your mix.exs file:</p>
+
+<ul>
+<li><p><code>escript_name</code> - the name of the generated escript
+Defaults to project name</p></li>
+<li><p><code>escript_path</code> - the path to write the escript to
+Defaults to project name</p></li>
+<li><p><code>escript_main_module</code> - the module containing the main/1 function.
+Defaults to <code>Project</code></p></li>
+<li><p><code>escript_embed_elixir</code> - if true embed elixir in the escript file.
+Defaults to true</p></li>
+<li><p><code>escript_embed_extra_apps</code> - embed additional Elixir applications
+if <code>escript_embed_elixir</code> is true.
+Defaults to []</p></li>
+<li><p><code>escript_shebang</code>
+Defaults to &quot;#! /usr/bin/env escript\n&quot;</p></li>
+<li><p><code>escript_comment</code>
+Defaults to &quot;%%\n&quot;</p></li>
+<li><p><code>escript_emu_args</code> - emulator arguments to embed in the escript file
+Defaults to &quot;%%!\n&quot;</p></li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/escriptize.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/escriptize.ex#L46" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Help.html b/docs/stable/Mix.Tasks.Help.html
new file mode 100644
index 000000000..81afe6f4c
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Help.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Help</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Help
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>If given a task name, prints the documentation for that task.
+If no task name is given, prints the short form documentation
+for all tasks.</p>
+
+<h2>Arguments</h2>
+
+<pre><code>mix help      - prints all tasks and their shortdoc
+mix help TASK - prints full docs for the given task
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/help.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(list1)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/help.ex#L18" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Loadpaths.html b/docs/stable/Mix.Tasks.Loadpaths.html
new file mode 100644
index 000000000..4d510536f
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Loadpaths.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Loadpaths</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Loadpaths
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Load the application and its dependencies paths.</p>
+
+<h2>Configuration</h2>
+
+<ul>
+<li><code>:load_paths</code> extra load paths to be added.
+They are added with lower priority than the app ones.</li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/loadpaths.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/loadpaths.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Local.Install.html b/docs/stable/Mix.Tasks.Local.Install.html
new file mode 100644
index 000000000..ade965f69
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Local.Install.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Local.Install</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Local.Install
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Install a task locally.</p>
+
+<p>The task can be either a local beam file or a beam
+file located at some URL.</p>
+
+<pre><code>mix local.install http://example.com/some_task.beam
+</code></pre>
+
+<p>After installed, the task can be invoked locally:</p>
+
+<pre><code>mix some_task
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.install.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(argv)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.install.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Local.Rebar.html b/docs/stable/Mix.Tasks.Local.Rebar.html
new file mode 100644
index 000000000..087732872
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Local.Rebar.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Local.Rebar</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Local.Rebar
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Fetch a copy of rebar from the given path or url, defaulting to
+<a href="https://github.com/downloads/basho/rebar/rebar">https://github.com/downloads/basho/rebar/rebar</a> if no parameter
+given. The local copy is stored in your MIX_HOME (defaults to ~/.mix).</p>
+
+<p>This version of rebar will be used as required by mix deps.compile</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.rebar.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#local_rebar_path/0">local_rebar_path/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="local_rebar_path/0">
+    <strong>local_rebar_path()</strong>
+  </p>
+  <div class="docstring"><p>Return the path to the local copy of rebar. Used when building deps</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.rebar.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(argv)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.rebar.ex#L25" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Local.Uninstall.html b/docs/stable/Mix.Tasks.Local.Uninstall.html
new file mode 100644
index 000000000..32c11dea7
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Local.Uninstall.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Local.Uninstall</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Local.Uninstall
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Uninstall local tasks:</p>
+
+<pre><code>mix local.uninstall task_name
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.uninstall.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(argv)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.uninstall.ex#L13" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Local.html b/docs/stable/Mix.Tasks.Local.html
new file mode 100644
index 000000000..0a90bb393
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Local.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Local</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Local
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>List local tasks.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(list1)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/local.ex#L10" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.New.html b/docs/stable/Mix.Tasks.New.html
new file mode 100644
index 000000000..6ef24b5f3
--- /dev/null
+++ b/docs/stable/Mix.Tasks.New.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.New</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.New
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Creates a new Elixir project.
+It expects the path of the project as argument.</p>
+
+<pre><code>mix new PATH [--sup] [--module MODULE] [--umbrella]
+</code></pre>
+
+<p>A project at the given PATH  will be created. The
+application name and module name will be retrieved
+from the path, unless <code>--module</code> is given.</p>
+
+<p>A <code>--sup</code> option can be given to generate an
+app with a supervisor and an application module
+that starts the supervisor.</p>
+
+<p>An <code>--umbrella</code> option can be given to generate an
+umbrella project.</p>
+
+<h2>Examples</h2>
+
+<pre><code>mix new hello_world
+</code></pre>
+
+<p>Is equivalent to:</p>
+
+<pre><code>mix new hello_world --module HelloWorld
+</code></pre>
+
+<p>To generate an app with supervisor and application behaviours:</p>
+
+<pre><code>mix new hello_world --sup
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/new.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(argv)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/new.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Run.html b/docs/stable/Mix.Tasks.Run.html
new file mode 100644
index 000000000..fdbf92396
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Run.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Run</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Run
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Run the given expression in the application context.</p>
+
+<p>Before running the code, it invokes the app.start task
+which defaults to compile and load your project.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--require</code>, <code>-r</code> - Requires pattern before running the command</li>
+<li><code>--parallel-require</code>, <code>-pr</code> - Requires pattern in parallel</li>
+<li><code>--no-halt</code> - Does not halt the system after running the command</li>
+<li><code>--no-compile</code> - Do not compile even if files require compilation;</li>
+<li><code>--no-start</code> - Do not start applications after compilation;</li>
+</ul>
+
+<h2>Examples</h2>
+
+<pre><code>mix run Hello.world
+mix run &quot;Some.function with_args&quot;
+</code></pre>
+
+<p>Command line options given to the <code>elixir</code> executable can be passed as:</p>
+
+<pre><code>elixir --sname hello -S mix run &quot;My.code&quot;
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/run.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/run.ex#L30" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Tasks.Test.html b/docs/stable/Mix.Tasks.Test.html
new file mode 100644
index 000000000..b591fe753
--- /dev/null
+++ b/docs/stable/Mix.Tasks.Test.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Tasks.Test</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Tasks.Test
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Run the tests for a project.</p>
+
+<p>This task will preload the <code>test/test_helper.exs</code> which
+should do all testing setup and then require all files
+that matches the given <code>test_pattern</code> in parallel.</p>
+
+<p>Before running tests, it invokes the prepare task
+which defaults to compile and load your project.</p>
+
+<p>A list of files can be given after the task name in
+order to select the files to compile.</p>
+
+<h2>Command line options</h2>
+
+<ul>
+<li><code>--cover</code> - the directory to include coverage results;</li>
+<li><code>--force</code> - forces compilation regardless of module times;</li>
+<li><code>--quick</code>, <code>-q</code> - only compile files that changed;</li>
+<li><code>--no-compile</code> - do not compile even if files require compilation;</li>
+<li><code>--no-start</code> - do not start applications after compilation;</li>
+</ul>
+
+<h2>Configuration</h2>
+
+<ul>
+<li><p><code>:test_paths</code> - path containing tests.
+Defaults to <code>[&quot;test&quot;]</code>.</p></li>
+<li><p><code>:test_pattern</code> - a pattern to load test files.
+Defaults to <code>*_test.exs</code>.</p></li>
+<li><p><code>:test_helper</code> - a file that sets up whatever is necessary
+for testing. Defaults to <code>test/test_helper.exs</code>.</p></li>
+<li><p><code>:test_coverage</code> - the directory to include test coverage results.
+Defaults to nil.</p></li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/test.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#run/1">run/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="run/1">
+    <strong>run(args)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/tasks/test.ex#L43" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.Utils.html b/docs/stable/Mix.Utils.html
new file mode 100644
index 000000000..ed46b00d5
--- /dev/null
+++ b/docs/stable/Mix.Utils.html
@@ -0,0 +1,351 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix.Utils</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix.Utils
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Utilities used throughout Mix and tasks.</p>
+
+<h2>Conversions</h2>
+
+<p>This module handles two types of conversions:</p>
+
+<ul>
+<li><p>From command names to module names, i.e. how the command
+<code>deps.get</code> translates to <code>Deps.Get</code> and vice-versa;</p></li>
+<li><p>From underscore to camelize, i.e. how the file path
+<code>my_project</code> translates to <code>MyProject</code>;</p></li>
+</ul>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#camelize/1">camelize/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#command_to_module/2">command_to_module/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#command_to_module_name/1">command_to_module_name/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#config_merge/2">config_merge/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#extract_files/2">extract_files/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#extract_stale/2">extract_stale/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#manifest/2">manifest/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#mix_home/0">mix_home/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#mix_path/0">mix_path/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#module_name_to_command/2">module_name_to_command/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#read_path/1">read_path/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#relative_to_cwd/1">relative_to_cwd/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#source/1">source/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#stale?/2">stale?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#underscore/1">underscore/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="camelize/1">
+    <strong>camelize(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Converts the given string to camelize format.</p>
+
+<h2>Examples</h2>
+
+<pre><code>Mix.Utils.camelize &quot;foo_bar&quot; #=&gt; &quot;FooBar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L233" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="command_to_module/2">
+    <strong>command_to_module(command, at // Elixir)</strong>
+  </p>
+  <div class="docstring"><p>Takes a <code>command</code> name and try to load a module
+with the command name converted to a module name
+in the given <code>at</code> scope.</p>
+
+<p>Returns <code>{ :module, module }</code> in case a module
+exists and is loaded, <code>{ :error, reason }</code> otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>Mix.Utils.command_to_module(&quot;compile&quot;, Mix.Tasks)
+#=&gt; { :module, Mix.Tasks.Compile }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L68" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="command_to_module_name/1">
+    <strong>command_to_module_name(s)</strong>
+  </p>
+  <div class="docstring"><p>Takes a command and converts it to a module name format.</p>
+
+<h2>Examples</h2>
+
+<pre><code>command_to_module_name(&quot;compile.elixir&quot;)
+#=&gt; &quot;Compile.Elixir&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L310" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="config_merge/2">
+    <strong>config_merge(old, new)</strong>
+  </p>
+  <div class="docstring"><p>Merges two configs recursively, merging keyword lists
+and concatenating normal lists.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L155" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="extract_files/2">
+    <strong>extract_files(paths, exts_or_pattern)</strong>
+  </p>
+  <div class="docstring"><p>Extract files from a list of paths.</p>
+
+<p>In case any of the paths is a directory, the directory is looped
+recursively searching for the given extensions or the given pattern.
+When looking up directories, files starting with &quot;.&quot; are ignored.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L133" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="extract_stale/2">
+    <strong>extract_stale(sources, targets)</strong>
+  </p>
+  <div class="docstring"><p>Extract all stale sources compared to the given targets.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L84" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="manifest/2">
+    <strong>manifest(file, fun)</strong>
+  </p>
+  <div class="docstring"><p>Generates a manifest containing all files generated
+during a given compilation step. It receives the manifest
+file name and a function to execute. The result of the
+function is compared to the manifest in order do detect
+the files removed from the manifest file.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L115" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="mix_home/0">
+    <strong>mix_home()</strong>
+  </p>
+  <div class="docstring"><p>Gets the mix home. It defaults to <code>~/.mix</code> unless the
+MIX_HOME environment variable is set.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L21" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="mix_path/0">
+    <strong>mix_path()</strong>
+  </p>
+  <div class="docstring"><p>Gets all extra paths defined in the environment variable
+MIX<em>PATH. MIX</em>PATH may contain multiple paths. If on windows,
+those paths should be separated by <code>;</code>, if on unix systems,
+use <code>:</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L31" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="module_name_to_command/2">
+    <strong>module_name_to_command(module, nesting // 0)</strong>
+  </p>
+  <div class="docstring"><p>Takes a module and converts it to a command. The nesting
+argument can be given in order to remove the nesting of
+module.</p>
+
+<h2>Examples</h2>
+
+<pre><code>module_name_to_command(Mix.Tasks.Compile, 2)
+#=&gt; &quot;compile&quot;
+
+module_name_to_command(&quot;Mix.Tasks.Compile.Elixir&quot;, 2)
+#=&gt; &quot;compile.elixir&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L290" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="read_path/1">
+    <strong>read_path(path)</strong>
+  </p>
+  <div class="docstring"><p>Opens and reads content from either a URL or a local filesystem path.
+Used by local.install and local.rebar.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L332" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="relative_to_cwd/1">
+    <strong>relative_to_cwd(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns the given path string relative to the current
+working directory.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L269" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="source/1">
+    <strong>source(module)</strong>
+  </p>
+  <div class="docstring"><p>Gets the source location of a module as a binary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="stale?/2">
+    <strong>stale?(sources, targets)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if any of the sources are stale
+compared to the given target.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L77" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="underscore/1">
+    <strong>underscore(atom)</strong>
+  </p>
+  <div class="docstring"><p>Converts the given atom or binary to underscore format.</p>
+
+<p>If an atom is given, it is assumed to be an Elixir module,
+so it is converted to a binary and then processed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>Mix.Utils.underscore &quot;FooBar&quot;  #=&gt; &quot;foo_bar&quot;
+Mix.Utils.underscore &quot;Foo.Bar&quot; #=&gt; &quot;foo/bar&quot;
+Mix.Utils.underscore Foo.Bar   #=&gt; &quot;foo/bar&quot;
+</code></pre>
+
+<p>In general, underscore can be thought as the reverse of
+camelize, however, in some cases formatting may be lost:</p>
+
+<pre><code>Mix.Utils.underscore &quot;SAPExample&quot;  #=&gt; &quot;sap_example&quot;
+Mix.Utils.camelize   &quot;sap_example&quot; #=&gt; &quot;SapExample&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix/utils.ex#L192" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Mix.html b/docs/stable/Mix.html
new file mode 100644
index 000000000..47cc98b28
--- /dev/null
+++ b/docs/stable/Mix.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Mix</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Mix
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Mix is a build tool that provides tasks for creating, compiling, testing
+(and soon deploying) Elixir projects. Mix is inspired by the Leiningen
+build tool for Clojure and was written by one of its contributors.</p>
+
+<p>This module works as a facade for accessing the most common functionality
+in Elixir, as the shell and the current project configuration.</p>
+
+<p>For getting started with Elixir, checkout out the guide available in
+<a href="http://elixir-lang.org">Elixir&#39;s website</a>.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#env/0">env/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#env/1">env/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#loadpaths/0">loadpaths/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#project/0">project/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#shell/0">shell/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#shell/1">shell/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="env/0">
+    <strong>env()</strong>
+  </p>
+  <div class="docstring"><p>Returns the mix environment.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix.ex#L34" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="env/1">
+    <strong>env(env)</strong>
+  </p>
+  <div class="docstring"><p>Changes the current mix env. Project configuration loaded
+per environment is not going to be reloaded.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix.ex#L42" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="loadpaths/0">
+    <strong>loadpaths()</strong>
+  </p>
+  <div class="docstring"><p>Starts mix and loads the project and dependencies into
+one step. Useful when invoking mix from an external tool.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix.ex#L58" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="project/0">
+    <strong>project()</strong>
+  </p>
+  <div class="docstring"><p>Retrieves the current project configuration. If there
+isn&#39;t a project defined, this function will simply
+return an empty keyword list. This allows many mix
+tasks to work without a need for an underlying project.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix.ex#L88" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="shell/0">
+    <strong>shell()</strong>
+  </p>
+  <div class="docstring"><p>The shell is a wrapper for doing IO.</p>
+
+<p>It contains conveniences for asking the user information,
+printing status and so forth. The fact it is also swappable
+allow developers to use a test shell, that simply sends the
+messages to the current process.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix.ex#L71" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="shell/1">
+    <strong>shell(shell)</strong>
+  </p>
+  <div class="docstring"><p>Sets the current shell.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/mix/lib/mix.ex#L78" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Module.html b/docs/stable/Module.html
new file mode 100644
index 000000000..5dea0302b
--- /dev/null
+++ b/docs/stable/Module.html
@@ -0,0 +1,572 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Module</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Module
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module provides many functions to deal with modules during
+compilation time. It allows a developer to dynamically attach
+documentation, add, delete and register attributes and so forth.</p>
+
+<p>After the module is compiled, using many of the functions in
+this module will raise errors, since it is out of their purpose
+to inspect runtime data. Most of the runtime data can be inspected
+via the <code>__info__(attr)</code> function attached to each compiled module.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#add_doc/6">add_doc/6</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#concat/1">concat/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#concat/2">concat/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#create/3">create/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defines?/2">defines?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defines?/3">defines?/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#definitions_in/1">definitions_in/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#definitions_in/2">definitions_in/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete_attribute/2">delete_attribute/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#eval_quoted/4">eval_quoted/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_attribute/2">get_attribute/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#make_overridable/2">make_overridable/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#open?/1">open?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#overridable?/2">overridable?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_attribute/3">put_attribute/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#register_attribute/3">register_attribute/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#safe_concat/1">safe_concat/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#safe_concat/2">safe_concat/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/1">split/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_binary/1">to_binary/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="add_doc/6">
+    <strong>add_doc(module, line, kind, tuple, signature, doc)</strong>
+  </p>
+  <div class="docstring"><p>Attaches documentation to a given function. It expects
+the module the function belongs to, the line (a non negative
+integer), the kind (def or defmacro), a tuple representing
+the function and its arity and the documentation, which should
+be either a binary or a boolean.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule MyModule do
+  Module.add_doc(__MODULE__, __ENV__.line + 1, :def, { :version, 0 }, [], &quot;Manually added docs&quot;)
+  def version, do: 1
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L202" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="concat/1">
+    <strong>concat(list)</strong>
+  </p>
+  <div class="docstring"><p>Concatenates the list of aliases and returns a new alias.
+It handles char lists, binaries and atoms.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Module.concat([Foo, Bar])
+Foo.Bar
+iex&gt; Module.concat([Foo, &quot;Bar&quot;])
+Foo.Bar
+iex&gt; Module.concat([Foo, &#39;Bar&#39;])
+Foo.Bar
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L127" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="concat/2">
+    <strong>concat(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Concatenates the two given aliases and returns a new alias.
+It handles char lists, binaries and atoms.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Module.concat(Foo, Bar)
+Foo.Bar
+iex&gt; Module.concat(Foo, &quot;Bar&quot;)
+Foo.Bar
+iex&gt; Module.concat(Foo, &#39;Bar&#39;)
+Foo.Bar
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L145" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="create/3">
+    <strong>create(module, quoted, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Creates a module with the given name and given by
+the given quoted expressions. The line where the module
+is defined and its file can be given as options.</p>
+
+<h2>Examples</h2>
+
+<pre><code>contents =
+  quote do
+    def world, do: true
+  end
+
+Module.create(Hello, contents, __ENV__.location)
+
+Hello.world #=&gt; true
+</code></pre>
+
+<h2>Differences with <code>defmodule</code></h2>
+
+<p><code>Module.create</code> works similarly to <code>defmodule</code> and
+return the same results. While one could also use
+<code>defmodule</code> to define modules dynamically, this
+function is preferred when the module body is given
+by a quoted expression.</p>
+
+<p>Another important distinction is that <code>Module.create</code>
+allows you to control the environment variables used
+when defining the module, while <code>defmodule</code> automatically
+shares the same environment.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L102" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defines?/2">
+    <strong>defines?(module, tuple)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the module defines the given function or macro.
+Use <code>defines?/3</code> to assert for an specific type.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Example do
+  Module.defines? __MODULE__, { :version, 0 } #=&gt; false
+  def version, do: 1
+  Module.defines? __MODULE__, { :version, 0 } #=&gt; true
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L297" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defines?/3">
+    <strong>defines?(module, tuple, kind)</strong>
+  </p>
+  <div class="docstring"><p>Checks if the module defines a function or macro with the
+given <code>kind</code>. <code>kind</code> can be either <code>:def</code>, <code>:defp</code>,
+<code>:defmacro</code> or <code>:defmacrop</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Example do
+  Module.defines? __MODULE__, { :version, 0 }, :defp #=&gt; false
+  def version, do: 1
+  Module.defines? __MODULE__, { :version, 0 }, :defp #=&gt; false
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L317" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="definitions_in/1">
+    <strong>definitions_in(module)</strong>
+  </p>
+  <div class="docstring"><p>Return all functions defined in the given module.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Example do
+  def version, do: 1
+  Module.definitions_in __MODULE__ #=&gt; [{:version,1}]
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L337" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="definitions_in/2">
+    <strong>definitions_in(module, kind)</strong>
+  </p>
+  <div class="docstring"><p>Returns all functions defined in te given module according
+to its kind.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Example do
+  def version, do: 1
+  Module.definitions_in __MODULE__, :def  #=&gt; [{:version,1}]
+  Module.definitions_in __MODULE__, :defp #=&gt; []
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L356" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete_attribute/2">
+    <strong>delete_attribute(module, key)</strong>
+  </p>
+  <div class="docstring"><p>Deletes all attributes that matches the given key.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule MyModule do
+  Module.put_attribute __MODULE__, :custom_threshold_for_lib, 10
+  Module.delete_attribute __MODULE__, :custom_threshold_for_lib
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L467" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="eval_quoted/4">
+    <strong>eval_quoted(module, quoted, binding // [], opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Evaluates the quoted contents in the given module&#39;s context.</p>
+
+<p>A list of environment options can also be given as argument.
+See <code>Code.eval_string</code> for more information.</p>
+
+<p>Raises an error if the module was already compiled.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Foo do
+  contents = quote do: (def sum(a, b), do: a + b)
+  Module.eval_quoted __MODULE__, contents
+end
+
+Foo.sum(1, 2) #=&gt; 3
+</code></pre>
+
+<p>For convenience, you can my pass <code>__ENV__</code> as argument and
+all options will be automatically extracted from the environment:</p>
+
+<pre><code>defmodule Foo do
+  contents = quote do: (def sum(a, b), do: a + b)
+  Module.eval_quoted __MODULE__, contents, [], __ENV__
+end
+
+Foo.sum(1, 2) #=&gt; 3
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L58" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_attribute/2">
+    <strong>get_attribute(module, key)</strong>
+  </p>
+  <div class="docstring"><p>Gets the given attribute from a module. If the attribute
+was marked as accumulate with <code>Module.register_attribute</code>,
+a list is always returned.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule Foo do
+  Module.put_attribute __MODULE__, :value, 1
+  Module.get_attribute __MODULE__, :value #=&gt; 1
+
+  Module.register_attribute __MODULE__, :value, accumulate: true
+  Module.put_attribute __MODULE__, :value, 1
+  Module.get_attribute __MODULE__, :value #=&gt; [1]
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L444" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="make_overridable/2">
+    <strong>make_overridable(module, tuples)</strong>
+  </p>
+  <div class="docstring"><p>Makes the given functions in the given module overridable.
+An overridable function is lazily defined, allowing a
+developer to customize it.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L367" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="open?/1">
+    <strong>open?(module)</strong>
+  </p>
+  <div class="docstring"><p>Check if a module is open, i.e. it is currently being defined
+and its attributes and functions can be modified.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L25" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="overridable?/2">
+    <strong>overridable?(module, tuple)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the given tuple in module is marked as overridable.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L392" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_attribute/3">
+    <strong>put_attribute(module, key, value)</strong>
+  </p>
+  <div class="docstring"><p>Puts an Erlang attribute to the given module with the given
+key and value. The semantics of putting the attribute depends
+if the attribute was registered or not via <code>register_attribute/2</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule MyModule do
+  Module.put_attribute __MODULE__, :custom_threshold_for_lib, 10
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L408" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="register_attribute/3">
+    <strong>register_attribute(module, new, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Registers an attribute. By registering an attribute, a developer
+is able to customize how Elixir will store and accumulate the
+attribute values.</p>
+
+<h2>Options</h2>
+
+<p>When registering an attribute, two options can be given:</p>
+
+<ul>
+<li><p><code>:accumulate</code> - Several calls to the same attribute will
+accumulate instead of override the previous one. New attributes
+are always added to the top of the accumulated list.</p></li>
+<li><p><code>:persist</code> - The attribute will be persisted in the Erlang
+Abstract Format. Useful when interfacing with Erlang libraries.</p></li>
+</ul>
+
+<p>By default, both options are true. Which means that registering
+an attribute without passing any options will revert the attribute
+behavior to exactly the same expected in :</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule MyModule do
+  Module.register_attribute __MODULE__,
+    :custom_threshold_for_lib,
+    accumulate: true, persist: false
+
+  @custom_threshold_for_lib 10
+  @custom_threshold_for_lib 20
+  @custom_threshold_for_lib #=&gt; [20, 10]
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L506" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="safe_concat/1">
+    <strong>safe_concat(list)</strong>
+  </p>
+  <div class="docstring"><p>Concatenates the list aliases and returns a new alias only
+if the alias was already referenced. If the alias was not
+referenced yet, fails with ArgumentError.
+It handles char lists, binaries and atoms.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Module.safe_concat([Unknown, Module])
+** (ArgumentError) argument error
+
+iex&gt; Module.safe_concat([List, Chars])
+List.Chars
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L164" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="safe_concat/2">
+    <strong>safe_concat(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Concatenates the two aliases and returns a new alias only
+if the alias was already referenced. If the alias was not
+referenced yet, fails with ArgumentError.
+It handles char lists, binaries and atoms.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Module.safe_concat(Unknown, Module)
+** (ArgumentError) argument error
+
+iex&gt; Module.safe_concat(List, Chars)
+List.Chars
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L183" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/1">
+    <strong>split(module)</strong>
+  </p>
+  <div class="docstring"><p>Split the given module name into binary parts.</p>
+
+<h2>Examples</h2>
+
+<pre><code>Module.split Very.Long.Module.Name.And.Even.Longer
+#=&gt; [&quot;Very&quot;, &quot;Long&quot;, &quot;Module&quot;, &quot;Name&quot;, &quot;And&quot;, &quot;Even&quot;, &quot;Longer&quot;]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L530" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_binary/1">
+    <strong>to_binary(module)</strong>
+  </p>
+  <div class="docstring"><p>Convert a module name to binary without the Elixir prefix.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/module.ex#L537" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Node.html b/docs/stable/Node.html
new file mode 100644
index 000000000..8bb1aaccd
--- /dev/null
+++ b/docs/stable/Node.html
@@ -0,0 +1,340 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Node</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Node
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Functions related to Erlang nodes.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#alive?/0">alive?/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#connect/1">connect/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#disconnect/1">disconnect/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_cookie/0">get_cookie/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list/0">list/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list/1">list/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#monitor/2">monitor/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#monitor/3">monitor/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#self/0">self/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#set_cookie/2">set_cookie/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/2">spawn/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/3">spawn/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/4">spawn/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/5">spawn/5</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn_link/2">spawn_link/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn_link/4">spawn_link/4</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="alive?/0">
+    <strong>alive?()</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the local node is alive; that is, if the node can be
+part of a distributed system. Otherwise, it returns false.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L21" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="connect/1">
+    <strong>connect(node)</strong>
+  </p>
+  <div class="docstring"><p>Establishes a connection to Node. Returns true if successful,
+false if not, and the atom <code>:ignored</code> if the local node is not
+alive.</p>
+
+<p>See <a href="http://erlang.org/doc/man/net_kernel.html#connect_node-1">http://erlang.org/doc/man/net_kernel.html#connect_node-1</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L90" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="disconnect/1">
+    <strong>disconnect(node)</strong>
+  </p>
+  <div class="docstring"><p>Forces the disconnection of a node. This will appear to the <code>node</code> as if
+the local node has crashed. This BIF is mainly used in the Erlang network
+authentication protocols. Returns true if disconnection succeeds, otherwise
+false. If the local node is not alive, the function returns ignored.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#disconnect_node-1">http://www.erlang.org/doc/man/erlang.html#disconnect_node-1</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L78" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_cookie/0">
+    <strong>get_cookie()</strong>
+  </p>
+  <div class="docstring"><p>Returns the magic cookie of the local node, if the node is alive;
+otherwise <code>:nocookie</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L183" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list/0">
+    <strong>list()</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of all visible nodes in the system, excluding
+the local node. Same as list(visible).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L30" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list/1">
+    <strong>list(args)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of nodes according to argument given. The result
+returned when the argument is a list, is the list of nodes
+satisfying the disjunction(s) of the list elements.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#nodes-1">http://www.erlang.org/doc/man/erlang.html#nodes-1</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L43" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="monitor/2">
+    <strong>monitor(node, flag)</strong>
+  </p>
+  <div class="docstring"><p>Monitors the status of the node. If flag is true, monitoring is
+turned on. If flag is false, monitoring is turned off.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#monitor_node-2">http://www.erlang.org/doc/man/erlang.html#monitor_node-2</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L54" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="monitor/3">
+    <strong>monitor(node, flag, options)</strong>
+  </p>
+  <div class="docstring"><p>Behaves as monitor<em>node/2 except that it allows an extra
+option to be given, namely :allow</em>passive_connect.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#monitor_node-3">http://www.erlang.org/doc/man/erlang.html#monitor_node-3</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L65" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="self/0">
+    <strong>self()</strong>
+  </p>
+  <div class="docstring"><p>Returns the current node. It returns the same as the built-in node().</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L12" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="set_cookie/2">
+    <strong>set_cookie(node // Node.self(), cookie)</strong>
+  </p>
+  <div class="docstring"><p>Sets the magic cookie of <code>node</code> to the atom <code>cookie</code>. The default node
+is <code>Node.self</code>, the local node. If node is the local node, the function also
+sets the cookie of all other unknown nodes to <code>cookie</code>.</p>
+
+<p>This function will raise <code>FunctionClauseError</code> if the given node is not alive.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L175" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/2">
+    <strong>spawn(node, fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of <code>fun</code>
+on <code>node</code>. If <code>node</code> does not exist, a useless pid is returned.</p>
+
+<p>Check <a href="http://www.erlang.org/doc/man/erlang.html#spawn-2">http://www.erlang.org/doc/man/erlang.html#spawn-2</a> for
+the list of available options.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L102" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/3">
+    <strong>spawn(node, fun, opts)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of <code>fun</code>
+on <code>node</code>. If <code>node</code> does not exist, a useless pid is returned.</p>
+
+<p>Check <a href="http://www.erlang.org/doc/man/erlang.html#spawn_opt-3">http://www.erlang.org/doc/man/erlang.html#spawn_opt-3</a> for
+the list of available options.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L114" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/4">
+    <strong>spawn(node, module, fun, args)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of
+<code>module.function(args)</code> on <code>node</code>. If <code>node</code> does not exists,
+a useless pid is returned.</p>
+
+<p>Check <a href="http://www.erlang.org/doc/man/erlang.html#spawn-4">http://www.erlang.org/doc/man/erlang.html#spawn-4</a> for
+the list of available options.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L127" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/5">
+    <strong>spawn(node, module, fun, args, opts)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of
+<code>module.function(args)</code> on <code>node</code>. If <code>node</code> does not exists,
+a useless pid is returned.</p>
+
+<p>Check <a href="http://www.erlang.org/doc/man/erlang.html#spawn_opt-5">http://www.erlang.org/doc/man/erlang.html#spawn_opt-5</a> for
+the list of available options.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L140" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn_link/2">
+    <strong>spawn_link(node, fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of <code>fun</code>
+on <code>node</code>. A link is created between the calling process and the
+new process, atomically. If <code>node</code> does not exist, a useless pid is returned
+(and due to the link, an exit signal with exit reason :noconnection will be
+received).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L152" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn_link/4">
+    <strong>spawn_link(node, module, fun, args)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of
+<code>module.function(args)</code> on <code>node</code>. A link is created between the calling
+process and the new process, atomically. If <code>node</code> does not exist, a useless
+pid is returned (and due to the link, an exit signal with exit reason
+:noconnection will be received).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/node.ex#L164" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/OptionParser.html b/docs/stable/OptionParser.html
new file mode 100644
index 000000000..df2a1db42
--- /dev/null
+++ b/docs/stable/OptionParser.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>OptionParser</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        OptionParser
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/option_parser.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#parse/2">parse/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse_head/2">parse_head/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="parse/2">
+    <strong>parse(argv, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Parses the argv and returns one tuple with parsed options
+and the arguments.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; OptionParser.parse([&quot;--debug&quot;])
+{ [debug: true], [] }
+
+iex&gt; OptionParser.parse([&quot;--source&quot;, &quot;lib&quot;])
+{ [source: &quot;lib&quot;], [] }
+
+iex&gt; OptionParser.parse([&quot;--source&quot;, &quot;lib&quot;, &quot;test/enum_test.exs&quot;, &quot;--verbose&quot;])
+{ [source: &quot;lib&quot;, verbose: true], [&quot;test/enum_test.exs&quot;] }
+</code></pre>
+
+<h2>Aliases</h2>
+
+<p>A set of aliases can be given as second argument:</p>
+
+<pre><code>iex&gt; OptionParser.parse([&quot;-d&quot;], aliases: [d: :debug])
+{ [debug: true], [] }
+</code></pre>
+
+<h2>Switches</h2>
+
+<p>Extra information about switches can be given as argument too.
+This is useful in order to say a switch must behave as a boolean
+or if duplicated switches should be kept, overriden or accumulated.</p>
+
+<p>The following types are supported:</p>
+
+<ul>
+<li><code>:boolean</code> - Mark the given switch as boolean. Boolean switches
+           never consumes the following value unless it is
+           true or false;</li>
+</ul>
+
+<p>The following extra options are supported:</p>
+
+<ul>
+<li><code>:keep</code> - Keep duplicated items in the list instead of overriding;</li>
+</ul>
+
+<p>Examples:</p>
+
+<pre><code>iex&gt; OptionParser.parse([&quot;--unlock&quot;, &quot;path/to/file&quot;], switches: [unlock: :boolean])
+{ [unlock: true], [&quot;path/to/file&quot;] }
+
+iex&gt; OptionParser.parse([&quot;--unlock&quot;, &quot;false&quot;, &quot;path/to/file&quot;], switches: [unlock: :boolean])
+{ [unlock: false], [&quot;path/to/file&quot;] }
+</code></pre>
+
+<h2>Negation switches</h2>
+
+<p>Any switches starting with <code>--no-</code> are always considered to be
+booleans and never parse the next value:</p>
+
+<pre><code>iex&gt; OptionParser.parse([&quot;--no-op&quot;, &quot;path/to/file&quot;])
+{ [no_op: true], [&quot;path/to/file&quot;] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/option_parser.ex#L57" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse_head/2">
+    <strong>parse_head(argv, opts // [])</strong>
+  </p>
+  <div class="docstring"><p>Similar to parse but only parses the head of the argv.
+I.e. as soon as it finds a non switch, it stops parsing.</p>
+
+<p>Check <code>parse/2</code> for more info.</p>
+
+<h2>Example</h2>
+
+<pre><code>iex&gt; OptionParser.parse_head([&quot;--source&quot;, &quot;lib&quot;, &quot;test/enum_test.exs&quot;, &quot;--verbose&quot;])
+{ [source: &quot;lib&quot;], [&quot;test/enum_test.exs&quot;, &quot;--verbose&quot;] }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/option_parser.ex#L73" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Path.html b/docs/stable/Path.html
new file mode 100644
index 000000000..1d78855fa
--- /dev/null
+++ b/docs/stable/Path.html
@@ -0,0 +1,535 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Path</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Path
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module provides conveniences for manipulating or
+retrieving file system paths.</p>
+
+<p>The functions in this module may receive a char list or
+a binary as argument and will return a value of the same
+type.</p>
+
+<p>The majority of the functions in this module do not
+interact with the file system, except for a few functions
+that require it (like <code>Path.wildcard</code> and <code>Path.expand</code>).</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#absname/1">absname/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#absname/2">absname/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#basename/1">basename/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#basename/2">basename/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#dirname/1">dirname/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#expand/1">expand/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#expand/2">expand/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#extname/1">extname/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#join/1">join/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#join/2">join/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#relative/1">relative/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#relative_to/2">relative_to/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rootname/1">rootname/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rootname/2">rootname/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/1">split/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#type/1">type/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#wildcard/1">wildcard/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="absname/1">
+    <strong>absname(path)</strong>
+  </p>
+  <div class="docstring"><p>Converts the given path to an absolute one. Differently from
+<code>Path.expand/1</code>, no attempt is made to resolve <code>..</code>, <code>.</code> or <code>~</code>.</p>
+
+<h2>Unix examples</h2>
+
+<pre><code>Path.absname(&quot;foo&quot;)
+#=&gt; &quot;/usr/local/foo&quot;
+
+Path.absname(&quot;../x&quot;)
+#=&gt; &quot;/usr/local/../x&quot;
+</code></pre>
+
+<h2>Windows</h2>
+
+<pre><code>Path.absname(&quot;foo&quot;).
+&quot;D:/usr/local/foo&quot;
+Path.absname(&quot;../x&quot;).
+&quot;D:/usr/local/../x&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L40" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="absname/2">
+    <strong>absname(path, relative_to)</strong>
+  </p>
+  <div class="docstring"><p>Builds a path from <code>relative_to</code> to <code>path</code>. If <code>path</code> is already
+an absolute path, <code>relative_to</code> is ignored. See also <code>Path.relative/2</code>.</p>
+
+<p>Differently from <code>Path.expand/2</code>, no attempt is made to
+resolve <code>..</code>, <code>.</code> or <code>~</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.absname(&quot;foo&quot;, &quot;bar&quot;)
+&quot;bar/foo&quot;
+
+iex&gt; Path.absname(&quot;../x&quot;, &quot;bar&quot;)
+&quot;bar/../x&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L60" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="basename/1">
+    <strong>basename(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns the last component of the path or the path
+itself if it does not contain any directory separators.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.basename(&quot;foo&quot;)
+&quot;foo&quot;
+
+iex&gt; Path.basename(&quot;foo/bar&quot;)
+&quot;bar&quot;
+
+iex&gt; Path.basename(&quot;/&quot;)
+&quot;&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L255" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="basename/2">
+    <strong>basename(path, extension)</strong>
+  </p>
+  <div class="docstring"><p>Returns the last component of <code>path</code> with the <code>extension</code>
+stripped. This function should be used to remove a specific
+extension which may, or may not, be there.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.basename(&quot;~/foo/bar.ex&quot;, &quot;.ex&quot;)
+&quot;bar&quot;
+iex&gt; Path.basename(&quot;~/foo/bar.exs&quot;, &quot;.ex&quot;)
+&quot;bar.exs&quot;
+iex&gt; Path.basename(&quot;~/foo/bar.old.ex&quot;, &quot;.ex&quot;)
+&quot;bar.old&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L274" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="dirname/1">
+    <strong>dirname(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns the directory component of <code>path</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>Path.dirname(&quot;/foo/bar.ex&quot;)
+#=&gt; &quot;/foo&quot;
+Path.dirname(&quot;/foo/bar/baz.ex&quot;)
+#=&gt; &quot;/foo/bar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L289" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="expand/1">
+    <strong>expand(path)</strong>
+  </p>
+  <div class="docstring"><p>Converts the path to an absolute one and expands
+any <code>.</code> and <code>..</code> characters and a leading <code>~</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.expand(&quot;/foo/bar/../bar&quot;)
+&quot;/foo/bar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L74" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="expand/2">
+    <strong>expand(path, relative_to)</strong>
+  </p>
+  <div class="docstring"><p>Expands the path relative to the path given as the second argument
+expanding any <code>.</code> and <code>..</code> characters. If the path is already an
+absolute path, <code>relative_to</code> is ignored.</p>
+
+<p>Note, that this function treats <code>path</code> with leading <code>~</code> as
+an absolute one.</p>
+
+<p>The second argument is first expanded to an absolute path.</p>
+
+<h2>Examples</h2>
+
+<pre><code># Assuming that the absolute path to baz is /quux/baz
+Path.expand(&quot;foo/bar/../bar&quot;, &quot;baz&quot;)
+#=&gt; &quot;/quux/baz/foo/bar&quot;
+
+iex&gt; Path.expand(&quot;foo/bar/../bar&quot;, &quot;/baz&quot;)
+&quot;/baz/foo/bar&quot;
+iex&gt; Path.expand(&quot;/foo/bar/../bar&quot;, &quot;/baz&quot;)
+&quot;/foo/bar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L100" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="extname/1">
+    <strong>extname(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns the extension of the last component of <code>path</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.extname(&quot;foo.erl&quot;)
+&quot;.erl&quot;
+iex&gt; Path.extname(&quot;~/foo/bar&quot;)
+&quot;&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L304" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="join/1">
+    <strong>join(list1)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string with one or more path components joined by the path separator.
+This function should be used to convert a list of strings to a path.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.join([&quot;~&quot;, &quot;foo&quot;])
+&quot;~/foo&quot;
+iex&gt; Path.join([&quot;foo&quot;])
+&quot;foo&quot;
+iex&gt; Path.join([&quot;/&quot;, &quot;foo&quot;, &quot;bar&quot;])
+&quot;/foo/bar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L353" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="join/2">
+    <strong>join(left, right)</strong>
+  </p>
+  <div class="docstring"><p>Joins two paths.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.join(&quot;foo&quot;, &quot;bar&quot;)
+&quot;foo/bar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L369" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="relative/1">
+    <strong>relative(name)</strong>
+  </p>
+  <div class="docstring"><p>Forces the path to be a relative path.</p>
+
+<h2>Unix examples</h2>
+
+<pre><code>Path.relative(&quot;/usr/local/bin&quot;)   #=&gt; &quot;usr/local/bin&quot;
+Path.relative(&quot;usr/local/bin&quot;)    #=&gt; &quot;usr/local/bin&quot;
+Path.relative(&quot;../usr/local/bin&quot;) #=&gt; &quot;../usr/local/bin&quot;
+</code></pre>
+
+<h2>Windows examples</h2>
+
+<pre><code>Path.relative(&quot;D:/usr/local/bin&quot;) #=&gt; &quot;usr/local/bin&quot;
+Path.relative(&quot;usr/local/bin&quot;)    #=&gt; &quot;usr/local/bin&quot;
+Path.relative(&quot;D:bar.ex&quot;)         #=&gt; &quot;bar.ex&quot;
+Path.relative(&quot;/bar/foo.ex&quot;)      #=&gt; &quot;bar/foo.ex&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L146" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="relative_to/2">
+    <strong>relative_to(path, from)</strong>
+  </p>
+  <div class="docstring"><p>Returns the given <code>path</code> relative to the given <code>from</code> path.
+In other words, it tries to strip the <code>from</code> prefix from <code>path</code>.</p>
+
+<p>This function does not query the file system, so it assumes
+no symlinks in between the paths.</p>
+
+<p>In case a direct relative path cannot be found, it returns
+the original path.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.relative_to(&quot;/usr/local/foo&quot;, &quot;/usr/local&quot;)
+&quot;foo&quot;
+iex&gt; Path.relative_to(&quot;/usr/local/foo&quot;, &quot;/&quot;)
+&quot;usr/local/foo&quot;
+iex&gt; Path.relative_to(&quot;/usr/local/foo&quot;, &quot;/etc&quot;)
+&quot;/usr/local/foo&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L214" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rootname/1">
+    <strong>rootname(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns the <code>path</code> with the <code>extension</code> stripped.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.rootname(&quot;/foo/bar&quot;)
+&quot;/foo/bar&quot;
+iex&gt; Path.rootname(&quot;/foo/bar.ex&quot;)
+&quot;/foo/bar&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L319" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rootname/2">
+    <strong>rootname(path, extension)</strong>
+  </p>
+  <div class="docstring"><p>Returns the <code>path</code> with the <code>extension</code> stripped. This function should be used to
+remove a specific extension which might, or might not, be there.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Path.rootname(&quot;/foo/bar.erl&quot;, &quot;.erl&quot;)
+&quot;/foo/bar&quot;
+iex&gt; Path.rootname(&quot;/foo/bar.erl&quot;, &quot;.ex&quot;)
+&quot;/foo/bar.erl&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L335" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/1">
+    <strong>split(path)</strong>
+  </p>
+  <div class="docstring"><p>Returns a list with the path split by the path separator.
+If an empty string is given, returns the root path.</p>
+
+<h2>Examples</h2>
+
+<pre><code> iex&gt; Path.split(&quot;&quot;)
+ [&quot;/&quot;]
+ iex&gt; Path.split(&quot;foo&quot;)
+ [&quot;foo&quot;]
+ iex&gt; Path.split(&quot;/foo/bar&quot;)
+ [&quot;/&quot;, &quot;foo&quot;, &quot;bar&quot;]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L436" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="type/1">
+    <strong>type(name)</strong>
+  </p>
+  <div class="docstring"><p>Returns the path type.</p>
+
+<h2>Unix examples</h2>
+
+<pre><code>Path.type(&quot;/usr/local/bin&quot;)   #=&gt; :absolute
+Path.type(&quot;usr/local/bin&quot;)    #=&gt; :relative
+Path.type(&quot;../usr/local/bin&quot;) #=&gt; :relative
+Path.type(&quot;~/file&quot;)           #=&gt; :relative
+</code></pre>
+
+<h2>Windows examples</h2>
+
+<pre><code>Path.type(&quot;D:/usr/local/bin&quot;) #=&gt; :absolute
+Path.type(&quot;usr/local/bin&quot;)    #=&gt; :relative
+Path.type(&quot;D:bar.ex&quot;)         #=&gt; :volumerelative
+Path.type(&quot;/bar/foo.ex&quot;)      #=&gt; :volumerelative
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L122" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="wildcard/1">
+    <strong>wildcard(glob)</strong>
+  </p>
+  <div class="docstring"><p>Traverses paths according to the given <code>glob</code> expression.</p>
+
+<p>The wildcard looks like an ordinary path, except that certain
+&quot;wildcard characters&quot; are interpreted in a special way. The
+following characters are special:</p>
+
+<ul>
+<li><code>?</code> - Matches one character.</li>
+<li><code>*</code> - Matches any number of characters up to the end of
+    the filename, the next dot, or the next slash.</li>
+<li><code>**</code> - Two adjacent <c>*</c>&#39;s used as a single pattern will
+     match all files and zero or more directories and subdirectories.</li>
+<li><code>[char1,char2,...]</code> - Matches any of the characters listed. Two characters
+                    separated by a hyphen will match a range of characters.</li>
+<li><code>{item1,item2,...}</code> - Matches one of the alternatives.</li>
+</ul>
+
+<p>Other characters represent themselves. Only paths that have
+exactly the same character in the same position will match. Note
+that matching is case-sensitive; i.e. &quot;a&quot; will not match &quot;A&quot;.</p>
+
+<h2>Examples</h2>
+
+<p>Imagine you have a directory called <code>projects</code> with three Elixir projects
+inside of it: <code>elixir</code>, <code>ex_doc</code> and <code>dynamo</code>. You can find all <code>.beam</code> files
+inside the ebin directory of each project as follows:</p>
+
+<pre><code>Path.wildcard(&quot;projects/*/ebin/**/*.beam&quot;)
+</code></pre>
+
+<p>If you want to search for both <code>.beam</code> and <code>.app</code> files, you could do:</p>
+
+<pre><code>Path.wildcard(&quot;projects/*/ebin/**/*.{beam,app}&quot;)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/path.ex#L473" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Port.html b/docs/stable/Port.html
new file mode 100644
index 000000000..692618c5a
--- /dev/null
+++ b/docs/stable/Port.html
@@ -0,0 +1,190 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Port</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Port
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Functions related to Erlang ports.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#call/3">call/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#close/1">close/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#command/3">command/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#connect/2">connect/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#control/3">control/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#info/1">info/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#info/2">info/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list/0">list/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#open/2">open/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="call/3">
+    <strong>call(port, operation, data)</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#port_call-3">http://www.erlang.org/doc/man/erlang.html#port_call-3</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L44" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="close/1">
+    <strong>close(port)</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#port_close-1">http://www.erlang.org/doc/man/erlang.html#port_close-1</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L16" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="command/3">
+    <strong>command(port, data, options // [])</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#port_command-2">http://www.erlang.org/doc/man/erlang.html#port_command-2</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L23" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="connect/2">
+    <strong>connect(port, pid)</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#port_connect-2">http://www.erlang.org/doc/man/erlang.html#port_connect-2</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L30" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="control/3">
+    <strong>control(port, operation, data)</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#port_control-3">http://www.erlang.org/doc/man/erlang.html#port_control-3</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L37" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="info/1">
+    <strong>info(port)</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#port_info-1">http://www.erlang.org/doc/man/erlang.html#port_info-1</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L51" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="info/2">
+    <strong>info(port, item)</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#port_info-2">http://www.erlang.org/doc/man/erlang.html#port_info-2</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L58" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list/0">
+    <strong>list()</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#ports-0">http://www.erlang.org/doc/man/erlang.html#ports-0</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L65" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="open/2">
+    <strong>open(name, settings)</strong>
+  </p>
+  <div class="docstring"><p>See <a href="http://www.erlang.org/doc/man/erlang.html#open_port-2">http://www.erlang.org/doc/man/erlang.html#open_port-2</a>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/port.ex#L9" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Process.html b/docs/stable/Process.html
new file mode 100644
index 000000000..c9199afbe
--- /dev/null
+++ b/docs/stable/Process.html
@@ -0,0 +1,590 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Process</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Process
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module provides convenience functions around processes and
+the process dictionary. In Erlang, most of these functions are
+auto-imported, but in Elixir they are grouped in a module for
+convenience. Notice that these functions, different from Erlang&#39;s,
+always return nil instead of undefined. You can use their Erlang
+version if you want the undefined value.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#alive?/1">alive?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete/0">delete/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#delete/1">delete/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#demonitor/2">demonitor/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#exit/2">exit/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#flag/2">flag/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#flag/3">flag/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/0">get/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get/2">get/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_keys/1">get_keys/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#group_leader/0">group_leader/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#group_leader/2">group_leader/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#info/1">info/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#info/2">info/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#link/1">link/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#list/0">list/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#monitor/1">monitor/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put/2">put/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#register/2">register/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#registered/0">registered/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/1">spawn/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/2">spawn/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/3">spawn/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn/4">spawn/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn_link/1">spawn_link/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn_link/3">spawn_link/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn_monitor/1">spawn_monitor/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#spawn_monitor/3">spawn_monitor/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unlink/1">unlink/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#unregister/1">unregister/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#whereis/1">whereis/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="alive?/1">
+    <strong>alive?(pid)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if the process exists and is alive, that is,
+is not exiting and has not exited. Otherwise, returns false.</p>
+
+<p><code>pid</code> must refer to a process at the local node.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L18" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete/0">
+    <strong>delete()</strong>
+  </p>
+  <div class="docstring"><p>Deletes all items in the dictionary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L64" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="delete/1">
+    <strong>delete(key)</strong>
+  </p>
+  <div class="docstring"><p>Deletes the given key from the dictionary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L72" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="demonitor/2">
+    <strong>demonitor(monitor_ref, options // [])</strong>
+  </p>
+  <div class="docstring"><p>If monitor_ref is a reference which the calling process
+obtained by calling monitor/1, this monitoring is turned off.
+If the monitoring is already turned off, nothing happens.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#demonitor-2">http://www.erlang.org/doc/man/erlang.html#demonitor-2</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L215" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="exit/2">
+    <strong>exit(pid, reason)</strong>
+  </p>
+  <div class="docstring"><p>Sends an exit signal with the given reason to the pid.</p>
+
+<p>The following behavior apply if reason is any term except <code>:normal</code> or <code>:kill</code>:</p>
+
+<p>1) If pid is not trapping exits, pid itself will exist with the given reason;</p>
+
+<p>2) If pid is trapping exits, the exit signal is transformed into a message
+   {&#39;EXIT&#39;, from, reason} and delivered to the message queue of pid;</p>
+
+<p>3) If reason is the atom <code>:normal</code>, pid will not exit. If it is trapping exits,
+   the exit signal is transformed into a message {&#39;EXIT&#39;, from, :normal} and
+   delivered to its message queue;</p>
+
+<p>4) If reason is the atom <code>:kill</code>, that is if <code>exit(pid, :kill)</code> is called, an
+   untrappable exit signal is sent to pid which will unconditionally exit with
+   exit reason <code>:killed</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>Process.exit(pid, :kill)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L100" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="flag/2">
+    <strong>flag(flag, value)</strong>
+  </p>
+  <div class="docstring"><p>Sets certain flags for the process which calls this function.
+Returns the old value of the flag.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#process_flag-2">http://www.erlang.org/doc/man/erlang.html#process_flag-2</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L325" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="flag/3">
+    <strong>flag(pid, flag, value)</strong>
+  </p>
+  <div class="docstring"><p>Sets certain flags for the process Pid, in the same manner as flag/2.
+Returns the old value of the flag. The allowed values for Flag are
+only a subset of those allowed in flag/2, namely: save_calls.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#process_flag-3">http://www.erlang.org/doc/man/erlang.html#process_flag-3</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L337" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/0">
+    <strong>get()</strong>
+  </p>
+  <div class="docstring"><p>Returns all key-values in the dictionary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L26" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get/2">
+    <strong>get(key, default // nil)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value for the given key.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L35" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_keys/1">
+    <strong>get_keys(value)</strong>
+  </p>
+  <div class="docstring"><p>Returns all keys that have the given <code>value</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L48" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="group_leader/0">
+    <strong>group_leader()</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of the group leader for the process which evaluates the function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L294" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="group_leader/2">
+    <strong>group_leader(leader, pid)</strong>
+  </p>
+  <div class="docstring"><p>Sets the group leader of Pid to GroupLeader. Typically, this is used when a processes
+started from a certain shell should have another group leader than <code>:init</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L303" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="info/1">
+    <strong>info(pid)</strong>
+  </p>
+  <div class="docstring"><p>Returns information about the process identified by pid.
+Use this only for debugging information.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#process_info-1">http://www.erlang.org/doc/man/erlang.html#process_info-1</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L348" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="info/2">
+    <strong>info(pid, spec)</strong>
+  </p>
+  <div class="docstring"><p>Returns information about the process identified by pid
+or undefined if the process is not alive.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#process_info-2">http://www.erlang.org/doc/man/erlang.html#process_info-2</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L359" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="link/1">
+    <strong>link(pid)</strong>
+  </p>
+  <div class="docstring"><p>Creates a link between the calling process and another process
+(or port) <code>pid</code>, if there is not such a link already.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#link-1">http://www.erlang.org/doc/man/erlang.html#link-1</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L241" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="list/0">
+    <strong>list()</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of process identifiers corresponding to all the
+processes currently existing on the local node.</p>
+
+<p>Note that a process that is exiting, exists but is not alive, i.e.,
+alive?/1 will return false for a process that is exiting,
+but its process identifier will be part of the result returned.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#processes-0">http://www.erlang.org/doc/man/erlang.html#processes-0</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L230" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="monitor/1">
+    <strong>monitor(item)</strong>
+  </p>
+  <div class="docstring"><p>The calling process starts monitoring the item given.
+It returns the monitor reference.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#monitor-2">http://www.erlang.org/doc/man/erlang.html#monitor-2</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L202" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put/2">
+    <strong>put(key, value)</strong>
+  </p>
+  <div class="docstring"><p>Stores the given key-value in the process dictionary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L56" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="register/2">
+    <strong>register(pid, name)</strong>
+  </p>
+  <div class="docstring"><p>Associates the name with a pid or a port identifier. name, which must
+be an atom, can be used instead of the pid / port identifier in the
+send operator (name &lt;- message).</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#register-2">http://www.erlang.org/doc/man/erlang.html#register-2</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L265" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="registered/0">
+    <strong>registered()</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of names which have been registered using register/2.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L311" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/1">
+    <strong>spawn(fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of <code>fun</code>.
+It behaves exactly the same as <code>Kernel.spawn/1</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L109" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/2">
+    <strong>spawn(fun, opts)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of <code>fun</code>.</p>
+
+<p>It also accepts extra options, for the list of available options
+check <a href="http://www.erlang.org/doc/man/erlang.html#spawn_opt-2">http://www.erlang.org/doc/man/erlang.html#spawn_opt-2</a></p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L126" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/3">
+    <strong>spawn(mod, fun, args)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of
+<code>module.function(args)</code>. The new process created will be placed in the system
+scheduler queue and be run some time later.</p>
+
+<p>It behaves exactly the same as the <code>Kernel.spawn/3</code> function.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L138" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn/4">
+    <strong>spawn(mod, fun, args, opts)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of
+<code>module.function(args)</code>. The new process created will be placed in the system
+scheduler queue and be run some time later.</p>
+
+<p>It also accepts extra options, for the list of available options
+check <a href="http://www.erlang.org/doc/man/erlang.html#spawn_opt-4">http://www.erlang.org/doc/man/erlang.html#spawn_opt-4</a></p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L152" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn_link/1">
+    <strong>spawn_link(fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of <code>fun</code>.
+A link is created between the calling process and the new
+process, atomically.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L162" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn_link/3">
+    <strong>spawn_link(mod, fun, args)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of
+<code>module.function(args)</code>. A link is created between the calling process
+and the new process, atomically. Otherwise works like spawn/3.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L172" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn_monitor/1">
+    <strong>spawn_monitor(fun)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid of a new process started by the application of <code>fun</code>
+and reference for a monitor created to the new process.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L181" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="spawn_monitor/3">
+    <strong>spawn_monitor(mod, fun, args)</strong>
+  </p>
+  <div class="docstring"><p>A new process is started by the application of <code>module.function(args)</code>
+and the process is monitored at the same time. Returns the pid and a
+reference for the monitor. Otherwise works like spawn/3.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L191" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unlink/1">
+    <strong>unlink(pid)</strong>
+  </p>
+  <div class="docstring"><p>Removes the link, if there is one, between the calling process and
+the process or port referred to by <code>pid</code>. Returns true and does not
+fail, even if there is no link or <code>id</code> does not exist</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#unlink-1">http://www.erlang.org/doc/man/erlang.html#unlink-1</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L253" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="unregister/1">
+    <strong>unregister(name)</strong>
+  </p>
+  <div class="docstring"><p>Removes the registered name, associated with a pid or a port identifier.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#unregister-1">http://www.erlang.org/doc/man/erlang.html#unregister-1</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L275" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="whereis/1">
+    <strong>whereis(name)</strong>
+  </p>
+  <div class="docstring"><p>Returns the pid or port identifier with the registered name.
+Returns undefined if the name is not registered.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/erlang.html#whereis-1">http://www.erlang.org/doc/man/erlang.html#whereis-1</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/process.ex#L286" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Protocol.UndefinedError.html b/docs/stable/Protocol.UndefinedError.html
new file mode 100644
index 000000000..f6c558f53
--- /dev/null
+++ b/docs/stable/Protocol.UndefinedError.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Protocol.UndefinedError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Protocol.UndefinedError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L70" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>protocol:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>structure:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L71" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Range.Iterator.Number.html b/docs/stable/Range.Iterator.Number.html
new file mode 100644
index 000000000..9352f45bc
--- /dev/null
+++ b/docs/stable/Range.Iterator.Number.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Range.Iterator.Number</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Range.Iterator.Number
+        
+          <small>impl</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L29" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#count/2">count/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/4">reduce/4</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="count/2">
+    <strong>count(first, arg2)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L55" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/4">
+    <strong>reduce(first, arg2, acc, fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L30" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Range.Iterator.html b/docs/stable/Range.Iterator.html
new file mode 100644
index 000000000..af2ab52b8
--- /dev/null
+++ b/docs/stable/Range.Iterator.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Range.Iterator</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Range.Iterator
+        
+          <small>protocol</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L7" target="_blank" class="view_source">Source</a>
+
+      
+        <h2 id="implementations">Implementations</h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <a href="Range.Iterator.Number.html">Number</a>
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#count/2">count/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#reduce/4">reduce/4</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="count/2">
+    <strong>count(first, range)</strong>
+  </p>
+  <div class="docstring"><p>Count how many items are in the range.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L13" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="reduce/4">
+    <strong>reduce(first, range, acc, fun)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L8" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Range.html b/docs/stable/Range.html
new file mode 100644
index 000000000..1f9c03e48
--- /dev/null
+++ b/docs/stable/Range.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Range</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Range
+        
+          <small>record</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Defines a Range.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/range.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>first:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>last:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Record.html b/docs/stable/Record.html
new file mode 100644
index 000000000..d94a836f2
--- /dev/null
+++ b/docs/stable/Record.html
@@ -0,0 +1,217 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Record</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Record
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Functions to define Elixir records</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/record.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#deffunctions/2">deffunctions/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defmacros/4">defmacros/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defrecord/3">defrecord/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#defrecordp/2">defrecordp/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#deftypes/3">deftypes/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#extract/2">extract/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+        <h2 id="macros_summary">Macros summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#import/2">import/2</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="deffunctions/2">
+    <strong>deffunctions(values, env)</strong>
+  </p>
+  <div class="docstring"><p>Defines record functions skipping the module definition.
+This is called directly by <code>defrecord</code>. It expects the record
+values, a set of options and the module environment.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule CustomRecord do
+  Record.deffunctions [:name, :age], __ENV__
+  Record.deftypes [:name, :age], [name: :binary, age: :integer], __ENV__
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/record.ex#L97" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defmacros/4">
+    <strong>defmacros(name, values, env, tag // nil)</strong>
+  </p>
+  <div class="docstring"><p>Defines macros for manipulating records. This is called
+directly by <code>defrecordp</code>. It expects the macro name, the
+record values and the environment.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defmodule CustomRecord do
+  Record.defmacros :user, [:name, :age], __ENV__
+end
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/record.ex#L156" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defrecord/3">
+    <strong>defrecord(name, values, opts)</strong>
+  </p>
+  <div class="docstring"><p>Main entry point for records definition. It defines a module
+with the given <code>name</code> and the fields specified in <code>values</code>.
+This is invoked directly by <code>Kernel.defrecord</code>, so check it
+for more information and documentation.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/record.ex#L25" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="defrecordp/2">
+    <strong>defrecordp(name, fields)</strong>
+  </p>
+  <div class="docstring"><p>Main entry point for private records definition. It defines
+a set of macros with the given <code>name</code> and the fields specified
+in <code>values</code>. This is invoked directly by <code>Kernel.defrecordp</code>,
+so check it for more information and documentation.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/record.ex#L78" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="deftypes/3">
+    <strong>deftypes(values, types, env)</strong>
+  </p>
+  <div class="docstring"><p>Defines types and specs for the record.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/record.ex#L125" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="extract/2">
+    <strong>extract(name, opts)</strong>
+  </p>
+  <div class="docstring"><p>Extract record information from an Erlang file and
+return the fields as a list of tuples.</p>
+
+<h2>Examples</h2>
+
+<pre><code>defrecord FileInfo, Record.extract(:file_info, from_lib: &quot;kernel/include/file.hrl&quot;)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/record.ex#L15" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+        <div id="macros_details" class="details_list">
+          <h2>Macros</h2>
+          <div class="detail">
+  <p class="signature" id="import/2">
+    <strong>import(module, list2)</strong>
+  </p>
+  <div class="docstring"><p>Import public record definition as a set of private macros (as defined by defrecordp/2)</p>
+
+<h2>Usage</h2>
+
+<p>Record.import Record.Module, as: macro_name</p>
+
+<h2>Example</h2>
+
+<p>defmodule Test do
+     Record.import File.Stat, as: :file_stat</p>
+
+<pre><code> def size(file_stat(size: size)), do: size
+</code></pre>
+
+<p>end</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/record.ex#L66" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Regex.CompileError.html b/docs/stable/Regex.CompileError.html
new file mode 100644
index 000000000..f6a1047dc
--- /dev/null
+++ b/docs/stable/Regex.CompileError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Regex.CompileError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Regex.CompileError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L49" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "regex could not be compiled"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Regex.html b/docs/stable/Regex.html
new file mode 100644
index 000000000..57cfb49fc
--- /dev/null
+++ b/docs/stable/Regex.html
@@ -0,0 +1,382 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Regex</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Regex
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Regular expressions for Elixir built on top of the re module
+in the Erlang Standard Library. More information can be found
+on re documentation: <a href="http://www.erlang.org/doc/man/re.html">http://www.erlang.org/doc/man/re.html</a></p>
+
+<p>Regular expressions in Elixir can be created using Regex.compile!
+or using the special form with <code>%r</code>:</p>
+
+<pre><code># A simple regular expressions that matches foo anywhere in the string
+%r/foo/
+
+# A regular expression with case insensitive options and handle unicode chars
+%r/foo/iu
+</code></pre>
+
+<p>The re module provides several options, the one available in Elixir, followed by
+their shortcut in parenthesis, are:</p>
+
+<ul>
+<li>unicode (u) - enable unicode specific patterns like \p</li>
+<li>caseless (i) - add case insensitivity</li>
+<li>dotall (s) - causes dot to match newlines and also set newline to anycrlf.
+The new line setting can be overwritten by setting <code>(*CR)</code> or <code>(*LF)</code> or
+<code>(*CRLF)</code> or <code>(*ANY)</code> according to re documentation</li>
+<li>multiline (m) - causes <code>^</code> and <code>$</code> to mark the beginning and end of each line.
+You need to use <code>\A</code> and <code>\z</code> to match the end or beginning of the string</li>
+<li>extended (x) - whitespace characters are ignored except when escaped and
+allow <code>#</code> to delimit comments</li>
+<li>firstline (f) - forces the unanchored pattern to match before or at the first
+newline, though the matched text may continue over the newline</li>
+<li>ungreedy (r) - invert the &quot;greediness&quot; of the regexp</li>
+<li>groups (g) - compile with info about groups available</li>
+</ul>
+
+<p>The options not available are:</p>
+
+<ul>
+<li>anchored - not available, use <code>^</code> or <code>\A</code> instead</li>
+<li>dollar_endonly - not available, use <code>\z</code> instead</li>
+<li>no<em>auto</em>capture - not available, use <code>?:</code> instead</li>
+<li>newline - not available, use <code>(*CR)</code> or <code>(*LF)</code> or <code>(*CRLF)</code> or <code>(*ANYCRLF)</code>
+or <code>(*ANY)</code> at the beginning of the regexp according to the re documentation</li>
+</ul>
+
+<p>Most of the functions in this module accept either a binary or a char list
+as subject. The result is based on the argument (a binary will return
+a binary, a char list will return a char list).</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#captures/3">captures/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compile/2">compile/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#compile!/2">compile!/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#groups/1">groups/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#index/2">index/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#match?/2">match?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#opts/1">opts/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#re_pattern/1">re_pattern/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#replace/4">replace/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#run/3">run/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#scan/3">scan/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#source/1">source/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/3">split/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="captures/3">
+    <strong>captures(regex, string, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Returns the given captures as a list of tuples.
+Requires the regex to be compiled with the groups option.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.captures(%r/c(?&lt;foo&gt;d)/g, &quot;abcd&quot;)
+[foo: &quot;d&quot;]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L158" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compile/2">
+    <strong>compile(source, options // &quot;&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Compiles the regular expression according to the given options.</p>
+
+<p>It returns <code>{ :ok, regex }</code> in case of success,
+<code>{ :error, reason }</code> otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L57" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="compile!/2">
+    <strong>compile!(source, options // &quot;&quot;)</strong>
+  </p>
+  <div class="docstring"><p>Compiles the regular expression according to the given options.
+Fails with <code>Regex.CompileError</code> if the regex cannot be compiled.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L75" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="groups/1">
+    <strong>groups(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Returns list of named groups in regex.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.groups(%r/(?&lt;foo&gt;foo)/g)
+[:foo]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L213" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="index/2">
+    <strong>index(arg1, string)</strong>
+  </p>
+  <div class="docstring"><p>Runs the regular expression against the given string
+and returns the index (zero indexes) where the first
+match occurs, nil otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.index(%r/c(d)/, &quot;abcd&quot;)
+2
+iex&gt; Regex.index(%r/e/, &quot;abcd&quot;)
+nil
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L95" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="match?/2">
+    <strong>match?(arg1, string)</strong>
+  </p>
+  <div class="docstring"><p>Returns a boolean if there was a match or not.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.match?(%r/foo/, &quot;foo&quot;)
+true
+iex&gt; Regex.match?(%r/foo/, &quot;bar&quot;)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L113" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="opts/1">
+    <strong>opts(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Returns the regex options as a string.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.opts(%r(foo)m)
+&quot;m&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L200" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="re_pattern/1">
+    <strong>re_pattern(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Returns the underlying <code>re_pattern</code> in the regular expression.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L174" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="replace/4">
+    <strong>replace(arg1, string, replacement, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Receives a regex, a binary and a replacement and returns a new
+binary where the all matches are replaced by replacement.</p>
+
+<p>Inside the replacement, you can either give &quot;&amp;&quot; to access the
+whole regular expression or \N, where N is in integer to access
+a specific matching parens. You can also set global to false
+if you want to replace just the first occurrence.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.replace(%r/d/, &quot;abc&quot;, &quot;d&quot;)
+&quot;abc&quot;
+iex&gt; Regex.replace(%r/b/, &quot;abc&quot;, &quot;d&quot;)
+&quot;adc&quot;
+iex&gt; Regex.replace(%r/b/, &quot;abc&quot;, &quot;[&amp;]&quot;)
+&quot;a[b]c&quot;
+iex&gt; Regex.replace(%r/b/, &quot;abc&quot;, &quot;[\\&amp;]&quot;)
+&quot;a[&amp;]c&quot;
+iex&gt; Regex.replace(%r/(b)/, &quot;abc&quot;, &quot;[\\1]&quot;)
+&quot;a[b]c&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L287" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="run/3">
+    <strong>run(regex, string, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Runs the regular expression against the given string.
+It returns a list with all matches, nil if no match ocurred, or []
+if it matched, /g was specified, but nothing was captured.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.run(%r/c(d)/, &quot;abcd&quot;)
+[&quot;cd&quot;, &quot;d&quot;]
+iex&gt; Regex.run(%r/e/, &quot;abcd&quot;)
+nil
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L130" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="scan/3">
+    <strong>scan(regex, string, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Same as run, but scans the target several times collecting all matches of
+the regular expression. A list is returned with each match. If the item in
+the list is a binary, it means there were no captures. If the item is another
+list, each element in this secondary list is a capture.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.scan(%r/c(d|e)/, &quot;abcd abce&quot;)
+[[&quot;d&quot;], [&quot;e&quot;]]
+iex&gt; Regex.scan(%r/c(?:d|e)/, &quot;abcd abce&quot;)
+[&quot;cd&quot;, &quot;ce&quot;]
+iex&gt; Regex.scan(%r/e/, &quot;abcd&quot;)
+[]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L233" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="source/1">
+    <strong>source(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Returns the regex source as binary.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; Regex.source(%r(foo))
+&quot;foo&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L187" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/3">
+    <strong>split(regex, string, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Split the given target in the number of parts specified.
+If no ammount of parts is given, it defaults to :infinity.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/regex.ex#L249" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/RuntimeError.html b/docs/stable/RuntimeError.html
new file mode 100644
index 000000000..c3e2dffd2
--- /dev/null
+++ b/docs/stable/RuntimeError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>RuntimeError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        RuntimeError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "runtime error"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/String.html b/docs/stable/String.html
new file mode 100644
index 000000000..56e7b85a8
--- /dev/null
+++ b/docs/stable/String.html
@@ -0,0 +1,933 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>String</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        String
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>A String in Elixir is a UTF-8 encoded binary.</p>
+
+<h2>String and binary operations</h2>
+
+<p>The functions in this module act according to the
+Unicode Standard, version 6.2.0. For example,
+<code>titlecase</code>, <code>downcase</code>, <code>strip</code> are provided by this
+module.</p>
+
+<p>Besides this module, Elixir provides more low-level
+operations that works directly with binaries. Some
+of those can be found in the <code>Kernel</code> module, as:</p>
+
+<ul>
+<li><code>binary_part/2</code> and <code>binary_part/3</code> - retrieves part of the binary</li>
+<li><code>bit_size/1</code> and <code>byte_size/1</code> - size related functions</li>
+<li><code>is_bitstring/1</code> and <code>is_binary/1</code> - type checking function</li>
+<li>Plus a bunch of conversion functions, like <code>binary_to_atom/2</code>,
+<code>binary_to_integer/2</code>, <code>binary_to_term/1</code> and their opposite
+like <code>integer_to_binary/2</code></li>
+</ul>
+
+<p>Finally, <a href="http://erlang.org/doc/man/binary.html">the <code>:binary</code> module</a>
+provides a couple other functions that works on the byte level.</p>
+
+<h2>Codepoints and graphemes</h2>
+
+<p>As per the Unicode Standard, a codepoint is an Unicode
+Character, which may be represented by one or more bytes.
+For example, the character &quot;é&quot; is represented with two
+bytes:</p>
+
+<pre><code>iex&gt; string = &quot;é&quot;
+...&gt; byte_size(string)
+2
+</code></pre>
+
+<p>Furthermore, this module also presents the concept of
+graphemes, which are multiple characters that may be
+&quot;perceived as a single character&quot; by readers. For example,
+the same &quot;é&quot; character written above could be represented
+by the letter &quot;e&quot; followed by the accent ́:</p>
+
+<pre><code>iex&gt; string = &quot;\x{0065}\x{0301}&quot;
+...&gt; byte_size(string)
+3
+</code></pre>
+
+<p>Although the example above is made of two characters, it is
+perceived by users as one.</p>
+
+<p>Graphemes can also be two characters that are interpreted
+as one by some languages. For example, some languages may
+consider &quot;ch&quot; as a grapheme. However, since this information
+depends on the locale, it is not taken into account by this
+module.</p>
+
+<p>In general, the functions in this module rely on the Unicode
+Standard, but does not contain any of the locale specific
+behaviour.</p>
+
+<h2>Integer codepoints</h2>
+
+<p>Although codepoints could be represented as integers, this
+module represents all codepoints as strings. For example:</p>
+
+<pre><code>iex&gt; String.codepoints(&quot;josé&quot;)
+[&quot;j&quot;, &quot;o&quot;, &quot;s&quot;, &quot;é&quot;]
+</code></pre>
+
+<p>There are a couple of ways to retrieve a character integer
+codepoint. One may use the <code>?</code> special macro:</p>
+
+<pre><code>iex&gt; ?j
+106
+iex&gt; ?é
+233
+</code></pre>
+
+<p>Or also via pattern matching:</p>
+
+<pre><code>iex&gt; &lt;&lt; eacute :: utf8 &gt;&gt; = &quot;é&quot;
+...&gt; eacute
+233
+</code></pre>
+
+<p>As we have seen above, codepoints can be inserted into
+a string by their hexadecimal code:</p>
+
+<pre><code>&quot;jos\x{0065}\x{0301}&quot; #=&gt;
+&quot;josé&quot;
+</code></pre>
+
+<h2>Self-synchronization</h2>
+
+<p>The UTF-8 encoding is self-synchronizing. This means that
+if malformed data (i.e., data that is not possible according
+to the definition of the encoding) is encountered, only one
+codepoint needs to be rejected.</p>
+
+<p>This module relies on this behaviour to ignore such invalid
+characters. For example, <code>String.length</code> is going to return
+a correct result even if an invalid codepoint is fed into it.</p>
+
+<p>In other words, this module expects invalid data to be detected
+when retrieving data from the external source. For example, a
+driver that reads strings from a database will be the one
+responsible to check the validity of the encoding.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#at/2">at/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#capitalize/1">capitalize/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#codepoints/1">codepoints/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#downcase/1">downcase/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#duplicate/2">duplicate/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#ends_with?/2">ends_with?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#first/1">first/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#graphemes/1">graphemes/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#last/1">last/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#length/1">length/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#lstrip/1">lstrip/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#lstrip/2">lstrip/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#next_codepoint/1">next_codepoint/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#next_grapheme/1">next_grapheme/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#printable?/1">printable?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#replace/4">replace/4</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rstrip/1">rstrip/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#rstrip/2">rstrip/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#slice/3">slice/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/1">split/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#split/3">split/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#starts_with?/2">starts_with?/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#strip/1">strip/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#strip/2">strip/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_float/1">to_float/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#to_integer/1">to_integer/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#upcase/1">upcase/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#valid?/1">valid?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#valid_character?/1">valid_character?/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#valid_codepoint?/1">valid_codepoint?/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="at/2">
+    <strong>at(string, position)</strong>
+  </p>
+  <div class="docstring"><p>Returns the grapheme in the <code>position</code> of the given utf8 <code>string</code>.
+If <code>position</code> is greater than <code>string</code> length, than it returns <code>nil</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.at(&quot;elixir&quot;, 0)
+&quot;e&quot;
+iex&gt; String.at(&quot;elixir&quot;, 1)
+&quot;l&quot;
+iex&gt; String.at(&quot;elixir&quot;, 10)
+nil
+iex&gt; String.at(&quot;elixir&quot;, -1)
+&quot;r&quot;
+iex&gt; String.at(&quot;elixir&quot;, -10)
+nil
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L651" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="capitalize/1">
+    <strong>capitalize(string)</strong>
+  </p>
+  <div class="docstring"><p>Converts the first character in the given string to
+titlecase and the remaining to downcase.</p>
+
+<p>This relies on the titlecase information provided
+by the Unicode Standard. Note this function makes
+no attempt in capitalizing all words in the string
+(usually known as titlecase).</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.capitalize(&quot;abcd&quot;)
+&quot;Abcd&quot;
+iex&gt; String.capitalize(&quot;ﬁn&quot;)
+&quot;Fin&quot;
+iex&gt; String.capitalize(&quot;josé&quot;)
+&quot;José&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L249" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="codepoints/1">
+    <strong>codepoints(string)</strong>
+  </p>
+  <div class="docstring"><p>Returns all codepoints in the string.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.codepoints(&quot;josé&quot;)
+[&quot;j&quot;, &quot;o&quot;, &quot;s&quot;, &quot;é&quot;]
+iex&gt; String.codepoints(&quot;оптими зации&quot;)
+[&quot;о&quot;,&quot;п&quot;,&quot;т&quot;,&quot;и&quot;,&quot;м&quot;,&quot;и&quot;,&quot; &quot;,&quot;з&quot;,&quot;а&quot;,&quot;ц&quot;,&quot;и&quot;,&quot;и&quot;]
+iex&gt; String.codepoints(&quot;ἅἪῼ&quot;)
+[&quot;ἅ&quot;,&quot;Ἢ&quot;,&quot;ῼ&quot;]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L438" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="downcase/1">
+    <strong>downcase(binary)</strong>
+  </p>
+  <div class="docstring"><p>Convert all characters on the given string to downcase.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.downcase(&quot;ABCD&quot;)
+&quot;abcd&quot;
+iex&gt; String.downcase(&quot;AB 123 XPTO&quot;)
+&quot;ab 123 xpto&quot;
+iex&gt; String.downcase(&quot;JOSÉ&quot;)
+&quot;josé&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L227" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="duplicate/2">
+    <strong>duplicate(subject, n)</strong>
+  </p>
+  <div class="docstring"><p>Returns a binary <code>subject</code> duplicated <code>n</code> times.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.duplicate(&quot;abc&quot;, 1)
+&quot;abc&quot;
+iex&gt; String.duplicate(&quot;abc&quot;, 2)
+&quot;abcabc&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L420" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="ends_with?/2">
+    <strong>ends_with?(string, suffixes)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>string</code> ends with any of the suffixes given, otherwise
+false. <code>suffixes</code> can be either a single suffix or a list of suffixes.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.ends_with? &quot;language&quot;, &quot;age&quot;
+true
+iex&gt; String.ends_with? &quot;language&quot;, [&quot;youth&quot;, &quot;age&quot;]
+true
+iex&gt; String.ends_with? &quot;language&quot;, [&quot;youth&quot;, &quot;elixir&quot;]
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L838" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="first/1">
+    <strong>first(string)</strong>
+  </p>
+  <div class="docstring"><p>Returns the first grapheme from an utf8 string,
+nil if the string is empty.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.first(&quot;elixir&quot;)
+&quot;e&quot;
+iex&gt; String.first(&quot;եոգլի&quot;)
+&quot;ե&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L579" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="graphemes/1">
+    <strong>graphemes(string)</strong>
+  </p>
+  <div class="docstring"><p>Returns unicode graphemes in the string.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.graphemes(&quot;Ā̀stute&quot;)
+[&quot;Ā̀&quot;,&quot;s&quot;,&quot;t&quot;,&quot;u&quot;,&quot;t&quot;,&quot;e&quot;]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L548" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="last/1">
+    <strong>last(string)</strong>
+  </p>
+  <div class="docstring"><p>Returns the last grapheme from an utf8 string,
+nil if the string is empty.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.last(&quot;elixir&quot;)
+&quot;r&quot;
+iex&gt; String.last(&quot;եոգլի&quot;)
+&quot;ի&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L599" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="length/1">
+    <strong>length(string)</strong>
+  </p>
+  <div class="docstring"><p>Returns the number of unicode graphemes in an utf8 string.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.length(&quot;elixir&quot;)
+6
+iex&gt; String.length(&quot;եոգլի&quot;)
+5
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L621" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="lstrip/1">
+    <strong>lstrip(binary)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string where leading Unicode whitespace
+has been removed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.lstrip(&quot;   abc  &quot;)
+&quot;abc  &quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L313" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="lstrip/2">
+    <strong>lstrip(other, char)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string where leading <code>char</code> have been removed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.lstrip(&quot;_  abc  _&quot;, ?_)
+&quot;  abc  _&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L327" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="next_codepoint/1">
+    <strong>next_codepoint(string)</strong>
+  </p>
+  <div class="docstring"><p>Returns the next codepoint in a String.</p>
+
+<p>The result is a tuple with the codepoint and the
+remaining of the string or <code>:no_codepoint</code> in case
+the string reached its end.</p>
+
+<p>As the other functions in the String module, this
+function does not check for the validity of the codepoint.
+That said, if an invalid codepoint is found, it will
+be returned by this function.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.next_codepoint(&quot;josé&quot;)
+{ &quot;j&quot;, &quot;osé&quot; }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L459" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="next_grapheme/1">
+    <strong>next_grapheme(string)</strong>
+  </p>
+  <div class="docstring"><p>Returns the next grapheme in a String.</p>
+
+<p>The result is a tuple with the grapheme and the
+remaining of the string or <code>:no_grapheme</code> in case
+the String reached its end.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.next_grapheme(&quot;josé&quot;)
+{ &quot;j&quot;, &quot;osé&quot; }
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L564" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="printable?/1">
+    <strong>printable?(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Checks if a string is printable considering it is encoded
+as UTF-8. Returns true if so, false otherwise.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.printable?(&quot;abc&quot;)
+true
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L121" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="replace/4">
+    <strong>replace(subject, pattern, replacement, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Returns a new binary based on <code>subject</code> by replacing the parts
+matching <code>pattern</code> for <code>replacement</code>. By default, it replaces
+all entries, except if the <code>global</code> option is set to false.</p>
+
+<p>If the replaced part must be used in <code>replacement</code>, then the
+position or the positions where it is to be inserted must be
+specified by using the option <code>insert_replaced</code>.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.replace(&quot;a,b,c&quot;, &quot;,&quot;, &quot;-&quot;)
+&quot;a-b-c&quot;
+iex&gt; String.replace(&quot;a,b,c&quot;, &quot;,&quot;, &quot;-&quot;, global: false)
+&quot;a-b,c&quot;
+iex&gt; String.replace(&quot;a,b,c&quot;, &quot;b&quot;, &quot;[]&quot;, insert_replaced: 1)
+&quot;a,[b],c&quot;
+iex&gt; String.replace(&quot;a,b,c&quot;, &quot;,&quot;, &quot;[]&quot;, insert_replaced: 2)
+&quot;a[],b[],c&quot;
+iex&gt; String.replace(&quot;a,b,c&quot;, &quot;,&quot;, &quot;[]&quot;, insert_replaced: [1,1])
+&quot;a[,,]b[,,]c&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L393" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rstrip/1">
+    <strong>rstrip(binary)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string where trailing Unicode whitespace
+has been removed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.rstrip(&quot;   abc  &quot;)
+&quot;   abc&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L265" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="rstrip/2">
+    <strong>rstrip(string, char)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string where trailing <code>char</code> have been removed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.rstrip(&quot;   abc _&quot;, ?_)
+&quot;   abc &quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L278" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="slice/3">
+    <strong>slice(string, start, len)</strong>
+  </p>
+  <div class="docstring"><p>Returns a substring starting at the offset given by the first, and
+a length given by the second.
+If the offset is greater than string length, than it returns nil.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.slice(&quot;elixir&quot;, 1, 3)
+&quot;lix&quot;
+iex&gt; String.slice(&quot;elixir&quot;, 1, 10)
+&quot;lixir&quot;
+iex&gt; String.slice(&quot;elixir&quot;, 10, 3)
+nil
+iex&gt; String.slice(&quot;elixir&quot;, -4, 4)
+&quot;ixir&quot;
+iex&gt; String.slice(&quot;elixir&quot;, -10, 3)
+nil
+iex&gt; String.slice(&quot;a&quot;, 0, 1500)
+&quot;a&quot;
+iex&gt; String.slice(&quot;a&quot;, 1, 1500)
+&quot;&quot;
+iex&gt; String.slice(&quot;a&quot;, 2, 1500)
+nil
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L700" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/1">
+    <strong>split(binary)</strong>
+  </p>
+  <div class="docstring"><p>Splits a string on sub strings at each Unicode whitespace
+occurrence with leading and trailing whitespace ignored.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.split(&quot;foo bar&quot;)
+[&quot;foo&quot;, &quot;bar&quot;]
+iex&gt; String.split(&quot;foo&quot; &lt;&gt; &lt;&lt;194,133&gt;&gt; &lt;&gt; &quot;bar&quot;)
+[&quot;foo&quot;, &quot;bar&quot;]
+iex&gt; String.split(&quot; foo bar &quot;)
+[&quot;foo&quot;, &quot;bar&quot;]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L156" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="split/3">
+    <strong>split(binary, pattern, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Divides a string into sub strings based on a pattern,
+returning a list of these sub string. The pattern can
+be a string, a list of strings or a regular expression.</p>
+
+<p>The string is split into as many parts as possible by
+default, unless the <code>global</code> option is set to false.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.split(&quot;a,b,c&quot;, &quot;,&quot;)
+[&quot;a&quot;, &quot;b&quot;, &quot;c&quot;]
+iex&gt; String.split(&quot;a,b,c&quot;, &quot;,&quot;, global: false)
+[&quot;a&quot;, &quot;b,c&quot;]
+
+iex&gt; String.split(&quot;1,2 3,4&quot;, [&quot; &quot;, &quot;,&quot;])
+[&quot;1&quot;, &quot;2&quot;, &quot;3&quot;, &quot;4&quot;]
+
+iex&gt; String.split(&quot;a,b,c&quot;, %r{,})
+[&quot;a&quot;, &quot;b&quot;, &quot;c&quot;]
+iex&gt; String.split(&quot;a,b,c&quot;, %r{,}, global: false)
+[&quot;a&quot;, &quot;b,c&quot;]
+iex&gt; String.split(&quot;a,b&quot;, %r{\.})
+[&quot;a,b&quot;]
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L186" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="starts_with?/2">
+    <strong>starts_with?(string, prefixes)</strong>
+  </p>
+  <div class="docstring"><p>Returns true if <code>string</code> starts with any of the prefixes given, otherwise
+false. <code>prefixes</code> can be either a single prefix or a list of prefixes.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.starts_with? &quot;elixir&quot;, &quot;eli&quot;
+true
+iex&gt; String.starts_with? &quot;elixir&quot;, [&quot;erlang&quot;, &quot;elixir&quot;]
+true
+iex&gt; String.starts_with? &quot;elixir&quot;, [&quot;erlang&quot;, &quot;ruby&quot;]
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L814" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="strip/1">
+    <strong>strip(string)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string where leading/trailing Unicode whitespace
+has been removed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.strip(&quot;   abc  &quot;)
+&quot;abc&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L347" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="strip/2">
+    <strong>strip(string, char)</strong>
+  </p>
+  <div class="docstring"><p>Returns a string where leading/trailing <code>char</code> have been
+removed.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.strip(&quot;a  abc  a&quot;, ?a)
+&quot;  abc  &quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L363" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_float/1">
+    <strong>to_float(string)</strong>
+  </p>
+  <div class="docstring"><p>Converts a string to a float. If successful, returns a
+tuple of form {float, remainder of string}. If unsuccessful,
+returns :error. If given an integer value, will return
+same as to_integer/1.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.to_float(&quot;34&quot;)
+{34.0,&quot;&quot;}
+iex&gt; String.to_float(&quot;34.25&quot;)
+{34.25,&quot;&quot;}
+</code></pre>
+
+<p>iex&gt; String.to<em>float(&quot;56.5xyz&quot;)
+   {56.5,&quot;xyz&quot;}
+    iex&gt; String.to</em>float(&quot;pi&quot;)
+    :error</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L784" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="to_integer/1">
+    <strong>to_integer(string)</strong>
+  </p>
+  <div class="docstring"><p>Converts a string to an integer. If successful, returns a
+tuple of form {integer, remainder of string}. If unsuccessful,
+returns :error.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.to_integer(&quot;34&quot;)
+{34,&quot;&quot;}
+iex&gt; String.to_integer(&quot;34.5&quot;)
+{34,&quot;.5&quot;}
+iex&gt; String.to_integer(&quot;three&quot;)
+:error
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L756" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="upcase/1">
+    <strong>upcase(binary)</strong>
+  </p>
+  <div class="docstring"><p>Convert all characters on the given string to upcase.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.upcase(&quot;abcd&quot;)
+&quot;ABCD&quot;
+iex&gt; String.upcase(&quot;ab 123 xpto&quot;)
+&quot;AB 123 XPTO&quot;
+iex&gt; String.upcase(&quot;josé&quot;)
+&quot;JOSÉ&quot;
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L211" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="valid?/1">
+    <strong>valid?(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Checks whether <code>str</code> contains only valid characters.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.valid?(&quot;a&quot;)
+true
+iex&gt; String.valid?(&quot;ø&quot;)
+true
+iex&gt; String.valid?(&lt;&lt;0xffff :: 16&gt;&gt;)
+false
+iex&gt; String.valid?(&quot;asd&quot; &lt;&gt; &lt;&lt;0xffff :: 16&gt;&gt;)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L485" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="valid_character?/1">
+    <strong>valid_character?(codepoint)</strong>
+  </p>
+  <div class="docstring"><p>Checks whether <code>str</code> is a valid character.</p>
+
+<p>All characters are codepoints, but some codepoints
+are not valid characters. They may be reserved, private,
+or other.</p>
+
+<p>More info at: <a href="http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters#Noncharacters">http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters#Noncharacters</a></p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.valid_character?(&quot;a&quot;)
+true
+iex&gt; String.valid_character?(&quot;ø&quot;)
+true
+iex&gt; String.valid_character?(&quot;\x{ffff}&quot;)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L513" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="valid_codepoint?/1">
+    <strong>valid_codepoint?(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Checks whether <code>str</code> is a valid codepoint.</p>
+
+<p>Note that the empty string is considered invalid, as are
+strings containing multiple codepoints.</p>
+
+<h2>Examples</h2>
+
+<pre><code>iex&gt; String.valid_codepoint?(&quot;a&quot;)
+true
+iex&gt; String.valid_codepoint?(&quot;ø&quot;)
+true
+iex&gt; String.valid_codepoint?(&lt;&lt;0xffff :: 16&gt;&gt;)
+false
+iex&gt; String.valid_codepoint?(&quot;asdf&quot;)
+false
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/string.ex#L535" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/Supervisor.Behaviour.html b/docs/stable/Supervisor.Behaviour.html
new file mode 100644
index 000000000..b1ded59c6
--- /dev/null
+++ b/docs/stable/Supervisor.Behaviour.html
@@ -0,0 +1,278 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Supervisor.Behaviour</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        Supervisor.Behaviour
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>This module is a convenience to define Supervisor
+callbacks in Elixir. By using this module, you get
+the module behaviour automatically tagged as
+<code>:supervisor</code> and some helper functions are imported
+to make defining supervisors easier.</p>
+
+<p>For more information on supervisors, please check the
+remaining functions defined in this module or refer to
+the following:</p>
+
+<p><a href="http://www.erlang.org/doc/man/supervisor.html">http://www.erlang.org/doc/man/supervisor.html</a>
+<a href="http://www.erlang.org/doc/design_principles/sup_princ.html">http://www.erlang.org/doc/design_principles/sup_princ.html</a>
+<a href="http://learnyousomeerlang.com/supervisors">http://learnyousomeerlang.com/supervisors</a></p>
+
+<h2>Example</h2>
+
+<pre><code>defmodule ExUnit.Sup do
+  use Supervisor.Behaviour
+
+  def init(user_options) do
+    tree = [ worker(ExUnit.Runner, [user_options]) ]
+    supervise(tree, strategy: :one_for_one)
+  end
+end
+
+{ :ok, pid } = :supervisor.start_link(MyServer, [])
+</code></pre>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/supervisor/behaviour.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#supervise/2">supervise/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#supervisor/3">supervisor/3</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#worker/3">worker/3</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="supervise/2">
+    <strong>supervise(children, options)</strong>
+  </p>
+  <div class="docstring"><p>Receives a list of children (worker or supervisors) to
+supervise and a set of options. Returns a tuple containing
+the supervisor specification.</p>
+
+<h2>Examples</h2>
+
+<pre><code>supervise children, strategy: :one_for_one
+</code></pre>
+
+<h2>Options</h2>
+
+<ul>
+<li><p><code>:strategy</code> - the restart strategy option It can be either
+<code>:one_for_one</code>, <code>:rest_for_one</code>, <code>:one_for_all</code> and
+<code>:simple_one_for_one</code>;</p></li>
+<li><p><code>:max_restarts</code> - the maximum amount of restarts allowed in
+a time frame. Defaults to 5;</p></li>
+<li><p><code>:max_seconds</code> - the time frame in which max_restarts applies.
+Defaults to 5;</p></li>
+</ul>
+
+<p>The <code>:strategy</code> option is required and by default maximum 5 restarts
+are allowed in 5 seconds.</p>
+
+<h2>Strategies</h2>
+
+<ul>
+<li><p><code>:one_for_one</code> - If a child process terminates, only that
+process is restarted;</p></li>
+<li><p><code>:one_for_all</code> - If a child process terminates, all other child
+processes are terminated and then all child processes, including
+the terminated one, are restarted;</p></li>
+<li><p><code>:rest_for_one</code> - If a child process terminates, the &quot;rest&quot; of
+the child processes, i.e. the child processes after the terminated
+process in start order, are terminated. Then the terminated child
+process and the rest of the child processes are restarted;</p></li>
+<li><p><code>:simple_one_for_one</code> - Similar to <code>:one_for_one</code> but suits better
+when dynamically attaching children;</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/supervisor/behaviour.ex#L82" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="supervisor/3">
+    <strong>supervisor(module, args, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Defines the given <code>module</code> as a supervisor which will be started
+with the given arguments.</p>
+
+<pre><code>supervisor ExUnit.Runner, [], restart: :permanent
+</code></pre>
+
+<p>By default, the function <code>:start_link</code> is invoked on the given module.</p>
+
+<h2>Options</h2>
+
+<ul>
+<li><p><code>:id</code> - a name used to identify the child specification
+internally by the supervisor. Defaults to the module name;</p></li>
+<li><p><code>:function</code> - the function to invoke on the child to start it.
+Defaults to <code>:start_link</code>;</p></li>
+<li><p><code>:restart</code> - defines when the child process should restart.
+Defaults to <code>:permanent</code>;</p></li>
+<li><p><code>:shutdown</code> - defines how a child process should be terminated.
+Defaults to <code>5000</code>;</p></li>
+<li><p><code>:modules</code> - it should be a list with one element <code>[module]</code>,
+where module is the name of the callback module only if the
+child process is a supervisor, gen<em>server or gen</em>fsm. If the
+child process is a gen_event, modules should be <code>:dynamic</code>.
+Defaults to a list with the given module;</p></li>
+</ul>
+
+<h2>Restart values</h2>
+
+<p>The following restart values are supported:</p>
+
+<ul>
+<li><p><code>:permanent</code> - the child process is always restarted;</p></li>
+<li><p><code>:temporary</code> - the child process is never restarted (not even
+when the supervisor&#39;s strategy is <code>:rest_for_one</code> or <code>:one_for_all</code>);</p></li>
+<li><p><code>:transient</code> - the child process is restarted only if it
+terminates abnormally, i.e. with another exit reason than
+<code>:normal</code>, <code>:shutdown</code> or <code>{ :shutdown, term }</code>;</p></li>
+</ul>
+
+<h2>Shutdown values</h2>
+
+<p>The following shutdown values are supported:</p>
+
+<ul>
+<li><p><code>:brutal_kill</code> - the child process is unconditionally terminated
+using <code>exit(child, :kill)</code>;</p></li>
+<li><p><code>:infinity</code> - if the child process is a supervisor, it is a mechanism
+to give the subtree enough time to shutdown. It can also be used with
+workers with care;</p></li>
+<li><p>Finally, it can also be any integer meaning that the supervisor tells
+the child process to terminate by calling <code>exit(child, :shutdown)</code> and
+then waits for an exit signal back. If no exit signal is received within
+the specified time (in miliseconds), the child process is unconditionally
+terminated using <code>exit(child, :kill)</code>;</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/supervisor/behaviour.ex#L169" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="worker/3">
+    <strong>worker(module, args, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Defines the given <code>module</code> as a worker which will be started
+with the given arguments.</p>
+
+<pre><code>worker ExUnit.Runner, [], restart: :permanent
+</code></pre>
+
+<p>By default, the function <code>:start_link</code> is invoked on the given module.</p>
+
+<h2>Options</h2>
+
+<ul>
+<li><p><code>:id</code> - a name used to identify the child specification
+internally by the supervisor. Defaults to the module name;</p></li>
+<li><p><code>:function</code> - the function to invoke on the child to start it.
+Defaults to <code>:start_link</code>;</p></li>
+<li><p><code>:restart</code> - defines when the child process should restart.
+Defaults to <code>:permanent</code>;</p></li>
+<li><p><code>:shutdown</code> - defines how a child process should be terminated.
+Defaults to <code>5000</code>;</p></li>
+<li><p><code>:modules</code> - it should be a list with one element <code>[module]</code>,
+where module is the name of the callback module only if the
+child process is a supervisor, gen<em>server or gen</em>fsm. If the
+child process is a gen_event, modules should be <code>:dynamic</code>.
+Defaults to a list with the given module;</p></li>
+</ul>
+
+<h2>Restart values</h2>
+
+<p>The following restart values are supported:</p>
+
+<ul>
+<li><p><code>:permanent</code> - the child process is always restarted;</p></li>
+<li><p><code>:temporary</code> - the child process is never restarted (not even
+when the supervisor&#39;s strategy is <code>:rest_for_one</code> or <code>:one_for_all</code>);</p></li>
+<li><p><code>:transient</code> - the child process is restarted only if it
+terminates abnormally, i.e. with another exit reason than
+<code>:normal</code>, <code>:shutdown</code> or <code>{ :shutdown, term }</code>;</p></li>
+</ul>
+
+<h2>Shutdown values</h2>
+
+<p>The following shutdown values are supported:</p>
+
+<ul>
+<li><p><code>:brutal_kill</code> - the child process is unconditionally terminated
+using <code>exit(child, :kill)</code>;</p></li>
+<li><p><code>:infinity</code> - if the child process is a supervisor, it is a mechanism
+to give the subtree enough time to shutdown. It can also be used with
+workers with care;</p></li>
+<li><p>Finally, it can also be any integer meaning that the supervisor tells
+the child process to terminate by calling <code>exit(child, :shutdown)</code> and
+then waits for an exit signal back. If no exit signal is received within
+the specified time (in miliseconds), the child process is unconditionally
+terminated using <code>exit(child, :kill)</code>;</p></li>
+</ul>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/supervisor/behaviour.ex#L155" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/SyntaxError.html b/docs/stable/SyntaxError.html
new file mode 100644
index 000000000..382ba6c27
--- /dev/null
+++ b/docs/stable/SyntaxError.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>SyntaxError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        SyntaxError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L6" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>file:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>line:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>description:</strong> "syntax error"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L7" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/System.NoAccessCwdError.html b/docs/stable/System.NoAccessCwdError.html
new file mode 100644
index 000000000..055290365
--- /dev/null
+++ b/docs/stable/System.NoAccessCwdError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>System.NoAccessCwdError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        System.NoAccessCwdError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L8" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "could not get a current working directory, the current location is not accessible"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/System.NoHomeError.html b/docs/stable/System.NoHomeError.html
new file mode 100644
index 000000000..93a871b7b
--- /dev/null
+++ b/docs/stable/System.NoHomeError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>System.NoHomeError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        System.NoHomeError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L2" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "could not find the user home, please set the HOME environment variable"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/System.NoTmpDirError.html b/docs/stable/System.NoTmpDirError.html
new file mode 100644
index 000000000..ce033c338
--- /dev/null
+++ b/docs/stable/System.NoTmpDirError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>System.NoTmpDirError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        System.NoTmpDirError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L5" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "could not get a writable temporary directory, please set the TMPDIR environment variable"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/System.html b/docs/stable/System.html
new file mode 100644
index 000000000..41352bf9d
--- /dev/null
+++ b/docs/stable/System.html
@@ -0,0 +1,401 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>System</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        System
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>The System module provides access to some variables used or
+maintained by the VM and to functions that interact strongly
+with the VM or the host system.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#argv/0">argv/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#at_exit/1">at_exit/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#build_info/0">build_info/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cmd/1">cmd/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cwd/0">cwd/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#cwd!/0">cwd!/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#find_executable/1">find_executable/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_env/0">get_env/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_env/1">get_env/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#get_pid/0">get_pid/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#halt/2">halt/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_env/1">put_env/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#put_env/2">put_env/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#stacktrace/0">stacktrace/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#tmp_dir/0">tmp_dir/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#tmp_dir!/0">tmp_dir!/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#user_home/0">user_home/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#user_home!/0">user_home!/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#version/0">version/0</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="argv/0">
+    <strong>argv()</strong>
+  </p>
+  <div class="docstring"><p>Returns the list of command-line arguments passed to the program.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L57" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="at_exit/1">
+    <strong>at_exit(fun)</strong>
+  </p>
+  <div class="docstring"><p>Registers a function that will be invoked
+at the end of program execution. Useful for
+invoking a hook in a &quot;script&quot; mode.</p>
+
+<p>The function must expect the exit status code
+as argument.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L157" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="build_info/0">
+    <strong>build_info()</strong>
+  </p>
+  <div class="docstring"><p>Returns a keywords list with version, git tag info and date.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cmd/1">
+    <strong>cmd(command)</strong>
+  </p>
+  <div class="docstring"><p>Executes <code>command</code> in a command shell of the target OS,
+captures the standard output of the command and returns
+the result as a binary.</p>
+
+<p>If <code>command</code> is a char list, a char list is returned.
+Returns a binary otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L171" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cwd/0">
+    <strong>cwd()</strong>
+  </p>
+  <div class="docstring"><p>Returns the current working directory or nil if one
+is not available.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L65" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="cwd!/0">
+    <strong>cwd!()</strong>
+  </p>
+  <div class="docstring"><p>Returns the current working directory or raises <code>System.NoAccessCwdError</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L75" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="find_executable/1">
+    <strong>find_executable(command)</strong>
+  </p>
+  <div class="docstring"><p>This functions looks up an executable program given
+its name using the environment variable PATH on Unix
+and Windows.</p>
+
+<p>If <code>command</code> is a char list, a char list is returned.
+Returns a binary otherwise.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L189" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_env/0">
+    <strong>get_env()</strong>
+  </p>
+  <div class="docstring"><p>Returns a list of all environment variables. Each environment variable is
+given as a single string of the format &quot;VarName=Value&quot;, where VarName is the
+name of the variable and Value its value.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L206" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_env/1">
+    <strong>get_env(varname)</strong>
+  </p>
+  <div class="docstring"><p>Returns the value of the environment variable
+<code>varname</code> as a binary, or nil if the environment
+variable is undefined.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L216" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="get_pid/0">
+    <strong>get_pid()</strong>
+  </p>
+  <div class="docstring"><p>Returns the process identifier of the current Erlang emulator
+in the format most commonly used by the operating system environment.</p>
+
+<p>See <a href="http://www.erlang.org/doc/man/os.html#getpid-0">http://www.erlang.org/doc/man/os.html#getpid-0</a> for more info.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L230" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="halt/2">
+    <strong>halt(status // 0, options // [])</strong>
+  </p>
+  <div class="docstring"><p>Halts the Erlang runtime system where the first argument status must be a
+non-negative integer, the atom <code>:abort</code> or any type that can be converted
+to a char list.</p>
+
+<ul>
+<li><p>If an integer, the runtime system exits with the integer value which
+is returned to the Operating System;</p></li>
+<li><p>If <code>:abort</code>, the runtime system aborts producing a core dump, if that is
+enabled in the operating system;</p></li>
+<li><p>If a char list, an erlang crash dump is produced with status as slogan,
+and then the runtime system exits with status code 1;</p></li>
+</ul>
+
+<p>Note that on many platforms, only the status codes 0-255 are supported
+by the operating system.</p>
+
+<p>For integer status, Erlang runtime system closes all ports and allows async
+threads to finish their operations before exiting. To exit without such
+flushing, pass options [flush: false] instead.</p>
+
+<p>For more information, check: <a href="http://www.erlang.org/doc/man/erlang.html#halt-2">http://www.erlang.org/doc/man/erlang.html#halt-2</a></p>
+
+<h2>Examples</h2>
+
+<pre><code>System.halt(0)
+System.halt(1, flush: false)
+System.halt(:abort)
+</code></pre>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L294" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_env/1">
+    <strong>put_env(dict)</strong>
+  </p>
+  <div class="docstring"><p>Sets a new value for each environment variable corresponding
+to each key in <code>dict</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L246" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="put_env/2">
+    <strong>put_env(varname, value)</strong>
+  </p>
+  <div class="docstring"><p>Sets a new <code>value</code> for the environment variable <code>varname</code>.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L236" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="stacktrace/0">
+    <strong>stacktrace()</strong>
+  </p>
+  <div class="docstring"><p>Gets Elixir&#39;s stacktrace.</p>
+
+<p>Notice the Erlang VM (and therefore this function) does not
+return the current stacktrace but rather the stacktrace of the
+latest exception.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L257" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="tmp_dir/0">
+    <strong>tmp_dir()</strong>
+  </p>
+  <div class="docstring"><p>Returns a writable temporary directory.
+It searches for directories in the following order:</p>
+
+<ol>
+<li>The directory named by the TMPDIR environment variable</li>
+<li>The directory named by the TEMP environment variable</li>
+<li>The directory named by the TMP environment variable</li>
+<li><code>C:\TMP</code> on Windows or <code>/tmp</code> on Unix</li>
+<li> As a last resort, the current working directory</li>
+</ol>
+
+<p>Returns nil if none of the above are writable.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L119" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="tmp_dir!/0">
+    <strong>tmp_dir!()</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>tmp_dir</code> but raises <code>System.NoTmpDirError</code>
+instead of returning nil if no temp dir is set.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L131" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="user_home/0">
+    <strong>user_home()</strong>
+  </p>
+  <div class="docstring"><p>Returns the user home (platform independent).
+It returns nil if no user home is set.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L83" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="user_home!/0">
+    <strong>user_home!()</strong>
+  </p>
+  <div class="docstring"><p>Same as <code>user_home</code> but raises <code>System.NoHomeError</code>
+instead of returning nil if no user home is set.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L91" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="version/0">
+    <strong>version()</strong>
+  </p>
+  <div class="docstring"><p>Returns Elixir&#39;s version as binary.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/system.ex#L43" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/SystemLimitError.html b/docs/stable/SystemLimitError.html
new file mode 100644
index 000000000..a40eceb77
--- /dev/null
+++ b/docs/stable/SystemLimitError.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>SystemLimitError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        SystemLimitError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L4" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>message:</strong> "a system limit has been reached"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/TokenMissingError.html b/docs/stable/TokenMissingError.html
new file mode 100644
index 000000000..b64385810
--- /dev/null
+++ b/docs/stable/TokenMissingError.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>TokenMissingError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        TokenMissingError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L12" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>file:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>line:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>description:</strong> "expression is incomplete"
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L13" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/URI.FTP.html b/docs/stable/URI.FTP.html
new file mode 100644
index 000000000..ac3fe05f1
--- /dev/null
+++ b/docs/stable/URI.FTP.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>URI.FTP</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        URI.FTP
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/ftp.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#default_port/0">default_port/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse/1">parse/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="default_port/0">
+    <strong>default_port()</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/ftp.ex#L3" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse/1">
+    <strong>parse(info)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/ftp.ex#L4" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/URI.HTTP.html b/docs/stable/URI.HTTP.html
new file mode 100644
index 000000000..d863de87e
--- /dev/null
+++ b/docs/stable/URI.HTTP.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>URI.HTTP</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        URI.HTTP
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/http.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#default_port/0">default_port/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse/1">parse/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="default_port/0">
+    <strong>default_port()</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/http.ex#L3" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse/1">
+    <strong>parse(info)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/http.ex#L4" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/URI.HTTPS.html b/docs/stable/URI.HTTPS.html
new file mode 100644
index 000000000..65522bb9d
--- /dev/null
+++ b/docs/stable/URI.HTTPS.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>URI.HTTPS</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        URI.HTTPS
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/https.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#default_port/0">default_port/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse/1">parse/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="default_port/0">
+    <strong>default_port()</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/https.ex#L3" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse/1">
+    <strong>parse(info)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/https.ex#L4" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/URI.LDAP.html b/docs/stable/URI.LDAP.html
new file mode 100644
index 000000000..b2642e83f
--- /dev/null
+++ b/docs/stable/URI.LDAP.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>URI.LDAP</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        URI.LDAP
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/ldap.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#default_port/0">default_port/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse/1">parse/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="default_port/0">
+    <strong>default_port()</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/ldap.ex#L3" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse/1">
+    <strong>parse(info)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/ldap.ex#L6" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/URI.Parser.html b/docs/stable/URI.Parser.html
new file mode 100644
index 000000000..f6dafe4da
--- /dev/null
+++ b/docs/stable/URI.Parser.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>URI.Parser</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        URI.Parser
+        
+          <small>behaviour</small>
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Defines the behavior for each URI.Parser.
+Check URI.HTTP for a possible implementation.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/parser.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+
+      
+
+      
+        <h2 id="callbacks_summary">Callbacks summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#default_port/0">default_port/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse/1">parse/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="callbacks_details" class="details_list">
+          <h2>Callbacks</h2>
+          <div class="detail">
+  <p class="signature" id="default_port/0">
+    <strong>default_port()</strong>
+  </p>
+  <div class="docstring"><p>Responsible for returning the default port.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/parser.ex#L17" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse/1">
+    <strong>parse(uri_info :: URI.Info.t())</strong>
+  </p>
+  <div class="docstring"><p>Responsible for parsing extra URL information.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/parser.ex#L12" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/URI.SFTP.html b/docs/stable/URI.SFTP.html
new file mode 100644
index 000000000..b553e74a7
--- /dev/null
+++ b/docs/stable/URI.SFTP.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>URI.SFTP</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        URI.SFTP
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/sftp.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#default_port/0">default_port/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse/1">parse/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="default_port/0">
+    <strong>default_port()</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/sftp.ex#L3" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse/1">
+    <strong>parse(info)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/sftp.ex#L4" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/URI.TFTP.html b/docs/stable/URI.TFTP.html
new file mode 100644
index 000000000..698c394b9
--- /dev/null
+++ b/docs/stable/URI.TFTP.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>URI.TFTP</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        URI.TFTP
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/tftp.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#default_port/0">default_port/0</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse/1">parse/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="default_port/0">
+    <strong>default_port()</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/tftp.ex#L3" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse/1">
+    <strong>parse(info)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri/tftp.ex#L4" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/URI.html b/docs/stable/URI.html
new file mode 100644
index 000000000..d75d6ff46
--- /dev/null
+++ b/docs/stable/URI.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>URI</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        URI
+        
+      </h1>
+
+      
+        <div id="moduledoc" class="docstring">
+          <p>Utilities for working with and creating URIs.</p>
+
+        </div>
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri.ex#L1" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#decode/1">decode/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#decode_query/2">decode_query/2</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#encode/1">encode/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#encode_query/1">encode_query/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#parse/1">parse/1</a>
+  </span>
+</li>
+<li>
+  <span class="summary_signature">
+    <a href="#query_decoder/1">query_decoder/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="decode/1">
+    <strong>decode(arg1)</strong>
+  </p>
+  <div class="docstring"><p>Unpercent (URL) decodes a URI.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri.ex#L94" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="decode_query/2">
+    <strong>decode_query(q, dict // HashDict.new())</strong>
+  </p>
+  <div class="docstring"><p>Given a query string of the form &quot;key1=value1&amp;key=value2...&quot;, produces an
+orddict with one entry for each key-value pair. Each key and value will be a
+binary. It also does percent-unescaping of both keys and values.</p>
+
+<p>Use decoder/1 if you want to customize or iterate each value manually.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri.ex#L31" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="encode/1">
+    <strong>encode(s)</strong>
+  </p>
+  <div class="docstring"><p>Percent (URL) encodes a URI.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri.ex#L72" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="encode_query/1">
+    <strong>encode_query(l)</strong>
+  </p>
+  <div class="docstring"><p>Takes an enumerable (containing a sequence of two-item tuples)
+and returns a string of k=v&amp;k2=v2... where keys and values are
+URL encoded as per encode. Keys and values can be any term
+that implements the Binary.Chars protocol (i.e. can be converted
+to binary).</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri.ex#L22" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="parse/1">
+    <strong>parse(s)</strong>
+  </p>
+  <div class="docstring"><p>Parses a URI into components.</p>
+
+<p>URIs have portions that are handled specially for the
+particular scheme of the URI. For example, http and https
+have different default ports. Sometimes the parsing
+of portions themselves are different. This parser
+is extensible via behavior modules. If you have a
+module named URI.MYSCHEME with a function called
+&#39;parse&#39; that takes a single argument, the generically
+parsed URI, that function will be called when this
+parse function is passed a URI of that scheme. This
+allows you to build on top of what the URI library
+currently offers. You also need to define default_port
+which takes 0 arguments and returns the default port
+for that particular scheme. Take a look at URI.HTTPS for an
+example of one of these extension modules.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri.ex#L128" target="_blank" class="view_source">Source</a>
+  
+</div><div class="detail">
+  <p class="signature" id="query_decoder/1">
+    <strong>query_decoder(q)</strong>
+  </p>
+  <div class="docstring"><p>Returns an iterator function over the query string that decodes
+the query string in steps.</p>
+</div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/uri.ex#L39" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/UndefinedFunctionError.html b/docs/stable/UndefinedFunctionError.html
new file mode 100644
index 000000000..cd9fb5042
--- /dev/null
+++ b/docs/stable/UndefinedFunctionError.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>UndefinedFunctionError</title>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
+
+    <script type="text/javascript" charset="utf-8">
+      relpath = '';
+      if (relpath != '') relpath += '/';
+    </script>
+
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
+  </head>
+
+  <body>
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) document.body.className = 'frames';
+    </script>
+
+    <div id="content">
+      <h1>
+        UndefinedFunctionError
+        
+          <small>exception</small>
+        
+      </h1>
+
+      
+
+      <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L48" target="_blank" class="view_source">Source</a>
+
+      
+
+      
+        <h2>Fields <small>(and defaults)</small></h2>
+        <ul class="summary">
+          
+            <li>
+              <span class="summary_signature">
+                <strong>module:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>function:</strong> nil
+              </span>
+            </li>
+          
+            <li>
+              <span class="summary_signature">
+                <strong>arity:</strong> nil
+              </span>
+            </li>
+          
+        </ul>
+      
+
+      
+        <h2 id="functions_summary">Functions summary</h2>
+        <ul class="summary">
+          <li>
+  <span class="summary_signature">
+    <a href="#message/1">message/1</a>
+  </span>
+</li>
+
+        </ul>
+      
+
+      
+
+      
+
+      
+        <div id="functions_details" class="details_list">
+          <h2>Functions</h2>
+          <div class="detail">
+  <p class="signature" id="message/1">
+    <strong>message(exception)</strong>
+  </p>
+  <div class="docstring"></div>
+  
+    <a href="https://github.com/elixir-lang/elixir/blob/v0.9.1/lib/elixir/lib/exception.ex#L49" target="_blank" class="view_source">Source</a>
+  
+</div>
+        </div>
+      
+
+      
+
+      
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/css/full_list.css b/docs/stable/css/full_list.css
new file mode 100644
index 000000000..d504c4bed
--- /dev/null
+++ b/docs/stable/css/full_list.css
@@ -0,0 +1,57 @@
+body { 
+  margin: 0;
+  font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; 
+  font-size: 13px;
+  height: 101%;
+  overflow-x: hidden;
+}
+
+h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; }
+.clear { clear: both; }
+#search { position: absolute; right: 5px; top: 9px; padding-left: 24px; }
+#content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; }
+#full_list { padding: 0; list-style: none; margin-left: 0; }
+#full_list ul { padding: 0; }
+#full_list li { padding: 5px; padding-left: 12px; margin: 0; font-size: 1.1em; list-style: none; }
+#noresults { padding: 7px 12px; }
+#content.insearch #noresults { margin-left: 7px; }
+ul.collapsed ul, ul.collapsed li { display: none; }
+ul.collapsed.search_uncollapsed { display: block; }
+ul.collapsed.search_uncollapsed li { display: list-item; }
+li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; }
+li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; }
+li { color: #888; cursor: pointer; }
+li.deprecated { text-decoration: line-through; font-style: italic; }
+li.r1 { background: #f0f0f0; }
+li.r2 { background: #fafafa; }
+li:hover { background: #ddd; }
+li small:before { content: "("; }
+li small:after { content: ")"; }
+li small.search_info { display: none; }
+a:link, a:visited { text-decoration: none; color: #05a; }
+li.clicked { background: #05a; color: #ccc; }
+li.clicked a:link, li.clicked a:visited { color: #eee; }
+li.clicked a.toggle { opacity: 0.5; background-position: bottom right; }
+li.collapsed.clicked a.toggle { background-position: top right; }
+#nav { margin: 5px 0 10px 5px; font-size: 0.9em; display: none; color: #aaa; }
+#nav a:link, #nav a:visited { color: #358; }
+#nav a:hover { background: transparent; color: #5af; }
+#nav span { border-left: 1px solid #ccc; padding: 0 5px; display: block; float: left }
+#nav span:first-child { border-left: 0; border-radius: 3px; }
+#nav span.selected { text-decoration: underline; }
+
+.frames #content h1 { margin-top: 0; }
+.frames li { white-space: nowrap; cursor: normal; }
+.frames li small { display: block; font-size: 0.8em; }
+.frames li small:before { content: ""; }
+.frames li small:after { content: ""; }
+.frames li small.search_info { display: none; }
+.frames #search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; }
+.frames #content.insearch #search { background-position: center right; }
+.frames #search input { width: 110px; }
+.frames #nav { display: block; }
+
+#full_list.insearch li { display: none; }
+#full_list.insearch li.found { display: list-item; padding-left: 10px; }
+#full_list.insearch li a.toggle { display: none; }
+#full_list.insearch li small.search_info { display: block; }
diff --git a/docs/stable/css/style.css b/docs/stable/css/style.css
new file mode 100644
index 000000000..1a845c355
--- /dev/null
+++ b/docs/stable/css/style.css
@@ -0,0 +1,131 @@
+body {
+  padding: 0 20px;
+  font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
+  font-size: 13px;
+}
+
+body.frames { padding: 0 5px; }
+
+h1 { font-size: 25px; border-top: 0px; margin-top: 0; padding-top: 4px; }
+h1 small { color: #888; font-size: 18px }
+
+h2 {
+  padding: 0;
+  padding-bottom: 3px;
+  border-bottom: 1px #aaa solid;
+  font-size: 1.4em;
+  margin: 1.8em 0 0.5em;
+}
+
+.clear { clear: both; }
+
+li.r1 { background: #f0f0f0; }
+li.r2 { background: #fafafa; }
+
+div.docstring, p.docstring { margin-right: 6em; }
+.docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 0; }
+.docstring h1 { font-size: 1.2em; }
+.docstring h2 { font-size: 1.1em; }
+.docstring h3, .docstring h4 { font-size: 1em; padding-top: 10px; }
+.docstring pre {
+  padding: 0.5em;
+  border: #ffe0bb dotted 1px;
+  background: #fffde8;
+}
+
+p.signature {
+  font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace;
+  padding: 6px 10px; margin-top: 18px;
+  background: #e5e8ff; border: 1px solid #d8d8e5; -moz-border-radius: 3px; -webkit-border-radius: 3px;
+}
+
+a:link, a:visited { text-decoration: none; color: #05a; }
+a:hover { color: #27c; }
+
+.detail { border-top: 1px dotted #aaa; margin-top: 15px; padding-top: 0; }
+.detail:nth-child(2) { border: 0; }
+
+/* Summary */
+ul.summary {
+  list-style: none;
+  font-family: monospace;
+  font-size: 1em;
+  line-height: 1.5em;
+  margin: 0;
+  padding: 0;
+}
+ul.summary li { display: inline-block; margin: 0px 5px 0px 0px; line-height: 2.6em;}
+ul.summary a:link, ul.summary a:visited {
+  text-decoration: none; font-size: 1.1em;
+}
+ul.summary .summary_signature {
+  padding: 5px 7px; padding-right: 4px;
+  background: #eaeaff; border: 1px solid #dfdfe5;
+  -moz-border-radius: 3px; -webkit-border-radius: 3px;
+}
+ul.summary .summary_signature:hover { background: #eeeeff; cursor: pointer; }
+
+/* File contents */
+#filecontents li > p, .docstring li > p { margin: 0px; }
+#filecontents ul, .docstring ul { padding-left: 20px; }
+
+#filecontents dl, .docstring dl { border: 1px solid #ccc; }
+#filecontents dt, .docstring dt { background: #ddd; font-weight: bold; padding: 3px 5px; }
+#filecontents dd, .docstring dd { padding: 5px 0px; margin-left: 18px; }
+#filecontents dd > p, .docstring dd > p { margin: 0px; }
+#filecontents dl.box, dl.box {
+  border: 0;
+  width: 520px;
+  font-size: 1em;
+}
+#filecontents dl.box dt, dl.box dt {
+  float: left;
+  display: block;
+  width: 100px;
+  margin: 0;
+  text-align: right;
+  font-weight: bold;
+  background: transparent;
+  border: 1px solid #aaa;
+  border-width: 1px 0px 0px 1px;
+  padding: 6px 0;
+  padding-right: 10px;
+}
+#filecontents dl.box dd, dl.box dd {
+  float: left;
+  display: block;
+  width: 380px;
+  margin: 0;
+  padding: 6px 0;
+  padding-right: 20px;
+  border: 1px solid #aaa;
+  border-width: 1px 1px 0 0;
+}
+#filecontents dl.box .last, dl.box .last {
+  border-bottom: 1px solid #aaa;
+}
+#filecontents dl.box .r1, dl.box .r1 { background: #eee; }
+
+/* Footer */
+#footer { margin-top: 15px; border-top: 1px solid #ccc; text-align: center; padding: 7px 0; color: #999; }
+
+/* TOC */
+#toc {
+  padding: 20px; padding-right: 30px; border: 1px solid #ddd; float: right; background: #fff; margin-left: 20px; margin-bottom: 20px;
+  max-width: 300px;
+  -webkit-box-shadow: -2px 2px 6px #bbb;
+  -moz-box-shadow: -2px 2px 6px #bbb;
+  z-index: 5000;
+  position: relative;
+}
+#toc.nofloat { float: none; max-width: none; border: none; padding: 0; margin: 20px 0; -webkit-box-shadow: none; -moz-box-shadow: none; }
+#toc.nofloat.hidden { padding: 0; background: 0; margin-bottom: 5px; }
+#toc .title { margin: 0; }
+#toc ol { padding-left: 1.8em; }
+#toc li { font-size: 1.1em; line-height: 1.7em; }
+#toc > ol > li { font-size: 1.1em; font-weight: bold; }
+#toc ol > ol { font-size: 0.9em; }
+#toc ol ol > ol { padding-left: 2.3em; }
+#toc ol + li { margin-top: 0.3em; }
+#toc.hidden { padding: 10px; background: #f6f6f6; -webkit-box-shadow: none; -moz-box-shadow: none; }
+#filecontents h1 + #toc.nofloat { margin-top: 0; }
\ No newline at end of file
diff --git a/docs/stable/index.html b/docs/stable/index.html
new file mode 100644
index 000000000..ba88e3113
--- /dev/null
+++ b/docs/stable/index.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+	<title>Elixir v0.9.1 Documentation</title>
+</head>
+<frameset cols="20%,*">
+  <frame name="list" src="modules_list.html" />
+  <frame name="main" src="Kernel.html" />
+</frameset>
+</html>
\ No newline at end of file
diff --git a/docs/stable/js/app.js b/docs/stable/js/app.js
new file mode 100644
index 000000000..adfc739f7
--- /dev/null
+++ b/docs/stable/js/app.js
@@ -0,0 +1,61 @@
+function fixOutsideWorldLinks() {
+  $('a').each(function() {
+    if (window.location.host != this.host) this.target = '_parent';
+  });
+}
+
+function generateTOC() {
+  if ($('#filecontents').length === 0) return;
+  var _toc = $('<ol class="top"></ol>');
+  var show = false;
+  var toc = _toc;
+  var counter = 0;
+  var tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
+  var i;
+  if ($('#filecontents h1').length > 1) tags.unshift('h1');
+  for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; }
+  var lastTag = parseInt(tags[0][1], 10);
+  $(tags.join(', ')).each(function() {
+    if (this.id == "filecontents") return;
+    show = true;
+    var thisTag = parseInt(this.tagName[1], 10);
+    if (this.id.length === 0) {
+      var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_');
+      if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; }
+      this.id = proposedId;
+    }
+    if (thisTag > lastTag) { 
+      for (i = 0; i < thisTag - lastTag; i++) { 
+        var tmp = $('<ol/>'); toc.append(tmp); toc = tmp; 
+      } 
+    }
+    if (thisTag < lastTag) { 
+      for (i = 0; i < lastTag - thisTag; i++) toc = toc.parent(); 
+    }
+    toc.append('<li><a href="#' + this.id + '">' + $(this).text() + '</a></li>');
+    lastTag = thisTag;
+  });
+  if (!show) return;
+  html = '<div id="toc"><p class="title"><a class="hide_toc" href="#"><strong>Table of Contents</strong></a> <small>(<a href="#" class="float_toc">left</a>)</small></p></div>';
+  $('#content').prepend(html);
+  $('#toc').append(_toc);
+  $('#toc .hide_toc').toggle(function() { 
+    $('#toc .top').slideUp('fast');
+    $('#toc').toggleClass('hidden');
+    $('#toc .title small').toggle();
+  }, function() {
+    $('#toc .top').slideDown('fast');
+    $('#toc').toggleClass('hidden');
+    $('#toc .title small').toggle();
+  });
+  $('#toc .float_toc').toggle(function() { 
+    $(this).text('float');
+    $('#toc').toggleClass('nofloat');
+  }, function() {
+    $(this).text('left');
+    $('#toc').toggleClass('nofloat');
+  });
+}
+
+$(fixOutsideWorldLinks);
+$(generateTOC);
\ No newline at end of file
diff --git a/docs/stable/js/full_list.js b/docs/stable/js/full_list.js
new file mode 100644
index 000000000..2e4016283
--- /dev/null
+++ b/docs/stable/js/full_list.js
@@ -0,0 +1,167 @@
+var inSearch = null;
+var searchIndex = 0;
+var searchCache = [];
+var searchString = '';
+var regexSearchString = '';
+var caseSensitiveMatch = false;
+var ignoreKeyCodeMin = 8;
+var ignoreKeyCodeMax = 46;
+var commandKey = 91;
+
+RegExp.escape = function(text) {
+  return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
+}
+
+function fullListSearch() {
+  // generate cache
+  searchCache = [];
+  $('#full_list li').each(function() {
+    var link = $(this).find('.object_link a');
+    var fullName = link.attr('title').split(' ')[0];
+    searchCache.push({name:link.text(), fullName:fullName, node:$(this), link:link});
+  });
+  
+  $('#search input').keyup(function(evnt) {
+    if ((evnt.keyCode > ignoreKeyCodeMin && evnt.keyCode < ignoreKeyCodeMax)
+         || evnt.keyCode == commandKey)
+      return;
+    searchString = this.value;
+    caseSensitiveMatch = searchString.match(/[A-Z]/) != null;
+    regexSearchString = RegExp.escape(searchString);
+    if (searchString === "") {
+      clearTimeout(inSearch);
+      inSearch = null;
+      $('ul .search_uncollapsed').removeClass('search_uncollapsed');
+      $('#full_list, #content').removeClass('insearch');
+      $('#full_list li').removeClass('found').each(function() {
+        var link = $(this).find('.object_link a');
+        link.text(link.text()); 
+      });
+      if (clicked) {
+        clicked.parents('ul').each(function() {
+          $(this).removeClass('collapsed').prev().removeClass('collapsed');
+        });
+      }
+      highlight();
+    }
+    else {
+      if (inSearch) clearTimeout(inSearch);
+      searchIndex = 0;
+      lastRowClass = '';
+      $('#full_list, #content').addClass('insearch');
+      $('#noresults').text('');
+      searchItem();
+    }
+  });
+  
+  $('#search input').focus();
+  $('#full_list').after("<div id='noresults'></div>");
+}
+
+var lastRowClass = '';
+function searchItem() {
+  for (var i = 0; i < searchCache.length / 50; i++) {
+    var item = searchCache[searchIndex];
+    var searchName = (searchString.indexOf('.') != -1 ? item.fullName : item.name);
+    var matchString = regexSearchString;
+    var matchRegexp = new RegExp(matchString, caseSensitiveMatch ? "" : "i");
+    if (searchName.match(matchRegexp) == null) {
+      item.node.removeClass('found');
+    }
+    else {
+      item.node.css('padding-left', '10px').addClass('found');
+      item.node.parents().addClass('search_uncollapsed');
+      item.node.removeClass(lastRowClass).addClass(lastRowClass == 'r1' ? 'r2' : 'r1');
+      lastRowClass = item.node.hasClass('r1') ? 'r1' : 'r2';
+      item.link.html(item.name.replace(matchRegexp, "<strong>$&</strong>"));
+    }
+
+    if (searchCache.length === searchIndex + 1) {
+      searchDone();
+      return;
+    }
+    else {
+      searchIndex++;
+    }
+  }
+  inSearch = setTimeout('searchItem()', 0);
+}
+
+function searchDone() {
+  highlight(true);
+  if ($('#full_list li:visible').size() === 0) {
+    $('#noresults').text('No results were found.').hide().fadeIn();
+  }
+  else {
+    $('#noresults').text('');
+  }
+  $('#content').removeClass('insearch');
+  clearTimeout(inSearch);
+  inSearch = null;
+}
+
+clicked = null;
+function linkList() {
+  $('#full_list li, #full_list li a:last').click(function(evt) {
+    if ($(this).hasClass('toggle')) return true;
+    if (this.tagName.toLowerCase() == "li") {
+      var toggle = $(this).children('a.toggle');
+      if (toggle.size() > 0 && evt.pageX < toggle.offset().left) {
+        toggle.click();
+        return false;
+      }
+    }
+    if (clicked) clicked.removeClass('clicked');
+    var win = window.top.frames.main ? window.top.frames.main : window.parent;
+    if (this.tagName.toLowerCase() == "a") {
+      clicked = $(this).parent('li').addClass('clicked');
+      win.location = this.href;
+    }
+    else {
+      clicked = $(this).addClass('clicked');
+      win.location = $(this).find('a:last').attr('href');
+    }
+    return false;
+  });
+}
+
+function collapse() {
+  if (!$('#full_list').hasClass('class')) return;
+  $('#full_list.class a.toggle').click(function() { 
+    $(this).parent().toggleClass('collapsed').next().toggleClass('collapsed');
+    highlight();
+    return false; 
+  });
+  $('#full_list.class ul').each(function() {
+    $(this).addClass('collapsed').prev().addClass('collapsed');
+  });
+  // $('#full_list.class').children().removeClass('collapsed');
+  highlight();
+}
+
+function highlight(no_padding) {
+  var n = 1;
+  $('#full_list li:visible').each(function() {
+    var next = n == 1 ? 2 : 1;
+    $(this).removeClass("r" + next).addClass("r" + n);
+    if (!no_padding && $('#full_list').hasClass('class')) {
+      $(this).css('padding-left', (10 + $(this).parents('ul').size() * 15) + 'px');
+    }
+    n = next;
+  });
+}
+
+function escapeShortcut() {
+  $(document).keydown(function(evt) {
+    if (evt.which == 27) {
+      $('#search_frame', window.top.document).slideUp(100);
+      $('#search a', window.top.document).removeClass('active inactive');
+      $(window.top).focus();
+    }
+  });
+}
+
+$(escapeShortcut);
+$(fullListSearch);
+$(linkList);
+$(collapse);
diff --git a/docs/stable/js/jquery.js b/docs/stable/js/jquery.js
new file mode 100644
index 000000000..f78f96a12
--- /dev/null
+++ b/docs/stable/js/jquery.js
@@ -0,0 +1,16 @@
+/*!
+ * jQuery JavaScript Library v1.5.2
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Thu Mar 31 15:28:23 2011 -0400
+ */
+(function(a,b){function ci(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cf(a){if(!b_[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";b_[a]=c}return b_[a]}function ce(a,b){var c={};d.each(cd.concat.apply([],cd.slice(0,b)),function(){c[this]=a});return c}function b$(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bZ(){try{return new a.XMLHttpRequest}catch(b){}}function bY(){d(a).unload(function(){for(var a in bW)bW[a](0,1)})}function bS(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h==="string"&&(f[h.toLowerCase()]=a.converters[h]);l=k,k=e[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=f[m]||f["* "+k];if(!n){p=b;for(o in f){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=f[j[1]+" "+k];if(p){o=f[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&d.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bR(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bQ(a,b,c,e){if(d.isArray(b)&&b.length)d.each(b,function(b,f){c||bs.test(a)?e(a,f):bQ(a+"["+(typeof f==="object"||d.isArray(f)?b:"")+"]",f,c,e)});else if(c||b==null||typeof b!=="object")e(a,b);else if(d.isArray(b)||d.isEmptyObject(b))e(a,"");else for(var f in b)bQ(a+"["+f+"]",b[f],c,e)}function bP(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bJ,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bP(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bP(a,c,d,e,"*",g));return l}function bO(a){return function(b,c){typeof b!=="string"&&(c=b,b="*");if(d.isFunction(c)){var e=b.toLowerCase().split(bD),f=0,g=e.length,h,i,j;for(;f<g;f++)h=e[f],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bq(a,b,c){var e=b==="width"?bk:bl,f=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return f;d.each(e,function(){c||(f-=parseFloat(d.css(a,"padding"+this))||0),c==="margin"?f+=parseFloat(d.css(a,"margin"+this))||0:f-=parseFloat(d.css(a,"border"+this+"Width"))||0});return f}function bc(a,b){b.src?d.ajax({url:b.src,async:!1,dataType:"script"}):d.globalEval(b.text||b.textContent||b.innerHTML||""),b.parentNode&&b.parentNode.removeChild(b)}function bb(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function ba(a,b){if(b.nodeType===1){var c=b.nodeName.toLowerCase();b.clearAttributes(),b.mergeAttributes(a);if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(d.expando)}}function _(a,b){if(b.nodeType===1&&d.hasData(a)){var c=d.expando,e=d.data(a),f=d.data(b,e);if(e=e[c]){var g=e.events;f=f[c]=d.extend({},e);if(g){delete f.handle,f.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)d.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function $(a,b){return d.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Q(a,b,c){if(d.isFunction(b))return d.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return d.grep(a,function(a,d){return a===b===c});if(typeof b==="string"){var e=d.grep(a,function(a){return a.nodeType===1});if(L.test(b))return d.filter(b,e,!c);b=d.filter(b,e)}return d.grep(a,function(a,e){return d.inArray(a,b)>=0===c})}function P(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function H(a,b){return(a&&a!=="*"?a+".":"")+b.replace(t,"`").replace(u,"&")}function G(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,p=[],q=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;i<t.length;i++)g=t[i],g.origType.replace(r,"")===a.type?q.push(g.selector):t.splice(i--,1);f=d(a.target).closest(q,a.currentTarget);for(j=0,k=f.length;j<k;j++){m=f[j];for(i=0;i<t.length;i++){g=t[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,e=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,e=d(a.relatedTarget).closest(g.selector)[0];(!e||e!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){f=p[j];if(c&&f.level>c)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function E(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function y(){return!0}function x(){return!1}function i(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function h(a,c,e){if(e===b&&a.nodeType===1){e=a.getAttribute("data-"+c);if(typeof e==="string"){try{e=e==="true"?!0:e==="false"?!1:e==="null"?null:d.isNaN(e)?g.test(e)?d.parseJSON(e):e:parseFloat(e)}catch(f){}d.data(a,c,e)}else e=b}return e}var c=a.document,d=function(){function G(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(G,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x,y,z=Object.prototype.toString,A=Object.prototype.hasOwnProperty,B=Array.prototype.push,C=Array.prototype.slice,D=String.prototype.trim,E=Array.prototype.indexOf,F={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.2",length:0,size:function(){return this.length},toArray:function(){return C.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?B.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),x.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(C.apply(this,arguments),"slice",C.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:B,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){e=i[c],f=a[c];if(i===f)continue;l&&f&&(d.isPlainObject(f)||(g=d.isArray(f)))?(g?(g=!1,h=e&&d.isArray(e)?e:[]):h=e&&d.isPlainObject(e)?e:{},i[c]=d.extend(l,h,f)):f!==b&&(i[c]=f)}return i},d.extend({noConflict:function(b){a.$=f,b&&(a.jQuery=e);return d},isReady:!1,readyWait:1,ready:function(a){a===!0&&d.readyWait--;if(!d.readyWait||a!==!0&&!d.isReady){if(!c.body)return setTimeout(d.ready,1);d.isReady=!0;if(a!==!0&&--d.readyWait>0)return;x.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=d._Deferred();if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",y,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",y),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&G()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):F[z.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!A.call(a,"constructor")&&!A.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||A.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g<h;)if(c.apply(a[g++],e)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(var j=a[0];g<h&&c.call(j,g,j)!==!1;j=a[++g]){}return a},trim:D?function(a){return a==null?"":D.call(a)}:function(a){return a==null?"":(a+"").replace(j,"").replace(k,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var e=d.type(a);a.length==null||e==="string"||e==="function"||e==="regexp"||d.isWindow(a)?B.call(c,a):d.merge(c,a)}return c},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length==="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,b,c){var d=[],e;for(var f=0,g=a.length;f<g;f++)e=b(a[f],f,c),e!=null&&(d[d.length]=e);return d.concat.apply([],d)},guid:1,proxy:function(a,c,e){arguments.length===2&&(typeof c==="string"?(e=a,a=e[c],c=b):c&&!d.isFunction(c)&&(e=c,c=b)),!c&&a&&(c=function(){return a.apply(e||this,arguments)}),a&&(c.guid=a.guid=a.guid||c.guid||d.guid++);return c},access:function(a,c,e,f,g,h){var i=a.length;if(typeof c==="object"){for(var j in c)d.access(a,j,c[j],f,g,e);return a}if(e!==b){f=!h&&f&&d.isFunction(e);for(var k=0;k<i;k++)g(a[k],c,f?e.call(a[k],k,g(a[k],c)):e,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){F["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),E&&(d.inArray=function(a,b){return E.call(b,a)}),i.test(" ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?y=function(){c.removeEventListener("DOMContentLoaded",y,!1),d.ready()}:c.attachEvent&&(y=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",y),d.ready())});return d}(),e="then done fail isResolved isRejected promise".split(" "),f=[].slice;d.extend({_Deferred:function(){var a=[],b,c,e,f={done:function(){if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this},resolveWith:function(d,f){if(!e&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(d,f)}finally{b=[d,f],c=0}}return this},resolve:function(){f.resolveWith(this,arguments);return this},isResolved:function(){return c||b},cancel:function(){e=1,a=[];return this}};return f},Deferred:function(a){var b=d._Deferred(),c=d._Deferred(),f;d.extend(b,{then:function(a,c){b.done(a).fail(c);return this},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,promise:function(a){if(a==null){if(f)return f;f=a={}}var c=e.length;while(c--)a[e[c]]=b[e[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?f.call(arguments,0):c,--g||h.resolveWith(h,f.call(b,0))}}var b=arguments,c=0,e=b.length,g=e,h=e<=1&&a&&d.isFunction(a.promise)?a:d.Deferred();if(e>1){for(;c<e;c++)b[c]&&d.isFunction(b[c].promise)?b[c].promise().then(i(c),h.reject):--g;g||h.resolveWith(h,b)}else h!==a&&h.resolveWith(h,e?[a]:[]);return h.promise()}}),function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0,reliableMarginRight:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e)}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(a.style.width="1px",a.style.marginRight="0",d.support.reliableMarginRight=(parseInt(c.defaultView.getComputedStyle(a,null).marginRight,10)||0)===0),b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function");return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}}();var g=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!i(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,g=b.nodeType,h=g?d.cache:b,j=g?b[d.expando]:d.expando;if(!h[j])return;if(c){var k=e?h[j][f]:h[j];if(k){delete k[c];if(!i(k))return}}if(e){delete h[j][f];if(!i(h[j]))return}var l=h[j][f];d.support.deleteExpando||h!=a?delete h[j]:h[j]=null,l?(h[j]={},g||(h[j].toJSON=d.noop),h[j][f]=l):g&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var f=this[0].attributes,g;for(var i=0,j=f.length;i<j;i++)g=f[i].name,g.indexOf("data-")===0&&(g=g.substr(5),h(this[0],g,e[g]))}}return e}if(typeof a==="object")return this.each(function(){d.data(this,a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(c===b){e=this.triggerHandler("getData"+k[1]+"!",[k[0]]),e===b&&this.length&&(e=d.data(this[0],a),e=h(this[0],a,e));return e===b&&k[1]?this.data(k[0]):e}return this.each(function(){var b=d(this),e=[k[0],c];b.triggerHandler("setData"+k[1]+"!",e),d.data(this,a,c),b.triggerHandler("changeData"+k[1]+"!",e)})},removeData:function(a){return this.each(function(){d.removeData(this,a)})}}),d.extend({queue:function(a,b,c){if(a){b=(b||"fx")+"queue";var e=d._data(a,b);if(!c)return e||[];!e||d.isArray(c)?e=d._data(a,b,d.makeArray(c)):e.push(c);return e}},dequeue:function(a,b){b=b||"fx";var c=d.queue(a,b),e=c.shift();e==="inprogress"&&(e=c.shift()),e&&(b==="fx"&&c.unshift("inprogress"),e.call(a,function(){d.dequeue(a,b)})),c.length||d.removeData(a,b+"queue",!0)}}),d.fn.extend({queue:function(a,c){typeof a!=="string"&&(c=a,a="fx");if(c===b)return d.queue(this[0],a);return this.each(function(b){var e=d.queue(this,a,c);a==="fx"&&e[0]!=="inprogress"&&d.dequeue(this,a)})},dequeue:function(a){return this.each(function(){d.dequeue(this,a)})},delay:function(a,b){a=d.fx?d.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){d.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var j=/[\n\t\r]/g,k=/\s+/,l=/\r/g,m=/^(?:href|src|style)$/,n=/^(?:button|input)$/i,o=/^(?:button|input|object|select|textarea)$/i,p=/^a(?:rea)?$/i,q=/^(?:radio|checkbox)$/i;d.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"},d.fn.extend({attr:function(a,b){return d.access(this,a,b,!0,d.attr)},removeAttr:function(a,b){return this.each(function(){d.attr(this,a,""),this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.addClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"){var b=(a||"").split(k);for(var c=0,e=this.length;c<e;c++){var f=this[c];if(f.nodeType===1)if(f.className){var g=" "+f.className+" ",h=f.className;for(var i=0,j=b.length;i<j;i++)g.indexOf(" "+b[i]+" ")<0&&(h+=" "+b[i]);f.className=d.trim(h)}else f.className=a}}return this},removeClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"||a===b){var c=(a||"").split(k);for(var e=0,f=this.length;e<f;e++){var g=this[e];if(g.nodeType===1&&g.className)if(a){var h=(" "+g.className+" ").replace(j," ");for(var i=0,l=c.length;i<l;i++)h=h.replace(" "+c[i]+" "," ");g.className=d.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,e=typeof b==="boolean";if(d.isFunction(a))return this.each(function(c){var e=d(this);e.toggleClass(a.call(this,c,e.attr("class"),b),b)});return this.each(function(){if(c==="string"){var f,g=0,h=d(this),i=b,j=a.split(k);while(f=j[g++])i=e?i:!h.hasClass(f),h[i?"addClass":"removeClass"](f)}else if(c==="undefined"||c==="boolean")this.className&&d._data(this,"__className__",this.className),this.className=this.className||a===!1?"":d._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(j," ").indexOf(b)>-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var j=i?f:0,k=i?f+1:h.length;j<k;j++){var m=h[j];if(m.selected&&(d.support.optDisabled?!m.disabled:m.getAttribute("disabled")===null)&&(!m.parentNode.disabled||!d.nodeName(m.parentNode,"optgroup"))){a=d(m).val();if(i)return a;g.push(a)}}if(i&&!g.length&&h.length)return d(h[f]).val();return g}if(q.test(c.type)&&!d.support.checkOn)return c.getAttribute("value")===null?"on":c.value;return(c.value||"").replace(l,"")}return b}var n=d.isFunction(a);return this.each(function(b){var c=d(this),e=a;if(this.nodeType===1){n&&(e=a.call(this,b,c.val())),e==null?e="":typeof e==="number"?e+="":d.isArray(e)&&(e=d.map(e,function(a){return a==null?"":a+""}));if(d.isArray(e)&&q.test(this.type))this.checked=d.inArray(c.val(),e)>=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=m.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&n.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var k=a.getAttributeNode("tabIndex");return k&&k.specified?k.value:o.test(a.nodeName)||p.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var l=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return l===null?b:l}h&&(a[c]=e);return a[c]}});var r=/\.(.*)$/,s=/^(?:textarea|input|select)$/i,t=/\./g,u=/ /g,v=/[^\w\s.|`]/g,w=function(a){return a.replace(v,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=x;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(a){return typeof d!=="undefined"&&d.event.triggered!==a.type?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=x);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),w).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))d.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=d.event.special[h]||{};for(j=f||0;j<p.length;j++){q=p[j];if(e.guid===q.guid){if(l||n.test(q.namespace))f==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(f!=null)break}}if(p.length===0||f!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&d.removeEvent(a,h,s.handle),g=null,delete t[h]}if(d.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,d.isEmptyObject(s)&&d.removeData(a,b,!0)}}},trigger:function(a,c,e){var f=a.type||a,g=arguments[3];if(!g){a=typeof a==="object"?a[d.expando]?a:d.extend(d.Event(f),a):d.Event(f),f.indexOf("!")>=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(r,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=a.type,l[m]())}catch(p){}k&&(l["on"+m]=k),d.event.triggered=b}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l<m;l++){var n=f[l];if(e||h.test(n.namespace)){c.handler=n.handler,c.data=n.data,c.handleObj=n;var o=n.handler.apply(this,k);o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[d.expando])return a;var e=a;a=d.Event(e);for(var f=this.props.length,g;f;)g=this.props[--f],a[g]=e[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=c.documentElement,i=c.body;a.pageX=a.clientX+(h&&h.scrollLeft||i&&i.scrollLeft||0)-(h&&h.clientLeft||i&&i.clientLeft||0),a.pageY=a.clientY+(h&&h.scrollTop||i&&i.scrollTop||0)-(h&&h.clientTop||i&&i.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:d.proxy,special:{ready:{setup:d.bindReady,teardown:d.noop},live:{add:function(a){d.event.add(this,H(a.origType,a.selector),d.extend({},a,{handler:G,guid:a.handler.guid}))},remove:function(a){d.event.remove(this,H(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){d.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},d.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},d.Event=function(a){if(!this.preventDefault)return new d.Event(a);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?y:x):this.type=a,this.timeStamp=d.now(),this[d.expando]=!0},d.Event.prototype={preventDefault:function(){this.isDefaultPrevented=y;var a=this.originalEvent;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=y;var a=this.originalEvent;a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=y,this.stopPropagation()},isDefaultPrevented:x,isPropagationStopped:x,isImmediatePropagationStopped:x};var z=function(a){var b=a.relatedTarget;try{if(b&&b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&(a.type=a.data,d.event.handle.apply(this,arguments))}catch(e){}},A=function(a){a.type=a.data,d.event.handle.apply(this,arguments)};d.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){d.event.special[a]={setup:function(c){d.event.add(this,b,c&&c.selector?A:z,a)},teardown:function(a){d.event.remove(this,b,a&&a.selector?A:z)}}}),d.support.submitBubbles||(d.event.special.submit={setup:function(a,b){if(this.nodeName&&this.nodeName.toLowerCase()!=="form")d.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&d(b).closest("form").length&&E("submit",this,arguments)}),d.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&d(b).closest("form").length&&a.keyCode===13&&E("submit",this,arguments)});else return!1},teardown:function(a){d.event.remove(this,".specialSubmit")}});if(!d.support.changeBubbles){var B,C=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},D=function D(a){var c=a.target,e,f;if(s.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=C(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:D,beforedeactivate:D,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&D.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&D.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",C(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in B)d.event.add(this,c+".specialChange",B[c]);return s.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return s.test(this.nodeName)}},B=d.event.special.change.filters,B.focus=B.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function f(a){var c=d.event.fix(a);c.type=b,c.originalEvent={},d.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var e=0;d.event.special[b]={setup:function(){e++===0&&c.addEventListener(a,f,!0)},teardown:function(){--e===0&&c.removeEventListener(a,f,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i<j;i++)d.event.add(this[i],a,h,e);return this}}),d.fn.extend({unbind:function(a,b){if(typeof a!=="object"||a.preventDefault)for(var e=0,f=this.length;e<f;e++)d.event.remove(this[e],a,b);else for(var c in a)this.unbind(c,a[c]);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){d.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var c=d.Event(a);c.preventDefault(),c.stopPropagation(),d.event.trigger(c,b,this[0]);return c.result}},toggle:function(a){var b=arguments,c=1;while(c<b.length)d.proxy(a,b[c++]);return this.click(d.proxy(a,function(e){var f=(d._data(this,"lastToggle"+a.guid)||0)%c;d._data(this,"lastToggle"+a.guid,f+1),e.preventDefault();return b[f].apply(this,arguments)||!1}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var F={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};d.each(["live","die"],function(a,c){d.fn[c]=function(a,e,f,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:d(this.context);if(typeof a==="object"&&!a.preventDefault){for(var o in a)n[c](o,e,a[o],m);return this}d.isFunction(e)&&(f=e,e=b),a=(a||"").split(" ");while((h=a[i++])!=null){j=r.exec(h),k="",j&&(k=j[0],h=h.replace(r,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,h==="focus"||h==="blur"?(a.push(F[h]+k),h=h+k):h=(F[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)d.event.add(n[p],"live."+H(h,m),{data:e,selector:m,handler:f,origType:h,origHandler:f,preType:l});else n.unbind("live."+H(h,m),f)}return this}}),d.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){d.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!=="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!=="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(f){if(f===!0)continue}else g=o=!0}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b==="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1){}a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!=="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!=="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!=="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return"text"===c&&(b===c||b===null)},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(a===b){g=!0;return 0}if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};d.find=k,d.expr=k.selectors,d.expr[":"]=d.expr.filters,d.unique=k.uniqueSort,d.text=k.getText,d.isXMLDoc=k.isXML,d.contains=k.contains}();var I=/Until$/,J=/^(?:parents|prevUntil|prevAll)/,K=/,/,L=/^.[^:#\[\.,]*$/,M=Array.prototype.slice,N=d.expr.match.POS,O={children:!0,contents:!0,next:!0,prev:!0};d.fn.extend({find:function(a){var b=this.pushStack("","find",a),c=0;for(var e=0,f=this.length;e<f;e++){c=b.length,d.find(a,this[e],b);if(e>0)for(var g=c;g<b.length;g++)for(var h=0;h<c;h++)if(b[h]===b[g]){b.splice(g--,1);break}}return b},has:function(a){var b=d(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(d.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(Q(this,a,!1),"not",a)},filter:function(a){return this.pushStack(Q(this,a,!0),"filter",a)},is:function(a){return!!a&&d.filter(a,this).length>0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e<f;e++)i=a[e],j[i]||(j[i]=d.expr.match.POS.test(i)?d(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=N.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e<f;e++){g=this[e];while(g){if(l?l.index(g)>-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(P(c[0])||P(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=M.call(arguments);I.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!O[a]?d.unique(f):f,(this.length>1||K.test(e))&&J.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var R=/ jQuery\d+="(?:\d+|null)"/g,S=/^\s+/,T=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,U=/<([\w:]+)/,V=/<tbody/i,W=/<|&#?\w+;/,X=/<(?:script|object|embed|option|style)/i,Y=/checked\s*(?:[^=]|=\s*.checked.)/i,Z={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};Z.optgroup=Z.option,Z.tbody=Z.tfoot=Z.colgroup=Z.caption=Z.thead,Z.th=Z.td,d.support.htmlSerialize||(Z._default=[1,"div<div>","</div>"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(R,""):null;if(typeof a!=="string"||X.test(a)||!d.support.leadingWhitespace&&S.test(a)||Z[(U.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(T,"<$1></$2>");try{for(var c=0,e=this.length;c<e;c++)this[c].nodeType===1&&(d.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(f){this.empty().append(a)}}return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(d.isFunction(a))return this.each(function(b){var c=d(this),e=c.html();c.replaceWith(a.call(this,b,e))});typeof a!=="string"&&(a=d(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;d(this).remove(),b?d(b).before(a):d(c).append(a)})}return this.length?this.pushStack(d(d.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,e){var f,g,h,i,j=a[0],k=[];if(!d.support.checkClone&&arguments.length===3&&typeof j==="string"&&Y.test(j))return this.each(function(){d(this).domManip(a,c,e,!0)});if(d.isFunction(j))return this.each(function(f){var g=d(this);a[0]=j.call(this,f,c?g.html():b),g.domManip(a,c,e)});if(this[0]){i=j&&j.parentNode,d.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?f={fragment:i}:f=d.buildFragment(a,this,k),h=f.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&d.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)e.call(c?$(this[l],g):this[l],f.cacheable||m>1&&l<n?d.clone(h,!0,!0):h)}k.length&&d.each(k,bc)}return this}}),d.buildFragment=function(a,b,e){var f,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]==="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!X.test(a[0])&&(d.support.checkClone||!Y.test(a[0]))&&(g=!0,h=d.fragments[a[0]],h&&(h!==1&&(f=h))),f||(f=i.createDocumentFragment(),d.clean(a,i,f,e)),g&&(d.fragments[a[0]]=h?f:1);return{fragment:f,cacheable:g}},d.fragments={},d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){d.fn[a]=function(c){var e=[],f=d(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&f.length===1){f[b](this[0]);return this}for(var h=0,i=f.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){ba(a,e),f=bb(a),g=bb(e);for(h=0;f[h];++h)ba(f[h],g[h])}if(b){_(a,e);if(c){f=bb(a),g=bb(e);for(h=0;f[h];++h)_(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||W.test(i)){if(typeof i==="string"){i=i.replace(T,"<$1></$2>");var j=(U.exec(i)||["",""])[1].toLowerCase(),k=Z[j]||Z._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=V.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]==="<table>"&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&S.test(i)&&m.insertBefore(b.createTextNode(S.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bd=/alpha\([^)]*\)/i,be=/opacity=([^)]*)/,bf=/-([a-z])/ig,bg=/([A-Z]|^ms)/g,bh=/^-?\d+(?:px)?$/i,bi=/^-?\d/,bj={position:"absolute",visibility:"hidden",display:"block"},bk=["Left","Right"],bl=["Top","Bottom"],bm,bn,bo,bp=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bm(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bm)return bm(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bf,bp)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bq(a,b,e):d.swap(a,bj,function(){f=bq(a,b,e)});if(f<=0){f=bm(a,b,b),f==="0px"&&bo&&(f=bo(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bh.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return be.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bd.test(f)?f.replace(bd,e):c.filter+" "+e}}),d(function(){d.support.reliableMarginRight||(d.cssHooks.marginRight={get:function(a,b){var c;d.swap(a,{display:"inline-block"},function(){b?c=bm(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bn=function(a,c,e){var f,g,h;e=e.replace(bg,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bo=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bh.test(d)&&bi.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bm=bn||bo,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var br=/%20/g,bs=/\[\]$/,bt=/\r?\n/g,bu=/#.*$/,bv=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bw=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bx=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,by=/^(?:GET|HEAD)$/,bz=/^\/\//,bA=/\?/,bB=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bC=/^(?:select|textarea)/i,bD=/\s+/,bE=/([?&])_=[^&]*/,bF=/(^|\-)([a-z])/g,bG=function(a,b,c){return b+c.toUpperCase()},bH=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bI=d.fn.load,bJ={},bK={},bL,bM;try{bL=c.location.href}catch(bN){bL=c.createElement("a"),bL.href="",bL=bL.href}bM=bH.exec(bL.toLowerCase())||[],d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bI)return bI.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("<div>").append(c.replace(bB,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bC.test(this.nodeName)||bw.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(bt,"\r\n")}}):{name:b.name,value:c.replace(bt,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bL,isLocal:bx.test(bM[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bO(bJ),ajaxTransport:bO(bK),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bR(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bS(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bF,bG)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bv.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bu,"").replace(bz,bM[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bD),e.crossDomain==null&&(q=bH.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bM[1]||q[2]!=bM[2]||(q[3]||(q[1]==="http:"?80:443))!=(bM[3]||(bM[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bP(bJ,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!by.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(bA.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bE,"$1_="+w);e.url=x+(x===e.url?(bA.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bP(bK,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bQ(g,a[g],c,f);return e.join("&").replace(br,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bT=d.now(),bU=/(\=)\?(&|$)|\?\?/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bT++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bU.test(b.url)||f&&bU.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bU,l),b.url===j&&(f&&(k=k.replace(bU,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bV=d.now(),bW,bX;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bZ()||b$()}:bZ,bX=d.ajaxSettings.xhr(),d.support.ajax=!!bX,d.support.cors=bX&&"withCredentials"in bX,bX=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),!a.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bW[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bW||(bW={},bY()),h=bV++,g.onreadystatechange=bW[h]=c):c()},abort:function(){c&&c(0,1)}}}});var b_={},ca=/^(?:toggle|show|hide)$/,cb=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cc,cd=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(ce("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)e=this[g],f=e.style.display,!d._data(e,"olddisplay")&&f==="none"&&(f=e.style.display=""),f===""&&d.css(e,"display")==="none"&&d._data(e,"olddisplay",cf(e.nodeName));for(g=0;g<h;g++){e=this[g],f=e.style.display;if(f===""||f==="none")e.style.display=d._data(e,"olddisplay")||""}return this},hide:function(a,b,c){if(a||a===0)return this.animate(ce("hide",3),a,b,c);for(var e=0,f=this.length;e<f;e++){var g=d.css(this[e],"display");g!=="none"&&!d._data(this[e],"olddisplay")&&d._data(this[e],"olddisplay",g)}for(e=0;e<f;e++)this[e].style.display="none";return this},_toggle:d.fn.toggle,toggle:function(a,b,c){var e=typeof a==="boolean";d.isFunction(a)&&d.isFunction(b)?this._toggle.apply(this,arguments):a==null||e?this.each(function(){var b=e?a:d(this).is(":hidden");d(this)[b?"show":"hide"]()}):this.animate(ce("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,e){var f=d.speed(b,c,e);if(d.isEmptyObject(a))return this.each(f.complete);return this[f.queue===!1?"each":"queue"](function(){var b=d.extend({},f),c,e=this.nodeType===1,g=e&&d(this).is(":hidden"),h=this;for(c in a){var i=d.camelCase(c);c!==i&&(a[i]=a[c],delete a[c],c=i);if(a[c]==="hide"&&g||a[c]==="show"&&!g)return b.complete.call(this);if(e&&(c==="height"||c==="width")){b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(d.css(this,"display")==="inline"&&d.css(this,"float")==="none")if(d.support.inlineBlockNeedsLayout){var j=cf(this.nodeName);j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)}else this.style.display="inline-block"}d.isArray(a[c])&&((b.specialEasing=b.specialEasing||{})[c]=a[c][1],a[c]=a[c][0])}b.overflow!=null&&(this.style.overflow="hidden"),b.curAnim=d.extend({},a),d.each(a,function(c,e){var f=new d.fx(h,b,c);if(ca.test(e))f[e==="toggle"?g?"show":"hide":e](a);else{var i=cb.exec(e),j=f.cur();if(i){var k=parseFloat(i[2]),l=i[3]||(d.cssNumber[c]?"":"px");l!=="px"&&(d.style(h,c,(k||1)+l),j=(k||1)/f.cur()*j,d.style(h,c,j+l)),i[1]&&(k=(i[1]==="-="?-1:1)*k+j),f.custom(j,k,l)}else f.custom(j,e,"")}});return!0})},stop:function(a,b){var c=d.timers;a&&this.queue([]),this.each(function(){for(var a=c.length-1;a>=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:ce("show",1),slideUp:ce("hide",1),slideToggle:ce("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!cc&&(cc=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||d.fx.stop()},interval:13,stop:function(){clearInterval(cc),cc=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){d.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),d.expr&&d.expr.filters&&(d.expr.filters.animated=function(a){return d.grep(d.timers,function(b){return a===b.elem}).length});var cg=/^t(?:able|d|h)$/i,ch=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?d.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,g=f.documentElement;if(!c||!d.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=f.body,i=ci(f),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||d.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||d.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:d.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);d.offset.initialize();var c,e=b.offsetParent,f=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(d.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===e&&(l+=b.offsetTop,m+=b.offsetLeft,d.offset.doesNotAddBorder&&(!d.offset.doesAddBorderForTableAndCells||!cg.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),f=e,e=b.offsetParent),d.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;d.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},d.offset={initialize:function(){var a=c.body,b=c.createElement("div"),e,f,g,h,i=parseFloat(d.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=(e==="absolute"||e==="fixed")&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=ch.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!ch.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=ci(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=ci(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window);
\ No newline at end of file
diff --git a/docs/stable/modules_list.html b/docs/stable/modules_list.html
new file mode 100644
index 000000000..a3b7b61c5
--- /dev/null
+++ b/docs/stable/modules_list.html
@@ -0,0 +1,7642 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
+    <base id="base_target" target="_parent" />
+  </head>
+  <body class="frames">
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) {
+        document.getElementById('base_target').target = 'main';
+        document.body.className = 'frames';
+      }
+    </script>
+    <div id="content">
+      <h1 id="full_list_header">
+        <a href="http://elixir-lang.org/" target="_blank">Elixir v0.9.1</a>
+      </h1>
+      <div id="nav">
+        <span class="selected"><a target="_self" href="modules_list.html">
+          Modules
+        </a></span>
+        <span class=""><a target="_self" href="records_list.html">
+          Records
+        </a></span>
+        <span class=""><a target="_self" href="protocols_list.html">
+          Protocols
+        </a></span>
+        <div class="clear"></div>
+      </div>
+      <div id="search">Search: <input type="text" /></div>
+
+      <ul id="full_list" class="class">
+        <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Application.Behaviour.html" title="Application.Behaviour">Application.Behaviour</a>
+  </span>
+  <small class="search_info">Application.Behaviour</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Behaviour.html" title="Behaviour">Behaviour</a>
+  </span>
+  <small class="search_info">Behaviour</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Behaviour.html#defcallback/1">defcallback/1</a>
+      </span>
+      <small class="search_info">Behaviour</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Bitwise.html" title="Bitwise">Bitwise</a>
+  </span>
+  <small class="search_info">Bitwise</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#&amp;&amp;&amp;/2">&amp;&amp;&amp;/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#&lt;&lt;&lt;/2">&lt;&lt;&lt;/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#&gt;&gt;&gt;/2">&gt;&gt;&gt;/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#^^^/2">^^^/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#__using__/1">__using__/1</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#band/2">band/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#bnot/1">bnot/1</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#bor/2">bor/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#bsl/2">bsl/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#bsr/2">bsr/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#bxor/2">bxor/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#|||/2">|||/2</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Bitwise.html#~~~/1">~~~/1</a>
+      </span>
+      <small class="search_info">Bitwise</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Code.html" title="Code">Code</a>
+  </span>
+  <small class="search_info">Code</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#append_path/1">append_path/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#compile_quoted/2">compile_quoted/2</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#compile_string/2">compile_string/2</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#compiler_options/0">compiler_options/0</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#compiler_options/1">compiler_options/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#delete_path/1">delete_path/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#ensure_compiled/1">ensure_compiled/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#ensure_compiled?/1">ensure_compiled?/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#ensure_loaded/1">ensure_loaded/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#ensure_loaded?/1">ensure_loaded?/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#eval_quoted/3">eval_quoted/3</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#eval_string/3">eval_string/3</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#load_file/2">load_file/2</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#loaded_files/0">loaded_files/0</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#prepend_path/1">prepend_path/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#require_file/2">require_file/2</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#string_to_ast/2">string_to_ast/2</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#string_to_ast!/2">string_to_ast!/2</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.html#unload_files/1">unload_files/1</a>
+      </span>
+      <small class="search_info">Code</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Dict.html" title="Dict">Dict</a>
+  </span>
+  <small class="search_info">Dict</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#values/1">values/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#update/4">update/4</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#update/3">update/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#to_list/1">to_list/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#take/2">take/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#split/2">split/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#size/1">size/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#put_new/3">put_new/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#put/3">put/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#pop/3">pop/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#pop/2">pop/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#merge/3">merge/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#merge/2">merge/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#keys/1">keys/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#has_key?/2">has_key?/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#get/3">get/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#get/2">get/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#equal?/2">equal?/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#empty/1">empty/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#drop/2">drop/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#delete/2">delete/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#delete/2">delete/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#drop/2">drop/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#empty/1">empty/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#equal?/2">equal?/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#fetch/2">fetch/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#fetch!/2">fetch!/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#get/3">get/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#has_key?/2">has_key?/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#keys/1">keys/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#merge/2">merge/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#merge/3">merge/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#pop/3">pop/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#put/3">put/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#put_new/3">put_new/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#size/1">size/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#split/2">split/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#take/2">take/2</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#to_list/1">to_list/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#update/3">update/3</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#update/4">update/4</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Dict.html#values/1">values/1</a>
+      </span>
+      <small class="search_info">Dict</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="EEx.html" title="EEx">EEx</a>
+  </span>
+  <small class="search_info">EEx</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="EEx.AssignsEngine.html" title="EEx.AssignsEngine">AssignsEngine</a>
+  </span>
+  <small class="search_info">EEx.AssignsEngine</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="EEx.Engine.html" title="EEx.Engine">Engine</a>
+  </span>
+  <small class="search_info">EEx.Engine</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.Engine.html#behaviour_info/1">behaviour_info/1</a>
+      </span>
+      <small class="search_info">EEx.Engine</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.Engine.html#handle_expr/3">handle_expr/3</a>
+      </span>
+      <small class="search_info">EEx.Engine</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.Engine.html#handle_text/2">handle_text/2</a>
+      </span>
+      <small class="search_info">EEx.Engine</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="EEx.SmartEngine.html" title="EEx.SmartEngine">SmartEngine</a>
+  </span>
+  <small class="search_info">EEx.SmartEngine</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.SmartEngine.html#handle_expr/3">handle_expr/3</a>
+      </span>
+      <small class="search_info">EEx.SmartEngine</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.SmartEngine.html#handle_text/2">handle_text/2</a>
+      </span>
+      <small class="search_info">EEx.SmartEngine</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="EEx.TransformerEngine.html" title="EEx.TransformerEngine">TransformerEngine</a>
+  </span>
+  <small class="search_info">EEx.TransformerEngine</small>
+</li>
+<ul>
+  
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.html#compile_file/2">compile_file/2</a>
+      </span>
+      <small class="search_info">EEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.html#compile_string/2">compile_string/2</a>
+      </span>
+      <small class="search_info">EEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.html#eval_file/3">eval_file/3</a>
+      </span>
+      <small class="search_info">EEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.html#eval_string/3">eval_string/3</a>
+      </span>
+      <small class="search_info">EEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.html#function_from_file/5">function_from_file/5</a>
+      </span>
+      <small class="search_info">EEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="EEx.html#function_from_string/5">function_from_string/5</a>
+      </span>
+      <small class="search_info">EEx</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Enum.html" title="Enum">Enum</a>
+  </span>
+  <small class="search_info">Enum</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#all?/2">all?/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#any?/2">any?/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#at/3">at/3</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#count/1">count/1</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#count/2">count/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#drop/2">drop/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#drop_while/2">drop_while/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#each/2">each/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#empty?/1">empty?/1</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#fetch/2">fetch/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#fetch!/2">fetch!/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#filter/2">filter/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#filter_map/3">filter_map/3</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#find/3">find/3</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#find_index/2">find_index/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#find_value/3">find_value/3</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#first/1">first/1</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#join/2">join/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#map/2">map/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#map_join/3">map_join/3</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#map_reduce/3">map_reduce/3</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#max/1">max/1</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#max/2">max/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#member?/2">member?/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#min/1">min/1</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#min/2">min/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#partition/2">partition/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#reduce/3">reduce/3</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#reverse/1">reverse/1</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#sort/1">sort/1</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#sort/2">sort/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#split/2">split/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#split_while/2">split_while/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#take/2">take/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#take_while/2">take_while/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#to_list/1">to_list/1</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#uniq/2">uniq/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enum.html#zip/2">zip/2</a>
+      </span>
+      <small class="search_info">Enum</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.html" title="ExUnit">ExUnit</a>
+  </span>
+  <small class="search_info">ExUnit</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.Assertions.html" title="ExUnit.Assertions">Assertions</a>
+  </span>
+  <small class="search_info">ExUnit.Assertions</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#assert/1">assert/1</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#assert/2">assert/2</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#assert/4">assert/4</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#assert_in_delta/4">assert_in_delta/4</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#assert_raise/2">assert_raise/2</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#assert_raise/3">assert_raise/3</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#assert_receive/3">assert_receive/3</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#assert_received/2">assert_received/2</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#catch_error/1">catch_error/1</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#catch_exit/1">catch_exit/1</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#catch_throw/1">catch_throw/1</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#flunk/1">flunk/1</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#refute/1">refute/1</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#refute/2">refute/2</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#refute_in_delta/4">refute_in_delta/4</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#refute_receive/3">refute_receive/3</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Assertions.html#refute_received/2">refute_received/2</a>
+      </span>
+      <small class="search_info">ExUnit.Assertions</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.CLIFormatter.html" title="ExUnit.CLIFormatter">CLIFormatter</a>
+  </span>
+  <small class="search_info">ExUnit.CLIFormatter</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CLIFormatter.html#case_finished/2">case_finished/2</a>
+      </span>
+      <small class="search_info">ExUnit.CLIFormatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CLIFormatter.html#case_started/2">case_started/2</a>
+      </span>
+      <small class="search_info">ExUnit.CLIFormatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CLIFormatter.html#suite_finished/3">suite_finished/3</a>
+      </span>
+      <small class="search_info">ExUnit.CLIFormatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CLIFormatter.html#suite_started/1">suite_started/1</a>
+      </span>
+      <small class="search_info">ExUnit.CLIFormatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CLIFormatter.html#test_finished/2">test_finished/2</a>
+      </span>
+      <small class="search_info">ExUnit.CLIFormatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CLIFormatter.html#test_started/2">test_started/2</a>
+      </span>
+      <small class="search_info">ExUnit.CLIFormatter</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.Callbacks.html" title="ExUnit.Callbacks">Callbacks</a>
+  </span>
+  <small class="search_info">ExUnit.Callbacks</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Callbacks.html#setup/2">setup/2</a>
+      </span>
+      <small class="search_info">ExUnit.Callbacks</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Callbacks.html#setup_all/2">setup_all/2</a>
+      </span>
+      <small class="search_info">ExUnit.Callbacks</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Callbacks.html#teardown/2">teardown/2</a>
+      </span>
+      <small class="search_info">ExUnit.Callbacks</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Callbacks.html#teardown_all/2">teardown_all/2</a>
+      </span>
+      <small class="search_info">ExUnit.Callbacks</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.CaptureIO.html" title="ExUnit.CaptureIO">CaptureIO</a>
+  </span>
+  <small class="search_info">ExUnit.CaptureIO</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CaptureIO.html#capture_io/1">capture_io/1</a>
+      </span>
+      <small class="search_info">ExUnit.CaptureIO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CaptureIO.html#capture_io/2">capture_io/2</a>
+      </span>
+      <small class="search_info">ExUnit.CaptureIO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CaptureIO.html#capture_io/3">capture_io/3</a>
+      </span>
+      <small class="search_info">ExUnit.CaptureIO</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.Case.html" title="ExUnit.Case">Case</a>
+  </span>
+  <small class="search_info">ExUnit.Case</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Case.html#test/3">test/3</a>
+      </span>
+      <small class="search_info">ExUnit.Case</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.CaseTemplate.html" title="ExUnit.CaseTemplate">CaseTemplate</a>
+  </span>
+  <small class="search_info">ExUnit.CaseTemplate</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.CaseTemplate.html#using/2">using/2</a>
+      </span>
+      <small class="search_info">ExUnit.CaseTemplate</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.DocTest.html" title="ExUnit.DocTest">DocTest</a>
+  </span>
+  <small class="search_info">ExUnit.DocTest</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.DocTest.html#doctest/2">doctest/2</a>
+      </span>
+      <small class="search_info">ExUnit.DocTest</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.Formatter.html" title="ExUnit.Formatter">Formatter</a>
+  </span>
+  <small class="search_info">ExUnit.Formatter</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Formatter.html#test_finished/2">test_finished/2</a>
+      </span>
+      <small class="search_info">ExUnit.Formatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Formatter.html#test_started/2">test_started/2</a>
+      </span>
+      <small class="search_info">ExUnit.Formatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Formatter.html#case_finished/2">case_finished/2</a>
+      </span>
+      <small class="search_info">ExUnit.Formatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Formatter.html#case_started/2">case_started/2</a>
+      </span>
+      <small class="search_info">ExUnit.Formatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Formatter.html#suite_finished/3">suite_finished/3</a>
+      </span>
+      <small class="search_info">ExUnit.Formatter</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.Formatter.html#suite_started/1">suite_started/1</a>
+      </span>
+      <small class="search_info">ExUnit.Formatter</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.html#configure/1">configure/1</a>
+      </span>
+      <small class="search_info">ExUnit</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.html#run/0">run/0</a>
+      </span>
+      <small class="search_info">ExUnit</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.html#start/1">start/1</a>
+      </span>
+      <small class="search_info">ExUnit</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Exception.html" title="Exception">Exception</a>
+  </span>
+  <small class="search_info">Exception</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Exception.html#format_file_line/3">format_file_line/3</a>
+      </span>
+      <small class="search_info">Exception</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Exception.html#format_stacktrace/1">format_stacktrace/1</a>
+      </span>
+      <small class="search_info">Exception</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Exception.html#format_stacktrace_entry/2">format_stacktrace_entry/2</a>
+      </span>
+      <small class="search_info">Exception</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Exception.html#normalize/1">normalize/1</a>
+      </span>
+      <small class="search_info">Exception</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Exception.html#print_stacktrace/1">print_stacktrace/1</a>
+      </span>
+      <small class="search_info">Exception</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="File.html" title="File">File</a>
+  </span>
+  <small class="search_info">File</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#biniterator/1">biniterator/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#biniterator!/2">biniterator!/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cd/1">cd/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cd!/1">cd!/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cd!/2">cd!/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#close/1">close/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#copy/3">copy/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#copy!/3">copy!/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cp/3">cp/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cp!/3">cp!/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cp_r/3">cp_r/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cp_r!/3">cp_r!/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cwd/0">cwd/0</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#cwd!/0">cwd!/0</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#dir?/1">dir?/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#exists?/1">exists?/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#iterator/1">iterator/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#iterator!/2">iterator!/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#ls/1">ls/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#ls!/1">ls!/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#mkdir/1">mkdir/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#mkdir!/1">mkdir!/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#mkdir_p/1">mkdir_p/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#mkdir_p!/1">mkdir_p!/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#open/2">open/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#open/3">open/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#open!/2">open!/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#open!/3">open!/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#read/1">read/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#read!/1">read!/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#regular?/1">regular?/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#rm/1">rm/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#rm!/1">rm!/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#rm_rf/1">rm_rf/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#rm_rf!/1">rm_rf!/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#rmdir/1">rmdir/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#rmdir!/1">rmdir!/1</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#stat/2">stat/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#stat!/2">stat!/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#touch/2">touch/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#touch!/2">touch!/2</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#write/3">write/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#write!/3">write!/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#write_stat/3">write_stat/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="File.html#write_stat!/3">write_stat!/3</a>
+      </span>
+      <small class="search_info">File</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="GenEvent.Behaviour.html" title="GenEvent.Behaviour">GenEvent.Behaviour</a>
+  </span>
+  <small class="search_info">GenEvent.Behaviour</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="GenServer.Behaviour.html" title="GenServer.Behaviour">GenServer.Behaviour</a>
+  </span>
+  <small class="search_info">GenServer.Behaviour</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="HashDict.html" title="HashDict">HashDict</a>
+  </span>
+  <small class="search_info">HashDict</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#delete/2">delete/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#drop/2">drop/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#empty/1">empty/1</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#equal?/2">equal?/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#fetch/2">fetch/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#fetch!/2">fetch!/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#get/3">get/3</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#has_key?/2">has_key?/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#keys/1">keys/1</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#merge/3">merge/3</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#new/0">new/0</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#new/1">new/1</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#new/2">new/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#pop/3">pop/3</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#put/3">put/3</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#put_new/3">put_new/3</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#reduce/3">reduce/3</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#size/1">size/1</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#split/2">split/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#take/2">take/2</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#to_list/1">to_list/1</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#update/3">update/3</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#update/4">update/4</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="HashDict.html#values/1">values/1</a>
+      </span>
+      <small class="search_info">HashDict</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="IEx.html" title="IEx">IEx</a>
+  </span>
+  <small class="search_info">IEx</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="IEx.Autocomplete.html" title="IEx.Autocomplete">Autocomplete</a>
+  </span>
+  <small class="search_info">IEx.Autocomplete</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Autocomplete.html#expand/1">expand/1</a>
+      </span>
+      <small class="search_info">IEx.Autocomplete</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="IEx.Helpers.html" title="IEx.Helpers">Helpers</a>
+  </span>
+  <small class="search_info">IEx.Helpers</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#c/2">c/2</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#cd/1">cd/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#flush/0">flush/0</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#h/0">h/0</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#h/1">h/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#import_file/1">import_file/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#l/1">l/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#ls/1">ls/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#m/0">m/0</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#pwd/0">pwd/0</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#r/0">r/0</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#r/1">r/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#s/1">s/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#t/1">t/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#v/0">v/0</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Helpers.html#v/1">v/1</a>
+      </span>
+      <small class="search_info">IEx.Helpers</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="IEx.Options.html" title="IEx.Options">Options</a>
+  </span>
+  <small class="search_info">IEx.Options</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#colors/0">colors/0</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#get/0">get/0</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#get/1">get/1</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#help/1">help/1</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#history_size/0">history_size/0</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#inspect/0">inspect/0</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#list/0">list/0</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#print_help/1">print_help/1</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#set/1">set/1</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.Options.html#set/2">set/2</a>
+      </span>
+      <small class="search_info">IEx.Options</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.html#after_spawn/0">after_spawn/0</a>
+      </span>
+      <small class="search_info">IEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.html#after_spawn/1">after_spawn/1</a>
+      </span>
+      <small class="search_info">IEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.html#color/2">color/2</a>
+      </span>
+      <small class="search_info">IEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.html#color_fragment/1">color_fragment/1</a>
+      </span>
+      <small class="search_info">IEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.html#color_reset/0">color_reset/0</a>
+      </span>
+      <small class="search_info">IEx</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IEx.html#started?/0">started?/0</a>
+      </span>
+      <small class="search_info">IEx</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="IO.html" title="IO">IO</a>
+  </span>
+  <small class="search_info">IO</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="IO.ANSI.html" title="IO.ANSI">ANSI</a>
+  </span>
+  <small class="search_info">IO.ANSI</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#black/0">black/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#black_background/0">black_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#blink_off/0">blink_off/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#blink_rapid/0">blink_rapid/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#blink_slow/0">blink_slow/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#blue/0">blue/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#blue_background/0">blue_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#bright/0">bright/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#conceal/0">conceal/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#crossed_out/0">crossed_out/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#cyan/0">cyan/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#cyan_background/0">cyan_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#default_background/0">default_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#default_color/0">default_color/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#encircled/0">encircled/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#escape/2">escape/2</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#escape_fragment/2">escape_fragment/2</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#faint/0">faint/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_1/0">font_1/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_2/0">font_2/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_3/0">font_3/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_4/0">font_4/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_5/0">font_5/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_6/0">font_6/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_7/0">font_7/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_8/0">font_8/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#font_9/0">font_9/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#framed/0">framed/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#green/0">green/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#green_background/0">green_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#inverse/0">inverse/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#italic/0">italic/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#magenta/0">magenta/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#magenta_background/0">magenta_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#no_underline/0">no_underline/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#normal/0">normal/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#not_framed_encircled/0">not_framed_encircled/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#not_italic/0">not_italic/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#not_overlined/0">not_overlined/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#overlined/0">overlined/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#primary_font/0">primary_font/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#red/0">red/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#red_background/0">red_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#reset/0">reset/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#reverse/0">reverse/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#terminal?/1">terminal?/1</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#underline/0">underline/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#white/0">white/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#white_background/0">white_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#yellow/0">yellow/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.ANSI.html#yellow_background/0">yellow_background/0</a>
+      </span>
+      <small class="search_info">IO.ANSI</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#binread/2">binread/2</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#binreadline/1">binreadline/1</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#binwrite/2">binwrite/2</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#getn/2">getn/2</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#getn/3">getn/3</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#gets/2">gets/2</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#inspect/3">inspect/3</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#puts/2">puts/2</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#read/2">read/2</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#readline/1">readline/1</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="IO.html#write/2">write/2</a>
+      </span>
+      <small class="search_info">IO</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Kernel.html" title="Kernel">Kernel</a>
+  </span>
+  <small class="search_info">Kernel</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Kernel.CLI.html" title="Kernel.CLI">CLI</a>
+  </span>
+  <small class="search_info">Kernel.CLI</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.CLI.html#run/2">run/2</a>
+      </span>
+      <small class="search_info">Kernel.CLI</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Kernel.ParallelCompiler.html" title="Kernel.ParallelCompiler">ParallelCompiler</a>
+  </span>
+  <small class="search_info">Kernel.ParallelCompiler</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.ParallelCompiler.html#files/2">files/2</a>
+      </span>
+      <small class="search_info">Kernel.ParallelCompiler</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.ParallelCompiler.html#files_to_path/3">files_to_path/3</a>
+      </span>
+      <small class="search_info">Kernel.ParallelCompiler</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Kernel.ParallelRequire.html" title="Kernel.ParallelRequire">ParallelRequire</a>
+  </span>
+  <small class="search_info">Kernel.ParallelRequire</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.ParallelRequire.html#files/2">files/2</a>
+      </span>
+      <small class="search_info">Kernel.ParallelRequire</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Kernel.SpecialForms.html" title="Kernel.SpecialForms">SpecialForms</a>
+  </span>
+  <small class="search_info">Kernel.SpecialForms</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#&lt;&lt;&gt;&gt;/1">&lt;&lt;&gt;&gt;/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#[]/1">[]/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#__DIR__/0">__DIR__/0</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#__ENV__/0">__ENV__/0</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#__FILE__/0">__FILE__/0</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#__MODULE__/0">__MODULE__/0</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#__aliases__/1">__aliases__/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#__block__/1">__block__/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#__scope__/2">__scope__/2</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#alias/2">alias/2</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#alias!/1">alias!/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#bc/1">bc/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#import/2">import/2</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#lc/1">lc/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#quote/2">quote/2</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#require/2">require/2</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#unquote/1">unquote/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#unquote_splicing/1">unquote_splicing/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#var!/1">var!/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#var!/2">var!/2</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.SpecialForms.html#{}/1">{}/1</a>
+      </span>
+      <small class="search_info">Kernel.SpecialForms</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Kernel.Typespec.html" title="Kernel.Typespec">Typespec</a>
+  </span>
+  <small class="search_info">Kernel.Typespec</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#beam_callbacks/1">beam_callbacks/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#beam_specs/1">beam_specs/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#beam_types/1">beam_types/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#defcallback/1">defcallback/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#define_callback/3">define_callback/3</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#define_spec/3">define_spec/3</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#define_type/3">define_type/3</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#defines_callback?/3">defines_callback?/3</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#defines_spec?/3">defines_spec?/3</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#defines_type?/3">defines_type?/3</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#defopaque/1">defopaque/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#defspec/1">defspec/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#deftype/1">deftype/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#deftypep/1">deftypep/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#spec_to_ast/2">spec_to_ast/2</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.Typespec.html#type_to_ast/1">type_to_ast/1</a>
+      </span>
+      <small class="search_info">Kernel.Typespec</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#!/1">!/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#!=/2">!=/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#!==/2">!==/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#&amp;&amp;/2">&amp;&amp;/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#*/2">*/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#+/2">+/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#++/2">++/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#-/2">-/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#--/2">--/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#../2">../2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#//2">//2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#&lt;/2">&lt;/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#&lt;-/2">&lt;-/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#&lt;=/2">&lt;=/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#&lt;&gt;/2">&lt;&gt;/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#==/2">==/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#===/2">===/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#=~/2">=~/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#&gt;/2">&gt;/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#&gt;=/2">&gt;=/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#@/1">@/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#__B__/2">__B__/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#__C__/2">__C__/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#__R__/2">__R__/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#__W__/2">__W__/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#__b__/2">__b__/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#__c__/2">__c__/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#__r__/2">__r__/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#__w__/2">__w__/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#abs/1">abs/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#access/2">access/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#and/2">and/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#apply/2">apply/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#apply/3">apply/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#atom_to_binary/1">atom_to_binary/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#atom_to_binary/2">atom_to_binary/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#atom_to_list/1">atom_to_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_part/3">binary_part/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_atom/1">binary_to_atom/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_atom/2">binary_to_atom/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_existing_atom/1">binary_to_existing_atom/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_existing_atom/2">binary_to_existing_atom/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_float/1">binary_to_float/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_integer/1">binary_to_integer/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_integer/2">binary_to_integer/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_list/1">binary_to_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_list/3">binary_to_list/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_term/1">binary_to_term/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#binary_to_term/2">binary_to_term/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#bit_size/1">bit_size/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#bitstring_to_list/1">bitstring_to_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#byte_size/1">byte_size/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#case/2">case/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#cond/1">cond/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#def/2">def/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#def/4">def/4</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defdelegate/2">defdelegate/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defexception/4">defexception/4</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defimpl/3">defimpl/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defmacro/2">defmacro/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defmacro/4">defmacro/4</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defmacrop/2">defmacrop/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defmacrop/4">defmacrop/4</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defmodule/2">defmodule/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defoverridable/1">defoverridable/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defp/2">defp/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defp/4">defp/4</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defprotocol/2">defprotocol/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defrecord/3">defrecord/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#defrecordp/2">defrecordp/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#delete_elem/2">delete_elem/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#destructure/2">destructure/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#div/2">div/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#elem/2">elem/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#exit/1">exit/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#float/1">float/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#float_to_binary/1">float_to_binary/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#float_to_binary/2">float_to_binary/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#float_to_list/1">float_to_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#float_to_list/2">float_to_list/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#function/1">function/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#function/3">function/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#function_exported?/3">function_exported?/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#hd/1">hd/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#if/2">if/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#in/2">in/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#insert_elem/3">insert_elem/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#integer_to_binary/1">integer_to_binary/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#integer_to_binary/2">integer_to_binary/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#integer_to_list/1">integer_to_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#integer_to_list/2">integer_to_list/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#iolist_size/1">iolist_size/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#iolist_to_binary/1">iolist_to_binary/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_alive/0">is_alive/0</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_atom/1">is_atom/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_binary/1">is_binary/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_bitstring/1">is_bitstring/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_boolean/1">is_boolean/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_exception/1">is_exception/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_float/1">is_float/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_function/1">is_function/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_function/2">is_function/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_integer/1">is_integer/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_list/1">is_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_number/1">is_number/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_pid/1">is_pid/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_port/1">is_port/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_range/1">is_range/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_record/1">is_record/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_record/2">is_record/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_reference/1">is_reference/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_regex/1">is_regex/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#is_tuple/1">is_tuple/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#length/1">length/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_atom/1">list_to_atom/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_binary/1">list_to_binary/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_bitstring/1">list_to_bitstring/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_existing_atom/1">list_to_existing_atom/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_float/1">list_to_float/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_integer/1">list_to_integer/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_integer/2">list_to_integer/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_pid/1">list_to_pid/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#list_to_tuple/1">list_to_tuple/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#macro_exported?/3">macro_exported?/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#make_ref/0">make_ref/0</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#match?/2">match?/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#max/2">max/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#min/2">min/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#nil?/1">nil?/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#node/0">node/0</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#node/1">node/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#not/1">not/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#or/2">or/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#pid_to_list/1">pid_to_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#raise/1">raise/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#raise/2">raise/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#raise/3">raise/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#receive/1">receive/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#rem/2">rem/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#round/1">round/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#self/0">self/0</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#set_elem/3">set_elem/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#size/1">size/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#spawn/1">spawn/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#spawn/3">spawn/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#spawn_link/1">spawn_link/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#spawn_link/3">spawn_link/3</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#term_to_binary/1">term_to_binary/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#term_to_binary/2">term_to_binary/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#throw/1">throw/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#tl/1">tl/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#to_binary/1">to_binary/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#to_char_list/1">to_char_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#trunc/1">trunc/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#try/1">try/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#tuple_size/1">tuple_size/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#tuple_to_list/1">tuple_to_list/1</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#unless/2">unless/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#use/2">use/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#xor/2">xor/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#|&gt;/2">|&gt;/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Kernel.html#||/2">||/2</a>
+      </span>
+      <small class="search_info">Kernel</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Keyword.html" title="Keyword">Keyword</a>
+  </span>
+  <small class="search_info">Keyword</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#delete/2">delete/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#delete_first/2">delete_first/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#equal?/2">equal?/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#fetch/2">fetch/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#fetch!/2">fetch!/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#from_enum/1">from_enum/1</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#get/3">get/3</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#get_values/2">get_values/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#has_key?/2">has_key?/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#keys/1">keys/1</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#keyword?/1">keyword?/1</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#merge/2">merge/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#merge/3">merge/3</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#new/0">new/0</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#new/1">new/1</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#new/2">new/2</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#put/3">put/3</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#put_new/3">put_new/3</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#update/3">update/3</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#update/4">update/4</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Keyword.html#values/1">values/1</a>
+      </span>
+      <small class="search_info">Keyword</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="List.html" title="List">List</a>
+  </span>
+  <small class="search_info">List</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#concat/1">concat/1</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#concat/2">concat/2</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#delete/2">delete/2</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#duplicate/2">duplicate/2</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#flatten/1">flatten/1</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#flatten/2">flatten/2</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#foldl/3">foldl/3</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#foldr/3">foldr/3</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#insert_at/3">insert_at/3</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#keydelete/3">keydelete/3</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#keyfind/4">keyfind/4</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#keymember?/3">keymember?/3</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#keyreplace/4">keyreplace/4</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#keystore/4">keystore/4</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#last/1">last/1</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#unzip/1">unzip/1</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#wrap/1">wrap/1</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="List.html#zip/1">zip/1</a>
+      </span>
+      <small class="search_info">List</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ListDict.html" title="ListDict">ListDict</a>
+  </span>
+  <small class="search_info">ListDict</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#delete/2">delete/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#drop/2">drop/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#empty/1">empty/1</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#equal?/2">equal?/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#fetch/2">fetch/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#fetch!/2">fetch!/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#get/3">get/3</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#has_key?/2">has_key?/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#keys/1">keys/1</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#merge/3">merge/3</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#new/0">new/0</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#new/1">new/1</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#new/2">new/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#pop/3">pop/3</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#put/3">put/3</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#put_new/3">put_new/3</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#size/1">size/1</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#split/2">split/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#take/2">take/2</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#to_list/1">to_list/1</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#update/3">update/3</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#update/4">update/4</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ListDict.html#values/1">values/1</a>
+      </span>
+      <small class="search_info">ListDict</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Macro.html" title="Macro">Macro</a>
+  </span>
+  <small class="search_info">Macro</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#binary_ops/0">binary_ops/0</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#escape/1">escape/1</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#expand/2">expand/2</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#extract_args/1">extract_args/1</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#safe_term/1">safe_term/1</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#to_binary/1">to_binary/1</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#unary_ops/0">unary_ops/0</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#unescape_binary/1">unescape_binary/1</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#unescape_binary/2">unescape_binary/2</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#unescape_tokens/1">unescape_tokens/1</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.html#unescape_tokens/2">unescape_tokens/2</a>
+      </span>
+      <small class="search_info">Macro</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.html" title="Mix">Mix</a>
+  </span>
+  <small class="search_info">Mix</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Deps.html" title="Mix.Deps">Deps</a>
+  </span>
+  <small class="search_info">Mix.Deps</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#all/0">all/0</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#all/2">all/2</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#available?/1">available?/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#by_name/2">by_name/2</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#check_lock/2">check_lock/2</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#children/0">children/0</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#compile_paths/1">compile_paths/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#depending/2">depending/2</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#format_dep/1">format_dep/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#format_status/1">format_status/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#in_dependency/3">in_dependency/3</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#in_umbrella?/2">in_umbrella?/2</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#load_paths/1">load_paths/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#make?/1">make?/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#mix?/1">mix?/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#ok?/1">ok?/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#out_of_date?/1">out_of_date?/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#rebar?/1">rebar?/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Deps.html#update/1">update/1</a>
+      </span>
+      <small class="search_info">Mix.Deps</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Generator.html" title="Mix.Generator">Generator</a>
+  </span>
+  <small class="search_info">Mix.Generator</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Generator.html#create_directory/1">create_directory/1</a>
+      </span>
+      <small class="search_info">Mix.Generator</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Generator.html#create_file/2">create_file/2</a>
+      </span>
+      <small class="search_info">Mix.Generator</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Generator.html#embed_template/2">embed_template/2</a>
+      </span>
+      <small class="search_info">Mix.Generator</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Generator.html#embed_text/2">embed_text/2</a>
+      </span>
+      <small class="search_info">Mix.Generator</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Generator.html#from_file/1">from_file/1</a>
+      </span>
+      <small class="search_info">Mix.Generator</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Local.html" title="Mix.Local">Local</a>
+  </span>
+  <small class="search_info">Mix.Local</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Local.html#all_tasks/0">all_tasks/0</a>
+      </span>
+      <small class="search_info">Mix.Local</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Local.html#append_paths/0">append_paths/0</a>
+      </span>
+      <small class="search_info">Mix.Local</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Local.html#append_tasks/0">append_tasks/0</a>
+      </span>
+      <small class="search_info">Mix.Local</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Local.html#tasks_path/0">tasks_path/0</a>
+      </span>
+      <small class="search_info">Mix.Local</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Project.html" title="Mix.Project">Project</a>
+  </span>
+  <small class="search_info">Mix.Project</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#apps_path/0">apps_path/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#compile_paths/0">compile_paths/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#config/0">config/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#config_files/0">config_files/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#get/0">get/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#get!/0">get!/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#in_project/4">in_project/4</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#load_paths/0">load_paths/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#recur/1">recur/1</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#refresh/0">refresh/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Project.html#umbrella?/0">umbrella?/0</a>
+      </span>
+      <small class="search_info">Mix.Project</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.SCM.html" title="Mix.SCM">SCM</a>
+  </span>
+  <small class="search_info">Mix.SCM</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#clean/1">clean/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#equal?/2">equal?/2</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#matches_lock?/1">matches_lock?/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#update/1">update/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#checkout/1">checkout/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#checked_out?/1">checked_out?/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#accepts_options/1">accepts_options/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#format_lock/1">format_lock/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#format/1">format/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#available/0">available/0</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#register/1">register/1</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.SCM.html#register_builtin/0">register_builtin/0</a>
+      </span>
+      <small class="search_info">Mix.SCM</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Shell.html" title="Mix.Shell">Shell</a>
+  </span>
+  <small class="search_info">Mix.Shell</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.html#cmd/1">cmd/1</a>
+      </span>
+      <small class="search_info">Mix.Shell</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.html#yes?/1">yes?/1</a>
+      </span>
+      <small class="search_info">Mix.Shell</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.html#error/1">error/1</a>
+      </span>
+      <small class="search_info">Mix.Shell</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.html#info/1">info/1</a>
+      </span>
+      <small class="search_info">Mix.Shell</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.html#cmd/2">cmd/2</a>
+      </span>
+      <small class="search_info">Mix.Shell</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.html#output_app?/0">output_app?/0</a>
+      </span>
+      <small class="search_info">Mix.Shell</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Shell.IO.html" title="Mix.Shell.IO">Shell.IO</a>
+  </span>
+  <small class="search_info">Mix.Shell.IO</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.IO.html#cmd/1">cmd/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.IO.html#error/1">error/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.IO.html#info/1">info/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.IO.html#put_app/0">put_app/0</a>
+      </span>
+      <small class="search_info">Mix.Shell.IO</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.IO.html#yes?/1">yes?/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.IO</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Shell.Process.html" title="Mix.Shell.Process">Shell.Process</a>
+  </span>
+  <small class="search_info">Mix.Shell.Process</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.Process.html#cmd/1">cmd/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.Process.html#error/1">error/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.Process.html#flush/1">flush/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.Process.html#info/1">info/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.Process.html#put_app/0">put_app/0</a>
+      </span>
+      <small class="search_info">Mix.Shell.Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Shell.Process.html#yes?/1">yes?/1</a>
+      </span>
+      <small class="search_info">Mix.Shell.Process</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Task.html" title="Mix.Task">Task</a>
+  </span>
+  <small class="search_info">Mix.Task</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#all_modules/0">all_modules/0</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#clear/0">clear/0</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#get/1">get/1</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#hidden?/1">hidden?/1</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#load_all/0">load_all/0</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#moduledoc/1">moduledoc/1</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#recursive?/1">recursive?/1</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#reenable/1">reenable/1</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#run/2">run/2</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#shortdoc/1">shortdoc/1</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Task.html#task_name/1">task_name/1</a>
+      </span>
+      <small class="search_info">Mix.Task</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.App.Start.html" title="Mix.Tasks.App.Start">Tasks.App.Start</a>
+  </span>
+  <small class="search_info">Mix.Tasks.App.Start</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.App.Start.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.App.Start</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Clean.html" title="Mix.Tasks.Clean">Tasks.Clean</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Clean</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Clean.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Clean</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Compile.html" title="Mix.Tasks.Compile">Tasks.Compile</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Compile</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Compile.App.html" title="Mix.Tasks.Compile.App">Tasks.Compile.App</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Compile.App</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.App.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile.App</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Compile.Elixir.html" title="Mix.Tasks.Compile.Elixir">Tasks.Compile.Elixir</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Compile.Elixir</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.Elixir.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile.Elixir</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Compile.Erlang.html" title="Mix.Tasks.Compile.Erlang">Tasks.Compile.Erlang</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Compile.Erlang</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.Erlang.html#extract_stale_pairs/5">extract_stale_pairs/5</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile.Erlang</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.Erlang.html#interpret_result/3">interpret_result/3</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile.Erlang</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.Erlang.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile.Erlang</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.Erlang.html#to_erl_file/1">to_erl_file/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile.Erlang</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Compile.Leex.html" title="Mix.Tasks.Compile.Leex">Tasks.Compile.Leex</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Compile.Leex</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.Leex.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile.Leex</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Compile.Yecc.html" title="Mix.Tasks.Compile.Yecc">Tasks.Compile.Yecc</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Compile.Yecc</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Compile.Yecc.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Compile.Yecc</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Deps.html" title="Mix.Tasks.Deps">Tasks.Deps</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Deps</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Deps.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Deps</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Deps.Check.html" title="Mix.Tasks.Deps.Check">Tasks.Deps.Check</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Deps.Check</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Deps.Check.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Deps.Check</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Deps.Clean.html" title="Mix.Tasks.Deps.Clean">Tasks.Deps.Clean</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Deps.Clean</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Deps.Clean.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Deps.Clean</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Deps.Compile.html" title="Mix.Tasks.Deps.Compile">Tasks.Deps.Compile</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Deps.Compile</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Deps.Compile.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Deps.Compile</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Deps.Get.html" title="Mix.Tasks.Deps.Get">Tasks.Deps.Get</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Deps.Get</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Deps.Get.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Deps.Get</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Deps.Loadpaths.html" title="Mix.Tasks.Deps.Loadpaths">Tasks.Deps.Loadpaths</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Deps.Loadpaths</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Deps.Loadpaths.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Deps.Loadpaths</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Deps.Unlock.html" title="Mix.Tasks.Deps.Unlock">Tasks.Deps.Unlock</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Deps.Unlock</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Deps.Unlock.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Deps.Unlock</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Deps.Update.html" title="Mix.Tasks.Deps.Update">Tasks.Deps.Update</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Deps.Update</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Deps.Update.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Deps.Update</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Do.html" title="Mix.Tasks.Do">Tasks.Do</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Do</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Do.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Do</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Escriptize.html" title="Mix.Tasks.Escriptize">Tasks.Escriptize</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Escriptize</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Escriptize.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Escriptize</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Help.html" title="Mix.Tasks.Help">Tasks.Help</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Help</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Help.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Help</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Loadpaths.html" title="Mix.Tasks.Loadpaths">Tasks.Loadpaths</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Loadpaths</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Loadpaths.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Loadpaths</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Local.html" title="Mix.Tasks.Local">Tasks.Local</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Local</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Local.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Local</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Local.Install.html" title="Mix.Tasks.Local.Install">Tasks.Local.Install</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Local.Install</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Local.Install.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Local.Install</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Local.Rebar.html" title="Mix.Tasks.Local.Rebar">Tasks.Local.Rebar</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Local.Rebar</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Local.Rebar.html#local_rebar_path/0">local_rebar_path/0</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Local.Rebar</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Local.Rebar.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Local.Rebar</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Local.Uninstall.html" title="Mix.Tasks.Local.Uninstall">Tasks.Local.Uninstall</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Local.Uninstall</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Local.Uninstall.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Local.Uninstall</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.New.html" title="Mix.Tasks.New">Tasks.New</a>
+  </span>
+  <small class="search_info">Mix.Tasks.New</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.New.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.New</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Run.html" title="Mix.Tasks.Run">Tasks.Run</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Run</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Run.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Run</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Tasks.Test.html" title="Mix.Tasks.Test">Tasks.Test</a>
+  </span>
+  <small class="search_info">Mix.Tasks.Test</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Tasks.Test.html#run/1">run/1</a>
+      </span>
+      <small class="search_info">Mix.Tasks.Test</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Utils.html" title="Mix.Utils">Utils</a>
+  </span>
+  <small class="search_info">Mix.Utils</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#camelize/1">camelize/1</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#command_to_module/2">command_to_module/2</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#command_to_module_name/1">command_to_module_name/1</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#config_merge/2">config_merge/2</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#extract_files/2">extract_files/2</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#extract_stale/2">extract_stale/2</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#manifest/2">manifest/2</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#mix_home/0">mix_home/0</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#mix_path/0">mix_path/0</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#module_name_to_command/2">module_name_to_command/2</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#read_path/1">read_path/1</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#relative_to_cwd/1">relative_to_cwd/1</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#source/1">source/1</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#stale?/2">stale?/2</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.Utils.html#underscore/1">underscore/1</a>
+      </span>
+      <small class="search_info">Mix.Utils</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.html#env/0">env/0</a>
+      </span>
+      <small class="search_info">Mix</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.html#env/1">env/1</a>
+      </span>
+      <small class="search_info">Mix</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.html#loadpaths/0">loadpaths/0</a>
+      </span>
+      <small class="search_info">Mix</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.html#project/0">project/0</a>
+      </span>
+      <small class="search_info">Mix</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.html#shell/0">shell/0</a>
+      </span>
+      <small class="search_info">Mix</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.html#shell/1">shell/1</a>
+      </span>
+      <small class="search_info">Mix</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Module.html" title="Module">Module</a>
+  </span>
+  <small class="search_info">Module</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#add_doc/6">add_doc/6</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#concat/1">concat/1</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#concat/2">concat/2</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#create/3">create/3</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#defines?/2">defines?/2</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#defines?/3">defines?/3</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#definitions_in/1">definitions_in/1</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#definitions_in/2">definitions_in/2</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#delete_attribute/2">delete_attribute/2</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#eval_quoted/4">eval_quoted/4</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#get_attribute/2">get_attribute/2</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#make_overridable/2">make_overridable/2</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#open?/1">open?/1</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#overridable?/2">overridable?/2</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#put_attribute/3">put_attribute/3</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#register_attribute/3">register_attribute/3</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#safe_concat/1">safe_concat/1</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#safe_concat/2">safe_concat/2</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#split/1">split/1</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Module.html#to_binary/1">to_binary/1</a>
+      </span>
+      <small class="search_info">Module</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Node.html" title="Node">Node</a>
+  </span>
+  <small class="search_info">Node</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#alive?/0">alive?/0</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#connect/1">connect/1</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#disconnect/1">disconnect/1</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#get_cookie/0">get_cookie/0</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#list/0">list/0</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#list/1">list/1</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#monitor/2">monitor/2</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#monitor/3">monitor/3</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#self/0">self/0</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#set_cookie/2">set_cookie/2</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#spawn/2">spawn/2</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#spawn/3">spawn/3</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#spawn/4">spawn/4</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#spawn/5">spawn/5</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#spawn_link/2">spawn_link/2</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Node.html#spawn_link/4">spawn_link/4</a>
+      </span>
+      <small class="search_info">Node</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="OptionParser.html" title="OptionParser">OptionParser</a>
+  </span>
+  <small class="search_info">OptionParser</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="OptionParser.html#parse/2">parse/2</a>
+      </span>
+      <small class="search_info">OptionParser</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="OptionParser.html#parse_head/2">parse_head/2</a>
+      </span>
+      <small class="search_info">OptionParser</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Path.html" title="Path">Path</a>
+  </span>
+  <small class="search_info">Path</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#absname/1">absname/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#absname/2">absname/2</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#basename/1">basename/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#basename/2">basename/2</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#dirname/1">dirname/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#expand/1">expand/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#expand/2">expand/2</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#extname/1">extname/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#join/1">join/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#join/2">join/2</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#relative/1">relative/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#relative_to/2">relative_to/2</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#rootname/1">rootname/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#rootname/2">rootname/2</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#split/1">split/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#type/1">type/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Path.html#wildcard/1">wildcard/1</a>
+      </span>
+      <small class="search_info">Path</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Port.html" title="Port">Port</a>
+  </span>
+  <small class="search_info">Port</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#call/3">call/3</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#close/1">close/1</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#command/3">command/3</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#connect/2">connect/2</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#control/3">control/3</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#info/1">info/1</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#info/2">info/2</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#list/0">list/0</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Port.html#open/2">open/2</a>
+      </span>
+      <small class="search_info">Port</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Process.html" title="Process">Process</a>
+  </span>
+  <small class="search_info">Process</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#alive?/1">alive?/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#delete/0">delete/0</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#delete/1">delete/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#demonitor/2">demonitor/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#exit/2">exit/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#flag/2">flag/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#flag/3">flag/3</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#get/0">get/0</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#get/2">get/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#get_keys/1">get_keys/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#group_leader/0">group_leader/0</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#group_leader/2">group_leader/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#info/1">info/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#info/2">info/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#link/1">link/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#list/0">list/0</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#monitor/1">monitor/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#put/2">put/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#register/2">register/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#registered/0">registered/0</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#spawn/1">spawn/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#spawn/2">spawn/2</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#spawn/3">spawn/3</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#spawn/4">spawn/4</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#spawn_link/1">spawn_link/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#spawn_link/3">spawn_link/3</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#spawn_monitor/1">spawn_monitor/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#spawn_monitor/3">spawn_monitor/3</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#unlink/1">unlink/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#unregister/1">unregister/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Process.html#whereis/1">whereis/1</a>
+      </span>
+      <small class="search_info">Process</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Record.html" title="Record">Record</a>
+  </span>
+  <small class="search_info">Record</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Record.html#deffunctions/2">deffunctions/2</a>
+      </span>
+      <small class="search_info">Record</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Record.html#defmacros/4">defmacros/4</a>
+      </span>
+      <small class="search_info">Record</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Record.html#defrecord/3">defrecord/3</a>
+      </span>
+      <small class="search_info">Record</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Record.html#defrecordp/2">defrecordp/2</a>
+      </span>
+      <small class="search_info">Record</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Record.html#deftypes/3">deftypes/3</a>
+      </span>
+      <small class="search_info">Record</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Record.html#extract/2">extract/2</a>
+      </span>
+      <small class="search_info">Record</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Record.html#import/2">import/2</a>
+      </span>
+      <small class="search_info">Record</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Regex.html" title="Regex">Regex</a>
+  </span>
+  <small class="search_info">Regex</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#captures/3">captures/3</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#compile/2">compile/2</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#compile!/2">compile!/2</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#groups/1">groups/1</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#index/2">index/2</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#match?/2">match?/2</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#opts/1">opts/1</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#re_pattern/1">re_pattern/1</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#replace/4">replace/4</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#run/3">run/3</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#scan/3">scan/3</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#source/1">source/1</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Regex.html#split/3">split/3</a>
+      </span>
+      <small class="search_info">Regex</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="String.html" title="String">String</a>
+  </span>
+  <small class="search_info">String</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#at/2">at/2</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#capitalize/1">capitalize/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#codepoints/1">codepoints/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#downcase/1">downcase/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#duplicate/2">duplicate/2</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#ends_with?/2">ends_with?/2</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#first/1">first/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#graphemes/1">graphemes/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#last/1">last/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#length/1">length/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#lstrip/1">lstrip/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#lstrip/2">lstrip/2</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#next_codepoint/1">next_codepoint/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#next_grapheme/1">next_grapheme/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#printable?/1">printable?/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#replace/4">replace/4</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#rstrip/1">rstrip/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#rstrip/2">rstrip/2</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#slice/3">slice/3</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#split/1">split/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#split/3">split/3</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#starts_with?/2">starts_with?/2</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#strip/1">strip/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#strip/2">strip/2</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#to_float/1">to_float/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#to_integer/1">to_integer/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#upcase/1">upcase/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#valid?/1">valid?/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#valid_character?/1">valid_character?/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="String.html#valid_codepoint?/1">valid_codepoint?/1</a>
+      </span>
+      <small class="search_info">String</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Supervisor.Behaviour.html" title="Supervisor.Behaviour">Supervisor.Behaviour</a>
+  </span>
+  <small class="search_info">Supervisor.Behaviour</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Supervisor.Behaviour.html#supervise/2">supervise/2</a>
+      </span>
+      <small class="search_info">Supervisor.Behaviour</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Supervisor.Behaviour.html#supervisor/3">supervisor/3</a>
+      </span>
+      <small class="search_info">Supervisor.Behaviour</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Supervisor.Behaviour.html#worker/3">worker/3</a>
+      </span>
+      <small class="search_info">Supervisor.Behaviour</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="System.html" title="System">System</a>
+  </span>
+  <small class="search_info">System</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#argv/0">argv/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#at_exit/1">at_exit/1</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#build_info/0">build_info/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#cmd/1">cmd/1</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#cwd/0">cwd/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#cwd!/0">cwd!/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#find_executable/1">find_executable/1</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#get_env/0">get_env/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#get_env/1">get_env/1</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#get_pid/0">get_pid/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#halt/2">halt/2</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#put_env/1">put_env/1</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#put_env/2">put_env/2</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#stacktrace/0">stacktrace/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#tmp_dir/0">tmp_dir/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#tmp_dir!/0">tmp_dir!/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#user_home/0">user_home/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#user_home!/0">user_home!/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="System.html#version/0">version/0</a>
+      </span>
+      <small class="search_info">System</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="URI.html" title="URI">URI</a>
+  </span>
+  <small class="search_info">URI</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="URI.FTP.html" title="URI.FTP">FTP</a>
+  </span>
+  <small class="search_info">URI.FTP</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.FTP.html#default_port/0">default_port/0</a>
+      </span>
+      <small class="search_info">URI.FTP</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.FTP.html#parse/1">parse/1</a>
+      </span>
+      <small class="search_info">URI.FTP</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="URI.HTTP.html" title="URI.HTTP">HTTP</a>
+  </span>
+  <small class="search_info">URI.HTTP</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.HTTP.html#default_port/0">default_port/0</a>
+      </span>
+      <small class="search_info">URI.HTTP</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.HTTP.html#parse/1">parse/1</a>
+      </span>
+      <small class="search_info">URI.HTTP</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="URI.HTTPS.html" title="URI.HTTPS">HTTPS</a>
+  </span>
+  <small class="search_info">URI.HTTPS</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.HTTPS.html#default_port/0">default_port/0</a>
+      </span>
+      <small class="search_info">URI.HTTPS</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.HTTPS.html#parse/1">parse/1</a>
+      </span>
+      <small class="search_info">URI.HTTPS</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="URI.LDAP.html" title="URI.LDAP">LDAP</a>
+  </span>
+  <small class="search_info">URI.LDAP</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.LDAP.html#default_port/0">default_port/0</a>
+      </span>
+      <small class="search_info">URI.LDAP</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.LDAP.html#parse/1">parse/1</a>
+      </span>
+      <small class="search_info">URI.LDAP</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="URI.Parser.html" title="URI.Parser">Parser</a>
+  </span>
+  <small class="search_info">URI.Parser</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.Parser.html#default_port/0">default_port/0</a>
+      </span>
+      <small class="search_info">URI.Parser</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.Parser.html#parse/1">parse/1</a>
+      </span>
+      <small class="search_info">URI.Parser</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="URI.SFTP.html" title="URI.SFTP">SFTP</a>
+  </span>
+  <small class="search_info">URI.SFTP</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.SFTP.html#default_port/0">default_port/0</a>
+      </span>
+      <small class="search_info">URI.SFTP</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.SFTP.html#parse/1">parse/1</a>
+      </span>
+      <small class="search_info">URI.SFTP</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="URI.TFTP.html" title="URI.TFTP">TFTP</a>
+  </span>
+  <small class="search_info">URI.TFTP</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.TFTP.html#default_port/0">default_port/0</a>
+      </span>
+      <small class="search_info">URI.TFTP</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.TFTP.html#parse/1">parse/1</a>
+      </span>
+      <small class="search_info">URI.TFTP</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.html#decode/1">decode/1</a>
+      </span>
+      <small class="search_info">URI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.html#decode_query/2">decode_query/2</a>
+      </span>
+      <small class="search_info">URI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.html#encode/1">encode/1</a>
+      </span>
+      <small class="search_info">URI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.html#encode_query/1">encode_query/1</a>
+      </span>
+      <small class="search_info">URI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.html#parse/1">parse/1</a>
+      </span>
+      <small class="search_info">URI</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="URI.html#query_decoder/1">query_decoder/1</a>
+      </span>
+      <small class="search_info">URI</small>
+    </li>
+  
+</ul>
+
+      </ul>
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/protocols_list.html b/docs/stable/protocols_list.html
new file mode 100644
index 000000000..5c25671fa
--- /dev/null
+++ b/docs/stable/protocols_list.html
@@ -0,0 +1,736 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
+    <base id="base_target" target="_parent" />
+  </head>
+  <body class="frames">
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) {
+        document.getElementById('base_target').target = 'main';
+        document.body.className = 'frames';
+      }
+    </script>
+    <div id="content">
+      <h1 id="full_list_header">
+        <a href="http://elixir-lang.org/" target="_blank">Elixir v0.9.1</a>
+      </h1>
+      <div id="nav">
+        <span class=""><a target="_self" href="modules_list.html">
+          Modules
+        </a></span>
+        <span class=""><a target="_self" href="records_list.html">
+          Records
+        </a></span>
+        <span class="selected"><a target="_self" href="protocols_list.html">
+          Protocols
+        </a></span>
+        <div class="clear"></div>
+      </div>
+      <div id="search">Search: <input type="text" /></div>
+
+      <ul id="full_list" class="class">
+        <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Access.html" title="Access">Access</a>
+  </span>
+  <small class="search_info">Access</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Access.Atom.html" title="Access.Atom">Atom</a>
+  </span>
+  <small class="search_info">Access.Atom</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Access.Atom.html#access/2">access/2</a>
+      </span>
+      <small class="search_info">Access.Atom</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Access.HashDict.html" title="Access.HashDict">HashDict</a>
+  </span>
+  <small class="search_info">Access.HashDict</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Access.HashDict.html#access/2">access/2</a>
+      </span>
+      <small class="search_info">Access.HashDict</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Access.List.html" title="Access.List">List</a>
+  </span>
+  <small class="search_info">Access.List</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Access.List.html#access/2">access/2</a>
+      </span>
+      <small class="search_info">Access.List</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Access.html#access/2">access/2</a>
+      </span>
+      <small class="search_info">Access</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Chars.html" title="Binary.Chars">Binary.Chars</a>
+  </span>
+  <small class="search_info">Binary.Chars</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Chars.Atom.html" title="Binary.Chars.Atom">Atom</a>
+  </span>
+  <small class="search_info">Binary.Chars.Atom</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Chars.Atom.html#to_binary/1">to_binary/1</a>
+      </span>
+      <small class="search_info">Binary.Chars.Atom</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Chars.BitString.html" title="Binary.Chars.BitString">BitString</a>
+  </span>
+  <small class="search_info">Binary.Chars.BitString</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Chars.BitString.html#to_binary/1">to_binary/1</a>
+      </span>
+      <small class="search_info">Binary.Chars.BitString</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Chars.List.html" title="Binary.Chars.List">List</a>
+  </span>
+  <small class="search_info">Binary.Chars.List</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Chars.List.html#to_binary/1">to_binary/1</a>
+      </span>
+      <small class="search_info">Binary.Chars.List</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Chars.Number.html" title="Binary.Chars.Number">Number</a>
+  </span>
+  <small class="search_info">Binary.Chars.Number</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Chars.Number.html#to_binary/1">to_binary/1</a>
+      </span>
+      <small class="search_info">Binary.Chars.Number</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Chars.html#to_binary/1">to_binary/1</a>
+      </span>
+      <small class="search_info">Binary.Chars</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.html" title="Binary.Inspect">Binary.Inspect</a>
+  </span>
+  <small class="search_info">Binary.Inspect</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Atom.html" title="Binary.Inspect.Atom">Atom</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Atom</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Atom.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Atom</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.BitString.html" title="Binary.Inspect.BitString">BitString</a>
+  </span>
+  <small class="search_info">Binary.Inspect.BitString</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.BitString.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.BitString</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Function.html" title="Binary.Inspect.Function">Function</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Function</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Function.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Function</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.HashDict.html" title="Binary.Inspect.HashDict">HashDict</a>
+  </span>
+  <small class="search_info">Binary.Inspect.HashDict</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.HashDict.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.HashDict</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.List.html" title="Binary.Inspect.List">List</a>
+  </span>
+  <small class="search_info">Binary.Inspect.List</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.List.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.List</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Number.html" title="Binary.Inspect.Number">Number</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Number</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Number.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Number</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.PID.html" title="Binary.Inspect.PID">PID</a>
+  </span>
+  <small class="search_info">Binary.Inspect.PID</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.PID.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.PID</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Port.html" title="Binary.Inspect.Port">Port</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Port</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Port.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Port</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Range.html" title="Binary.Inspect.Range">Range</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Range</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Range.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Range</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Reference.html" title="Binary.Inspect.Reference">Reference</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Reference</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Reference.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Reference</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Regex.html" title="Binary.Inspect.Regex">Regex</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Regex</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Regex.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Regex</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Binary.Inspect.Tuple.html" title="Binary.Inspect.Tuple">Tuple</a>
+  </span>
+  <small class="search_info">Binary.Inspect.Tuple</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.Tuple.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect.Tuple</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Binary.Inspect.html#inspect/2">inspect/2</a>
+      </span>
+      <small class="search_info">Binary.Inspect</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Enumerable.html" title="Enumerable">Enumerable</a>
+  </span>
+  <small class="search_info">Enumerable</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Enumerable.Function.html" title="Enumerable.Function">Function</a>
+  </span>
+  <small class="search_info">Enumerable.Function</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.Function.html#count/1">count/1</a>
+      </span>
+      <small class="search_info">Enumerable.Function</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.Function.html#member?/2">member?/2</a>
+      </span>
+      <small class="search_info">Enumerable.Function</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.Function.html#reduce/3">reduce/3</a>
+      </span>
+      <small class="search_info">Enumerable.Function</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Enumerable.HashDict.html" title="Enumerable.HashDict">HashDict</a>
+  </span>
+  <small class="search_info">Enumerable.HashDict</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.HashDict.html#count/1">count/1</a>
+      </span>
+      <small class="search_info">Enumerable.HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.HashDict.html#member?/2">member?/2</a>
+      </span>
+      <small class="search_info">Enumerable.HashDict</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.HashDict.html#reduce/3">reduce/3</a>
+      </span>
+      <small class="search_info">Enumerable.HashDict</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Enumerable.List.html" title="Enumerable.List">List</a>
+  </span>
+  <small class="search_info">Enumerable.List</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.List.html#count/1">count/1</a>
+      </span>
+      <small class="search_info">Enumerable.List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.List.html#member?/2">member?/2</a>
+      </span>
+      <small class="search_info">Enumerable.List</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.List.html#reduce/3">reduce/3</a>
+      </span>
+      <small class="search_info">Enumerable.List</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Enumerable.Range.html" title="Enumerable.Range">Range</a>
+  </span>
+  <small class="search_info">Enumerable.Range</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.Range.html#count/1">count/1</a>
+      </span>
+      <small class="search_info">Enumerable.Range</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.Range.html#member?/2">member?/2</a>
+      </span>
+      <small class="search_info">Enumerable.Range</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.Range.html#reduce/3">reduce/3</a>
+      </span>
+      <small class="search_info">Enumerable.Range</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.html#count/1">count/1</a>
+      </span>
+      <small class="search_info">Enumerable</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.html#member?/2">member?/2</a>
+      </span>
+      <small class="search_info">Enumerable</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Enumerable.html#reduce/3">reduce/3</a>
+      </span>
+      <small class="search_info">Enumerable</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="List.Chars.html" title="List.Chars">List.Chars</a>
+  </span>
+  <small class="search_info">List.Chars</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="List.Chars.Atom.html" title="List.Chars.Atom">Atom</a>
+  </span>
+  <small class="search_info">List.Chars.Atom</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="List.Chars.Atom.html#to_char_list/1">to_char_list/1</a>
+      </span>
+      <small class="search_info">List.Chars.Atom</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="List.Chars.BitString.html" title="List.Chars.BitString">BitString</a>
+  </span>
+  <small class="search_info">List.Chars.BitString</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="List.Chars.BitString.html#to_char_list/1">to_char_list/1</a>
+      </span>
+      <small class="search_info">List.Chars.BitString</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="List.Chars.List.html" title="List.Chars.List">List</a>
+  </span>
+  <small class="search_info">List.Chars.List</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="List.Chars.List.html#to_char_list/1">to_char_list/1</a>
+      </span>
+      <small class="search_info">List.Chars.List</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="List.Chars.Number.html" title="List.Chars.Number">Number</a>
+  </span>
+  <small class="search_info">List.Chars.Number</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="List.Chars.Number.html#to_char_list/1">to_char_list/1</a>
+      </span>
+      <small class="search_info">List.Chars.Number</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="List.Chars.html#to_char_list/1">to_char_list/1</a>
+      </span>
+      <small class="search_info">List.Chars</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Range.Iterator.html" title="Range.Iterator">Range.Iterator</a>
+  </span>
+  <small class="search_info">Range.Iterator</small>
+</li>
+<ul>
+  <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Range.Iterator.Number.html" title="Range.Iterator.Number">Number</a>
+  </span>
+  <small class="search_info">Range.Iterator.Number</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Range.Iterator.Number.html#count/2">count/2</a>
+      </span>
+      <small class="search_info">Range.Iterator.Number</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Range.Iterator.Number.html#reduce/4">reduce/4</a>
+      </span>
+      <small class="search_info">Range.Iterator.Number</small>
+    </li>
+  
+</ul>
+
+  
+    <li>
+      <span class="object_link">
+        <a href="Range.Iterator.html#count/2">count/2</a>
+      </span>
+      <small class="search_info">Range.Iterator</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Range.Iterator.html#reduce/4">reduce/4</a>
+      </span>
+      <small class="search_info">Range.Iterator</small>
+    </li>
+  
+</ul>
+
+      </ul>
+    </div>
+  </body>
+</html>
diff --git a/docs/stable/records_list.html b/docs/stable/records_list.html
new file mode 100644
index 000000000..93918d46e
--- /dev/null
+++ b/docs/stable/records_list.html
@@ -0,0 +1,666 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
+    <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
+    <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
+    <base id="base_target" target="_parent" />
+  </head>
+  <body class="frames">
+    <script type="text/javascript" charset="utf-8">
+      if (window.top.frames.main) {
+        document.getElementById('base_target').target = 'main';
+        document.body.className = 'frames';
+      }
+    </script>
+    <div id="content">
+      <h1 id="full_list_header">
+        <a href="http://elixir-lang.org/" target="_blank">Elixir v0.9.1</a>
+      </h1>
+      <div id="nav">
+        <span class=""><a target="_self" href="modules_list.html">
+          Modules
+        </a></span>
+        <span class="selected"><a target="_self" href="records_list.html">
+          Records
+        </a></span>
+        <span class=""><a target="_self" href="protocols_list.html">
+          Protocols
+        </a></span>
+        <div class="clear"></div>
+      </div>
+      <div id="search">Search: <input type="text" /></div>
+
+      <ul id="full_list" class="class">
+        <li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ArgumentError.html" title="ArgumentError">ArgumentError</a>
+  </span>
+  <small class="search_info">ArgumentError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ArithmeticError.html" title="ArithmeticError">ArithmeticError</a>
+  </span>
+  <small class="search_info">ArithmeticError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="BadArityError.html" title="BadArityError">BadArityError</a>
+  </span>
+  <small class="search_info">BadArityError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="BadArityError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">BadArityError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="BadFunctionError.html" title="BadFunctionError">BadFunctionError</a>
+  </span>
+  <small class="search_info">BadFunctionError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="BadFunctionError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">BadFunctionError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="CaseClauseError.html" title="CaseClauseError">CaseClauseError</a>
+  </span>
+  <small class="search_info">CaseClauseError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="CaseClauseError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">CaseClauseError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Code.LoadError.html" title="Code.LoadError">Code.LoadError</a>
+  </span>
+  <small class="search_info">Code.LoadError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Code.LoadError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">Code.LoadError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="CompileError.html" title="CompileError">CompileError</a>
+  </span>
+  <small class="search_info">CompileError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="CompileError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">CompileError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="EEx.SyntaxError.html" title="EEx.SyntaxError">EEx.SyntaxError</a>
+  </span>
+  <small class="search_info">EEx.SyntaxError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Enum.EmptyError.html" title="Enum.EmptyError">Enum.EmptyError</a>
+  </span>
+  <small class="search_info">Enum.EmptyError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Enum.OutOfBoundsError.html" title="Enum.OutOfBoundsError">Enum.OutOfBoundsError</a>
+  </span>
+  <small class="search_info">Enum.OutOfBoundsError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ErlangError.html" title="ErlangError">ErlangError</a>
+  </span>
+  <small class="search_info">ErlangError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ErlangError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">ErlangError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.AssertionError.html" title="ExUnit.AssertionError">ExUnit.AssertionError</a>
+  </span>
+  <small class="search_info">ExUnit.AssertionError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.DocTest.Error.html" title="ExUnit.DocTest.Error">ExUnit.DocTest.Error</a>
+  </span>
+  <small class="search_info">ExUnit.DocTest.Error</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.ExpectationError.html" title="ExUnit.ExpectationError">ExUnit.ExpectationError</a>
+  </span>
+  <small class="search_info">ExUnit.ExpectationError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.ExpectationError.html#full_reason/1">full_reason/1</a>
+      </span>
+      <small class="search_info">ExUnit.ExpectationError</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="ExUnit.ExpectationError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">ExUnit.ExpectationError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.Test.html" title="ExUnit.Test">ExUnit.Test</a>
+  </span>
+  <small class="search_info">ExUnit.Test</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="ExUnit.TestCase.html" title="ExUnit.TestCase">ExUnit.TestCase</a>
+  </span>
+  <small class="search_info">ExUnit.TestCase</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="File.CopyError.html" title="File.CopyError">File.CopyError</a>
+  </span>
+  <small class="search_info">File.CopyError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="File.CopyError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">File.CopyError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="File.Error.html" title="File.Error">File.Error</a>
+  </span>
+  <small class="search_info">File.Error</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="File.Error.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">File.Error</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="File.IteratorError.html" title="File.IteratorError">File.IteratorError</a>
+  </span>
+  <small class="search_info">File.IteratorError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="File.IteratorError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">File.IteratorError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="File.Stat.html" title="File.Stat">File.Stat</a>
+  </span>
+  <small class="search_info">File.Stat</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="FunctionClauseError.html" title="FunctionClauseError">FunctionClauseError</a>
+  </span>
+  <small class="search_info">FunctionClauseError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="FunctionClauseError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">FunctionClauseError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="KeyError.html" title="KeyError">KeyError</a>
+  </span>
+  <small class="search_info">KeyError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="KeyError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">KeyError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Macro.Env.html" title="Macro.Env">Macro.Env</a>
+  </span>
+  <small class="search_info">Macro.Env</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.Env.html#in_guard?/1">in_guard?/1</a>
+      </span>
+      <small class="search_info">Macro.Env</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.Env.html#in_match?/1">in_match?/1</a>
+      </span>
+      <small class="search_info">Macro.Env</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.Env.html#location/1">location/1</a>
+      </span>
+      <small class="search_info">Macro.Env</small>
+    </li>
+  
+    <li>
+      <span class="object_link">
+        <a href="Macro.Env.html#stacktrace/1">stacktrace/1</a>
+      </span>
+      <small class="search_info">Macro.Env</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="MatchError.html" title="MatchError">MatchError</a>
+  </span>
+  <small class="search_info">MatchError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="MatchError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">MatchError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Dep.html" title="Mix.Dep">Mix.Dep</a>
+  </span>
+  <small class="search_info">Mix.Dep</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.Error.html" title="Mix.Error">Mix.Error</a>
+  </span>
+  <small class="search_info">Mix.Error</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.InvalidTaskError.html" title="Mix.InvalidTaskError">Mix.InvalidTaskError</a>
+  </span>
+  <small class="search_info">Mix.InvalidTaskError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.InvalidTaskError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">Mix.InvalidTaskError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.NoProjectError.html" title="Mix.NoProjectError">Mix.NoProjectError</a>
+  </span>
+  <small class="search_info">Mix.NoProjectError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.NoTaskError.html" title="Mix.NoTaskError">Mix.NoTaskError</a>
+  </span>
+  <small class="search_info">Mix.NoTaskError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.NoTaskError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">Mix.NoTaskError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Mix.OutOfDateDepsError.html" title="Mix.OutOfDateDepsError">Mix.OutOfDateDepsError</a>
+  </span>
+  <small class="search_info">Mix.OutOfDateDepsError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Mix.OutOfDateDepsError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">Mix.OutOfDateDepsError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Protocol.UndefinedError.html" title="Protocol.UndefinedError">Protocol.UndefinedError</a>
+  </span>
+  <small class="search_info">Protocol.UndefinedError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="Protocol.UndefinedError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">Protocol.UndefinedError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Range.html" title="Range">Range</a>
+  </span>
+  <small class="search_info">Range</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="Regex.CompileError.html" title="Regex.CompileError">Regex.CompileError</a>
+  </span>
+  <small class="search_info">Regex.CompileError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="RuntimeError.html" title="RuntimeError">RuntimeError</a>
+  </span>
+  <small class="search_info">RuntimeError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="SyntaxError.html" title="SyntaxError">SyntaxError</a>
+  </span>
+  <small class="search_info">SyntaxError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="SyntaxError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">SyntaxError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="System.NoAccessCwdError.html" title="System.NoAccessCwdError">System.NoAccessCwdError</a>
+  </span>
+  <small class="search_info">System.NoAccessCwdError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="System.NoHomeError.html" title="System.NoHomeError">System.NoHomeError</a>
+  </span>
+  <small class="search_info">System.NoHomeError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="System.NoTmpDirError.html" title="System.NoTmpDirError">System.NoTmpDirError</a>
+  </span>
+  <small class="search_info">System.NoTmpDirError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="SystemLimitError.html" title="SystemLimitError">SystemLimitError</a>
+  </span>
+  <small class="search_info">SystemLimitError</small>
+</li>
+<ul>
+  
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="TokenMissingError.html" title="TokenMissingError">TokenMissingError</a>
+  </span>
+  <small class="search_info">TokenMissingError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="TokenMissingError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">TokenMissingError</small>
+    </li>
+  
+</ul>
+<li>
+  <a class="toggle"></a>
+  <span class="object_link">
+    <a href="UndefinedFunctionError.html" title="UndefinedFunctionError">UndefinedFunctionError</a>
+  </span>
+  <small class="search_info">UndefinedFunctionError</small>
+</li>
+<ul>
+  
+  
+    <li>
+      <span class="object_link">
+        <a href="UndefinedFunctionError.html#message/1">message/1</a>
+      </span>
+      <small class="search_info">UndefinedFunctionError</small>
+    </li>
+  
+</ul>
+
+      </ul>
+    </div>
+  </body>
+</html>
diff --git a/getting_started/1.markdown b/getting_started/1.markdown
index 73162ad07..a3ab1d5e4 100644
--- a/getting_started/1.markdown
+++ b/getting_started/1.markdown
@@ -1,41 +1,71 @@
 ---
 layout: getting_started
-title: Elixir - 1. Introduction
-active: 2
+title: 1 Introduction
 guide: 1
+total_guides: 7
 ---
 
-# 1 Introduction
+# {{ page.title }}
 
-Welcome! In this tutorial we are going to show you how to get started with Elixir. In later sections, we are even going to discuss more advanced subjects as macros, protocols and other features provided by Elixir.
+Welcome! In this tutorial we are going to show you how to get started with Elixir. We will start with how to install Elixir, how to use its interactive shell, and basic data types and operators. In later chapters, we are even going to discuss more advanced subjects such as macros, protocols and other features provided by Elixir.
 
-Keep in mind that Elixir is still in development and sometimes you may get poorly written error messages. If, at any point, you receive an error message and you are not sure on how to proceed, [please let us know in the issues tracker](https://github.com/josevalim/elixir/issues). Having explanative and consistent error messages is one of the many features we aim for Elixir.
+To see Elixir in action, check out these introductory screencasts by Dave Thomas. The first one, [Nine Minutes of Elixir](http://www.youtube.com/watch?v=hht9s6nAAx8), provides a brief tour of the language. The second one is a 30-minute [introduction to Elixir](http://www.youtube.com/watch?v=a-off4Vznjs) that'll help you get started with writing your first functions and creating your first processes in Elixir. Be sure to follow the next section of this guide to install Elixir on your machine and then follow along with the videos.
+
+Keep in mind that Elixir is still in development so if at any point you receive an error message and you are not sure how to proceed, [please let us know in the issues tracker](https://github.com/elixir-lang/elixir/issues). Having explanative and consistent error messages is one of the many features we aim for Elixir.
 
 ## 1.1 Installation
 
-Elixir isn't available in any distribution yet, but you can download and compile it in few steps:
+The only prerequisite for Elixir is Erlang, version R16B or later. You can find the source code for [Erlang here](http://www.erlang.org/download.html) or use one of the [precompiled packages](https://www.erlang-solutions.com/downloads/download-erlang-otp).
 
-    $ git clone https://github.com/josevalim/elixir.git
-    $ cd elixir
-    $ make test
+For Windows developers, we recommend the precompiled package. Those on the UNIX platform can probably get Erlang installed via one of the many package management tools.
+
+After Erlang is installed, you should be able to open up the command line (or command prompt) and check the Erlang version by typing `erl`. You will see some information as follows:
+
+    Erlang R16B (erts-5.10.1) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]
+
+Notice that depending on how you installed Erlang, it will not add Erlang binaries to your environment. Be sure to have Erlang binaries in your [PATH](http://en.wikipedia.org/wiki/Environment_variable), otherwise Elixir won't work!
+
+After Erlang is up and running, it is time to install Elixir. You can do that via Distributions, Precompiled package or Compiling from Source.
+
+### 1.1.1 Distributions
+
+This tutorial requires Elixir v0.9.0 or later and it may be available in some distributions:
+
+* Homebrew for Mac OS X
+  * Since Elixir requires Erlang R16B, first call `brew tap homebrew/versions` and then `brew install erlang-r16`
+  * If you have a previous Erlang version installed, unlink it with `brew uninstall erlang` and link the new one with `brew link erlang-r16`
+  * Update your homebrew to latest: `brew update`
+  * Install Elixir: `brew install elixir`
+* Fedora 17+ and Fedora Rawhide: `sudo yum -y install elixir`
+* Arch Linux : Elixir is available on AUR via `yaourt -S elixir`
 
-    $ bin/elixir -v
-    Elixir 0.4.0.dev
+If you don't use any of the distributions above, don't worry, we also provide a precompiled package!
 
-If tests pass, we are ready to go. But if tests fail it is likely you have an outdated Erlang version (Elixir requires Erlang R15B or later). You can check your Erlang version by calling `erl` in the command line. You will see some information as follow:
+### 1.1.2 Precompiled package
 
-    Erlang R15B (erts-5.8.4) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]
+Elixir provides a [precompiled package for every release](/packages.html).
 
-If you have the correct version and tests still fail, feel free to open an issue in the issues tracker on Github.
+After downloading and unzip-ing the package, you are ready to run the `elixir` and `iex` commands from the `bin` directory. It is recommended that you also add Elixir's `bin` path to your PATH environment variable to ease development. In a Unix system, that can be achieved with:
 
-> Note: if you are planning to develop projects with Elixir, we recommend adding the bin directory in Elixir git repository to your PATH for easier access to binaries.
->
->     export PATH="$PATH:/path/to/elixir/bin"
->
+    export PATH="$PATH:/path/to/elixir/bin"
+
+### 1.1.3 Compiling from source (Unix)
+
+You can download and compile Elixir in few steps. You can get the [latest stable release here](https://github.com/elixir-lang/elixir/tags), unpack it and then run `make` inside the unpacked directory. After that, you are ready to run the `elixir` and `iex` commands from the `bin` directory.
+
+In case you are feeling a bit more adventurous, you can also compile from master:
+
+    $ git clone https://github.com/elixir-lang/elixir.git
+    $ cd elixir
+    $ make test
+
+If the tests pass, you are ready to go. Otherwise, feel free to open an issue [in the issues tracker on Github](https://github.com/elixir-lang/elixir).
 
 ## 1.2 Interactive mode
 
-We can start Elixir interactive mode by running `bin/iex` in the same directory you compiled Elixir. In interactive mode, we can type any Elixir expression. Let's warm up with some basic arithmetic expressions:
+When you install Elixir, you will have three new executables: `iex`, `elixir` and `elixirc`. If you compiled Elixir from source or you are using a packaged version, you can find these inside the `bin` directory.
+
+For now, let's start by running `iex` which stands for Interactive Elixir. In interactive mode, we can type any Elixir expression and get its result straight away. Let's warm up with some basic arithmetic expressions:
 
     iex> 1 + 1
     2
@@ -44,7 +74,7 @@ We can start Elixir interactive mode by running `bin/iex` in the same directory
     iex> 10 / 2
     5.0
 
-Notice `10 / 2` returned a float `5.0` instead of an integer. This is expected, in Elixir the operator `/` always returns a float. In case you want to do integer division or get the division remainder, you can invoke the `div` and `rem` functions:
+Notice `10 / 2` returned a float `5.0` instead of an integer. This is expected. In Elixir the operator `/` always returns a float. In case you want to do integer division or get the division remainder, you can invoke the `div` and `rem` functions:
 
     iex> div(10, 2)
     5
@@ -53,7 +83,7 @@ Notice `10 / 2` returned a float `5.0` instead of an integer. This is expected,
     iex> rem 10, 3
     1
 
-In the example above, we called two functions called `div` and `rem`. Notice that parenthesis are not required in order to invoke a function. We are going to discuss more about it later. Let's move forward and see which other data types we have in Elixir:
+In the example above, we called two functions called `div` and `rem`. Notice that parentheses are not required in order to invoke a function. We are going to discuss more about it later. Let's move forward and see which other data types we have in Elixir:
 
 ## 1.3 Basic types
 
@@ -64,6 +94,15 @@ Some basic types are:
     iex> :atom      # atom / symbol
     iex> {1,2,3}    # tuple
     iex> [1,2,3]    # list
+    iex> <<1,2,3>>  # binary
+
+Elixir by default provides many functions to work on those types:
+
+    iex> size { 1, 2, 3 }
+    3
+
+    iex> length [ 1, 2, 3 ]
+    3
 
 Elixir also provides functions (note the dot between the variable and arguments when calling a function):
 
@@ -73,36 +112,28 @@ Elixir also provides functions (note the dot between the variable and arguments
     iex> x.(1, 2)
     3
 
-And double-quoted strings:
+Elixir also supports strings and they are all encoded in UTF-8:
 
-    iex> "string"
-    "string"
+    iex> "hellö"
+    "hellö"
 
-Strings in Elixir are UTF-8 binaries delimited by double quotes. A single-quoted string in Elixir is called a char list and is simply a list of characters:
+Strings support interpolation too:
 
-    iex> 'string'
-    'string'
+    iex> name = "world"
+    iex> "hello #{name}"
+    "hello world"
 
-We can use the `is_binary` and `is_list` helpers to detect if a given string is a binary (double-quoted) or a list (single-quoted):
-
-    iex> is_binary "string"
-    true
-    iex> is_list "string"
-    false
+At the end of the day, strings are nothing more than binaries. We can check it using the `is_binary` function:
 
-    iex> is_binary 'string'
-    false
-    iex> is_list 'string'
+    iex> is_binary("hello")
     true
 
-Although they represent the same thing, double-quoted and single-quoted strings are different and best suited for different scenarios:
+Note a single-quoted expression in Elixir is a char list and it is not the same as a double-quoted one:
 
-    iex> "string" == 'string'
+    iex> is_binary('hello')
     false
 
-Most of the cases, developers should use double-quoted strings as their representation is more compact. We are going to discuss this subject with more detail in the next chapter.
-
-Elixir also provides `true` and `false` as booleans:
+We will go into more details about char lists in the next chapter. Finally, Elixir also provides `true` and `false` as booleans:
 
     iex> true
     true
@@ -114,7 +145,7 @@ Booleans are represented internally as atoms:
     iex> is_atom(true)
     true
 
-Elixir also provides Port, References and PIDs as data types (usually used in process communication) but they are out of the scope of a getting started tutorial. For now, let's take a look at the basic operators in Elixir before we move on to the next chapter.
+Elixir also provides `Port`, `Reference`s and `PID`s as data types (usually used in process communication) but they are out of the scope of a getting started tutorial. For now, let's take a look at the basic operators in Elixir before we move on to the next chapter.
 
 ## 1.4 Operators
 
@@ -127,29 +158,22 @@ Elixir also provides `++` and `--` to manipulate lists:
     iex> [1,2,3] -- [2]
     [1,3]
 
-Since single-quoted strings are lists, we can also use `++` and `--` as operators to manipulate them:
-
-    iex> 'some' ++ ' example'
-    'some example'
-    iex> 'some' -- 'oe'
-    'sm'
-
-Notice that `++` and `--` cannot be used to manipulate double quoted strings, as they are binaries. That said, string concatenation is done via `<>`:
+String concatenation is done via `<>`:
 
     iex> "foo" <> "bar"
     "foobar"
 
-Elixir also provides three boolean operators: `or`, `and` and `not`. Those operators are strict in the sense those operators expects only booleans (true or false) as arguments:
+Elixir also provides three boolean operators: `or`, `and` and `not`. These operators are strict in the sense they expect a boolean (true or false) as their first argument:
 
     iex> true and true
     true
     iex> false or is_atom(:example)
     true
 
-Giving a non-boolean as argument will raise an exception:
+Giving a non-boolean will raise an exception:
 
     iex> 1 and true
-    ** (::ArgumentError) argument error
+    ** (ArgumentError) argument error
 
 `or` and `and` are short-circuit operators. They just execute the right side in case the left side is not enough to determine the result:
 
@@ -161,7 +185,31 @@ Giving a non-boolean as argument will raise an exception:
 
 > Note: If you are an Erlang developer, `and` and `or` in Elixir actually map to the `andalso` and `orelse` operators in Erlang.
 
-Elixir also provides `==`, `!=`, `===`, `!===`, `<=`, `>=`, `<` and `>` as comparison operators:
+Besides those boolean operators, Elixir also provides `||`, `&&` and `!` which accept arguments of any type. For these operators, all values except `false` and `nil` will evaluate to true:
+
+    # or
+    iex> 1 || true
+    1
+    iex> false || 11
+    11
+
+    # and
+    iex> nil && 13
+    nil
+    iex> true && 17
+    17
+
+    # !
+    iex> !true
+    false
+    iex> !1
+    false
+    iex> !nil
+    true
+
+As a rule of thumb, use `and`, `or` and `not` when you are expecting a booleans. If any of the arguments are non-booleans, use `&&`, `||` and `!`.
+
+Elixir also provides `==`, `!=`, `===`, `!==`, `<=`, `>=`, `<` and `>` as comparison operators:
 
     iex> 1 == 1
     true
@@ -186,6 +234,6 @@ The reason we can compare different data types is for pragmatism. Sorting algori
 
     number < atom < reference < functions < port < pid < tuple < list < bit string
 
-You actually don't need to memorize this ordering, it is important just to know an order exists.
+You actually don't need to memorize this ordering, but it is important just to know an order exists.
 
-Well, that is it for the introduction. In the next chapter, we are going to discuss some basic functions, data types conversions and a bit of control-flow.
\ No newline at end of file
+Well, that is it for the introduction. In the next chapter, we are going to discuss some basic functions, data types conversions and a bit of control-flow.
diff --git a/getting_started/2.markdown b/getting_started/2.markdown
index 385e24496..1fe572813 100644
--- a/getting_started/2.markdown
+++ b/getting_started/2.markdown
@@ -1,13 +1,13 @@
 ---
 layout: getting_started
-title: Elixir - 2. Diving in
-active: 2
+title: 2 Diving in
 guide: 2
+total_guides: 7
 ---
 
-# 2 Diving in
+# {{ page.title }}
 
-In this section we are going a bit deeper into the basic data-types, learn some control flow mechanisms and basic functions.
+In this chapter we'll go a bit deeper into the basic data-types, learn some control flow mechanisms and talk about anonymous functions.
 
 ## 2.1 Lists and tuples
 
@@ -20,57 +20,120 @@ Elixir provides both lists and tuples:
 
 While both are used to store items, they differ on how those items are stored in memory. Lists are implemented as linked lists (where each item in the list points to the next item) while tuples are stored contiguously in memory.
 
-This means that accessing a tuple element is very fast (constant time) and can be achieved using the `elem` function (notice that indexes in Elixir data-types start with `1`):
+This means that accessing a tuple element is very fast (constant time) and can be achieved using the `elem` function:
 
-    iex> elem { :a, :b, :c }, 1
+    iex> elem { :a, :b, :c }, 0
     :a
 
-On the other hand, updating a tuple is expensive as it needs to duplicate the tuple contents in memory. Updating a tuple can be done with the `setelem` function:
+On the other hand, updating a tuple is expensive as it needs to duplicate the tuple contents in memory. Updating a tuple can be done with the `set_elem` function:
 
-    iex> setelem { :a, :b, :c }, 1, :d
+    iex> set_elem { :a, :b, :c }, 0, :d
     {:d,:b,:c}
 
-> Note: If you are an Erlang developer, you will notice that we used the `elem` and `setelem` functions instead of Erlang's `element` and `setelement`. The reason for this choice is that Elixir attempts to normalize Erlang API's to always receive the `subject` of the function as the first argument.
+> Note: If you are an Erlang developer, you will notice that we used the `elem` and `set_elem` functions instead of Erlang's `element` and `setelement`. The reason for this choice is that Elixir attempts to normalize Erlang API's to always receive the `subject` of the function as the first argument and employ zero-based access.
 
-Since updating a tuple is expensive, when we want to iterate, add or remove elements, we use lists. Since lists are linked, it means accessing the first element of the list is very cheap, however, accessing the n-th element will require the algorithm to pass through n-1 nodes before reaching the n-th. We can access the `head` of the list as follows:
+Since updating a tuple is expensive, when we want to add or remove elements, we use lists. Since lists are linked, it means accessing the first element of the list is very cheap. Accessing the n-th element, however, will require the algorithm to pass through n-1 nodes before reaching the n-th. We can access the `head` of the list as follows:
 
+    # Match the head and tail of the list
     iex> [head | tail] = [1,2,3]
     [1,2,3]
     iex> head
     1
     iex> tail
     [2,3]
+
+    # Put the head and the tail back together
     iex> [head | tail]
     [1,2,3]
     iex> length [head | tail]
     3
 
-In the example above, we have assigned the head of the list to the variable `head` and the tail of the list to the variable `tail`. The [`Enum` module](https://github.com/josevalim/elixir/blob/master/lib/enum.ex) provides several helpers to manipulate lists (and other enumerables in general) while the [List module](https://github.com/josevalim/elixir/blob/master/lib/list.ex) provides several helpers specific to lists:
+In the example above, we have matched the head of the list to the variable `head` and the tail of the list to the variable `tail`. This is called **pattern matching**. We can also pattern match tuples:
+
+    iex> { a, b, c } = { :hello, "world", 42 }
+    { :hello, "world", 42 }
+    iex> a
+    :hello
+    iex> b
+    "world"
+
+A pattern match will error in case the sides can't match. This is, for example, the case when the tuples have different sizes:
+
+    iex> { a, b, c } = { :hello, "world" }
+    ** (MatchError) no match of right hand side value: {:hello,"world"}
+
+And also when comparing different types:
+
+    iex> { a, b, c } = [:hello, "world", '!']
+    ** (MatchError) no match of right hand side value: [:hello,"world"]
+
+More interestingly, we can match on specific values. The example below asserts that the left side will only match the right side in case that the right side is a tuple that starts with the atom `:ok` as a key:
+
+    iex> { :ok, result } = { :ok, 13 }
+    {:ok,13}
+    iex> result
+    13
+
+    iex> { :ok, result } = { :error, :oops }
+    ** (MatchError) no match of right hand side value: {:error,:oops}
+
+Pattern matching allows developers to easily destruct data types such as tuples and lists. As we will see in following chapters, it is one of the foundations of recursion in Elixir. However, in case you can't wait to iterate through and manipulate your lists, the [`Enum` module](/docs/stable/Enum.html) provides several helpers to manipulate lists (and other enumerables in general) while the [`List` module](/docs/stable/List.html) provides several helpers specific to lists:
 
-    iex> Enum.map [1,2,3], fn(x) -> x * 2 end
-    [4,5,6]
+    iex> Enum.at [1,2,3], 0
+    1
     iex> List.flatten [1,[2],3]
     [1,2,3]
 
-## 2.2 Lists and binaries
+## 2.2 Keyword lists
+
+Elixir also provides a special syntax to create a list of keywords. They can be created as follows:
+
+    iex> [a: 1, b: 2]
+    [a: 1, b: 2]
+
+Keyword lists are nothing more than a list of two element tuples where the first element of the tuple is an atom:
+
+    iex> [head | tail] = [a: 1, b: 2]
+    [a: 1, b: 2]
+    iex> head
+    { :a, 1 }
+
+The [`Keyword` module](/docs/stable/Keyword.html) contains several functions that allow you to manipulate a keyword list ignoring duplicated entries or not. For example:
+
+    iex> keywords = [foo: 1, bar: 2, foo: 3]
+    iex> Keyword.get keywords, :foo
+    1
+    iex> Keyword.get_values keywords, :foo
+    [1,3]
+
+Since keyword lists are very frequently passed as arguments, they do not require brackets when given as the last argument in a function call. For instance, the examples below are valid and equivalent:
 
-In the previous chapter we have discussed double- and single-quoted strings. Double quoted strings are binaries while single-quoted strings are lists:
+    iex> if(2 + 2 == 4, [do: "OK"])
+    "OK"
+    iex> if(2 + 2 == 4, do: "OK")
+    "OK"
+    iex> if 2 + 2 == 4, do: "OK"
+    "OK"
 
-    iex> "string" == 'string'
+## 2.3 Strings and char lists
+
+In Elixir, a double-quoted string is not the same as a single-quoted one:
+
+    iex> "hello" == 'hello'
     false
-    iex> is_binary "string"
+    iex> is_binary "hello"
     true
-    iex> is_list 'string'
+    iex> is_list 'hello'
     true
 
-In fact, both double-quoted and single-quoted representations are just a shorter representation of binaries and lists. Considering that `?a` in Elixir returns the ASCII integer for the letter `a`, we could also write:
+As shown above, double-quoted returns a binary while single-quoted returns a list. In fact, both double-quoted and single-quoted representations are just a shorter representation of binaries and lists respectively. Given that `?a` in Elixir returns the ASCII integer for the letter `a`, we could also write:
 
     iex> <<?a, ?b, ?c>>
     "abc"
     iex> [?a, ?b, ?c]
     'abc'
 
-In such cases, Elixir detects that all characters in the list and in the binary are printable and returns the quoted representation. However, adding a non-printable character forces them to be printed differently:
+In such cases, Elixir detects that all characters in the binary and in the list are printable and returns the quoted representation. However, adding a non-printable character forces them to be printed differently:
 
     iex> <<?a, ?b, ?c, 1>>
     <<97,98,99,1>>
@@ -78,327 +141,268 @@ In such cases, Elixir detects that all characters in the list and in the binary
     iex> [?a, ?b, ?c, 1]
     [97,98,99,1]
 
-Since lists are implemented as linked lists, it means a string represented as list usually takes a lot of space in memory (in ASCII, it would be one byte for each character and another byte to point to the next character). For this reason, binary (double-quoted) strings are preferred unless you want to explicitly iterate over the string as a list.
+Since lists are implemented as linked lists, it means a char list usually takes a lot of space in memory (one word for each character and another word to point to the next character). For this reason, double-quoted is preferred unless you want to explicitly iterate over a char list (which is sometimes common when interfacing with Erlang code from Elixir).
 
-Currently, Elixir does not ship with any library for doing string manipulation, but this will be amended soon.
+Although a bit more verbose, it is also possible to do head/tail style pattern matching with binaries. A binary is made up of a number of parts which must be tagged with their type. Most of the time, Elixir will figure out the part's type and won't require any work from you:
 
-## 2.3 Calling Erlang functions
+    iex> <<102, "oo">>
+    "foo"
 
-Elixir's plans is to provide a small standard library responsible for handling most basic structures (lists, ordered dicts, strings and so forth) and IO. That said, complex applications will require the developer to use Erlang's libraries.
+In the example, we have two parts: the first is an integer and the second is a binary. If we use an Elixir expression, Elixir will default its type to an integer:
 
-Erlang ships with a group of libraries called OTP (Open Telecom Platform). Besides an standard library, OTP provides several facilities to build OTP applications with supervisors that are robust, distributed and fault-tolerant. Invoking those libraries from Elixir is quite straight-forward, for example, we can call the [function `flatten` from the module `lists`](http://www.erlang.org/doc/man/lists.html#flatten-1) as follows:
+    iex> rest = "oo"
+    iex> <<102, rest>>
+    ** (ArgumentError) argument error
 
-    iex> Erlang.lists.flatten [1,[2],3]
-    [1,2,3]
+In the example above, since we haven't specified a type for `rest`, Elixir expected an integer but we passed a binary, resulting in `ArgumentError`. We can solve this by explicitly tagging it as a binary:
 
-Erlang's OTP is very well documented and a developer should not have problems going around it:
+    iex> <<102, rest :: binary>>
 
-* [OTP docs](http://www.erlang.org/doc/)
-* [Standard library docs](http://www.erlang.org/doc/man/STDLIB_app.html)
+The type can be `integer`, `float`, `binary`, `bytes`, `bitstring`, `bits`, `utf8`, `utf16` or `utf32`. We can pass endianness and signedness too, when passing more than one option, we use a list:
 
-## 2.4 Pattern matching
+    iex> <<102, rest :: [binary, signed]>>
 
-When discussing lists, we saw the following example:
+Not only that, we can also specify the bit size for each part:
 
-    iex> [h | t] = [1,2,3]
-    [1, 2, 3]
-    iex> h
-    1
-    iex> t
-    [2, 3]
+    iex> <<102, rest :: size(16)>> = "foo"
+    "foo"
+    iex> <<102, rest :: size(32)>> = "foo"
+    ** (MatchError) no match of right hand side value: "foo"
 
-In Elixir, `=` does not mean assignment as in programming languages like Java and Ruby. `=` is actually a match operator which will check if the expressions on both left and right side match. Consider this example:
+In the example above, the first expression matches because the right string "foo" takes 24 bits and we are matching against a binary of 24 bits as well, 8 of which are taken by the integer 102 and the remaining 16 bits are specified on the `rest`. On the second example, we expect a `rest` with size 32, which won't match.
 
-    iex> { 1, 2, 3 } = { 1, 2, 3 }
-    { 1, 2, 3 }
-    iex> { 1, 2, 3 } = { 1, 4, 3 }
-    ** (::MatchError) no match of right hand side value: {1,4,3}
+If at any moment, you would like to match the top of a binary against any other binary without caring about the size of the rest, you can use binary (which has an unspecified size):
 
-If the tuples given on the left and right side do not match, an error is raised. If any of the tuples contain a variable, this variable will always be assigned:
+    iex> <<102, rest :: binary>> = "foobar"
+    "foobar"
+    iex> rest
+    "oobar"
 
-    iex> { 1, x, 3 } = { 1, 2, 3 }
-    { 1, 2, 3 }
-    iex> x
-    2
-    iex> { 1, x, 3 } = { 1, 4, 3 }
-    { 1, 4, 3 }
-    iex> x
-    4
-
-This is exactly what happened in the list example:
-
-    iex> [h | t] = [1,2,3]
-    [1, 2, 3]
+This is equivalent to the head and tail pattern matching we saw in lists. There is much more to binaries and pattern matching in Elixir that allows great flexibility when working with such structures, but they are beyond the scope of a getting started guide.
 
-We have assigned the head of the list to `h` and the tail to `t`. In fact, if we want to check if the head of the list is `1` and assign the tail, we could do:
+## 2.4 UTF-8 Strings
 
-    iex> [1 | t] = [1,2,3]
-    [1, 2, 3]
-    iex> [0 | t] = [1,2,3]
-    ** (::MatchError) no match of right hand side value: [1,2,3]
-
-In case you want to pattern match against the value of a variable, you can use the `^` operator:
+A String in Elixir is a binary which is encoded in UTF-8. For example, the string "é" is a UTF-8 binary containing two bytes:
 
-    iex> x = 1
-    1
-    iex> ^x = 1
-    1
-    iex> ^x = 2
-    ** (::MatchError) no match of right hand side value: 2
-    iex> x = 2
+    iex> string = "é"
+    "é"
+    iex> size(string)
     2
 
-In Elixir, it is a common practice to assign a variable to underscore `_` if we don't intend to use it. For example, if only the head of the list matters to us, we can assign the tail to underscore:
+In order to easily manipulate strings, Elixir provides a [String module](http://elixir-lang.org/docs/stable/String.html):
 
-    iex> [h | _] = [1,2,3]
-    [1, 2, 3]
-    iex> h
-    1
+    # returns the number of bytes
+    iex> size "héllò"
+    7
 
-The variable `_` in Elixir is special in the sense it can never be assigned. Trying to read from it gives an unbound variable error:
+    # returns the number of characters as perceived by humans
+    iex> String.length "héllò"
+    5
 
-    iex> _
-    ** (ErlangError) erlang error {:unbound_var, :_}
+> Note: to retrieve the number of elements in a data structure, you will use a function named `length` or `size`. Their usage is not arbitrary. The first is used when the number of elements needs to be calculated. For example, calling `length(list)` will iterate the whole list to find the number of elements in that list. `size` is the opposite, it means the value is pre-calculated and stored somewhere and therefore retrieving its value is a cheap operation. That said, we use `size` to get the size of a binary, which is cheap, but retrieving the number of unicode characters uses `String.length`, since the whole string needs to be iterated.
 
-Although pattern matching allow powerful constructs, its usage is limited. For instance, you cannot make function calls on the left side of the match. The following example is invalid:
+Each character in the string "héllò" above is a Unicode codepoint. One may use `String.codepoints` to split a string into smaller strings representing its codepoints:
 
-    iex> Erlang.lists.flatten([1,[2],3]) = [1,2,3]
-    ** (ErlangError) erlang error :illegal_pattern
+    iex> String.codepoints "héllò"
+    ["h", "é", "l", "l", "ó"]
 
-## 2.5 Key-values
+The Unicode standard assigns an integer value to each character. Elixir allows a developer to retrieve or insert a character based on its integer codepoint value as well:
 
-One of the first control flow constructs we usually learn is the conditional `if`. In Elixir, we can write `if` in these two equivalent ways:
+    # Gettng the integer codepoint
+    iex> ?h
+    104
+    iex> ?é
+    233
 
-    iex> if true, do: 1 + 2
-    3
-    iex> if true do
-    ...>   1 + 2
-    ...> end
-    3
-
-Both examples above are simply different ways of expressing key-value arguments. Key-value arguments are a list of two-item tuples, where the first element is an atom representing the key and the second is the value. Elixir provides a syntax-shortcut for creating such key-values:
+    # Inserting a codepoint based on its hexadecimal value
+    iex> "h\xE9ll\xF2"
+    "héllò"
 
-    iex> [a: 1, b: 2]
-    [{:a, 1}, {:b, 2}]
+UTF-8 also plays nicely with pattern matching. In the exemple below, we are extracting the first UTF-8 codepoint of a String and assigning the rest of the string to the variable `rest`:
 
-In order to manipulate those key-value arguments, we can use the [`Orddict` module](https://github.com/josevalim/elixir/blob/master/lib/orddict.ex):
+    iex> << eacute :: utf8, rest :: binary >> = "épa"
+    "épa"
+    iex> eacute
+    233
+    iex> << eacute :: utf8 >>
+    "é"
+    iex> rest
+    "pa"
 
-    iex> x = [a: 1, b: 2]
-    [{:a, 1}, {:b, 2}]
-    iex> Orddict.get x, :a
-    1
-    iex> Orddict.get x, :c
-    nil
+In general, you will find working with binaries and strings in Elixir a breeze. Whenever you want to work with raw binaries, one can use [Erlang's binary module](http://www.erlang.org/doc/man/binary.html), and use [Elixir's String module](http://elixir-lang.org/docs/stable/String.html) when you want to work on strings, which are simply UTF-8 encoded binaries. Finally, there are a bunch of conversion functions, that allows you to convert a binary to integer, atom and vice-versa [in the Kernel module](http://elixir-lang.org/docs/stable/Kernel.html).
 
-Going back to the `if` example, we invoked it passing a condition (`true`) and a key-value argument (`do: 1 + 2`):
-
-    iex> if true, do: 1 + 2
-    3
+## 2.5 Blocks
 
-Since the key-value argument is the last argument, the brackets are optional. These are all equivalent:
+One of the first control flow constructs we usually learn is the conditional `if`. In Elixir, we could write `if` as follow:
 
     iex> if true, do: 1 + 2
     3
-    iex> if true, [do: 1 + 2]
-    3
-    iex> if(true, [do: 1 + 2])
-    3
 
-Besides, we can also pass an `else` clause to `if`:
+The `if` expression can also be written using the block syntax:
 
-    iex> if false, do: 1 + 2, else: 10 + 3
+    iex> if true do
+    ...>   a = 1 + 2
+    ...>   a + 10
+    ...> end
     13
 
-However, most of the times `if` clauses are longer than the examples above. In such cases, we usually use the block format:
+You can think of `do`/`end` blocks as a convenience for passing a group of expressions to `do:`. It is exactly the same as:
 
-    iex> if true do
-    ...>   1 + 2
-    ...> end
+    iex> if true, do: (
+    ...>   a = 1 + 2
+    ...>   a + 10
+    ...> )
+    13
 
-Internally, this is converted to the same key-value arguments as above. This feature is called key-value blocks. You can pass `else:` as option as well:
+We can pass an `else` clause in the block syntax:
 
     if false do
-      1 + 2
-    else:
-      10 + 3
+      :this
+    else
+      :that
     end
 
-Key-value blocks are similar to Ruby blocks. Parenthesis can be added as follows:
+It is important to notice that `do`/`end` always binds to the farthest function call. For example, the following expression:
 
-    if(false) do
+    is_number if true do
       1 + 2
-    else:
-      10 + 3
-    end
-
-Key-value blocks are an important feature that allow developers to create their own control structures as if they were part of the language itself. For instance, none of the control structures we are going to see in the next section are keywords. They are all implemented using key-values blocks.
-
-Elixir supports two syntaxes for key-value blocks: `do`/`end` and `->`/`end`. The first one always binds to the farthest function call, while the latter to the closest. For example, the following expression:
-
-    Enum.map [1,2,3], fn(x) do
-      x * 2
     end
 
 Would be parsed as:
 
-    Enum.map([1,2,3], fn(x)) do
-      x * 2
-    end
-
-Which is not what we want since `do` is binding to the farthest function call, in this case: `Enum.map`. We can fix this by using `->`, forcing the key-value block to bind to the `fn`:
-
-    Enum.map [1,2,3], fn(x) ->
-      x * 2
+    is_number(if true) do
+      1 + 2
     end
 
-Which is then parsed as:
+Which is not what we want since `do` is binding to the farthest function call, in this case `is_number`. Adding explicit parenthesis is enough to resolve the ambiguity:
 
-    Enum.map([1,2,3], fn(x) ->
-      x * 2
+    is_number(if true do
+      1 + 2
     end)
 
-A good rule of thumb is: always use `->/end` when defining functions with `fn`, use `do/end` for all other structures. If we follow this rule, everything works transparently.
-
 ## 2.6 Control flow structures
 
-In this section we are going to describe Elixir main control structures.
+In this section we'll describe Elixir's main control flow structures.
 
-### 2.6.1 If
+### 2.6.1 Revisiting pattern matching
 
-Refreshing from the section above, all these calls are equivalent:
+At the beginning of this chapter we have seen some pattern matching examples:
 
-    if false, do: 1 + 2, else: 10 + 3
-
-    if false do
-      1 + 2
-    else:
-      10 + 3
-    end
-
-    # Although this is valid, its usage is discouraged.
-    if(false) ->
-      1 + 2
-    else:
-      10 + 3
-    end
+    iex> [h | t] = [1,2,3]
+    [1, 2, 3]
+    iex> h
+    1
+    iex> t
+    [2, 3]
 
-`if` also accepts many `elsif:` clauses:
+In Elixir, `=` is not an assignment operator as in programming languages like Java, Ruby, Python, etc. `=` is actually a match operator which will check if the expressions on both left and right side match.
 
-    if 1 + 1 == 3 do
-      IO.puts "Impossible"
-    elsif: 1 + 1 == 2
-      IO.puts "This will match"
-    elsif: true
-      IO.puts "This won't because the one above matched"
-    else:
-      IO.puts "This won't"
-    end
+Many control-flow structures in Elixir rely extensively on pattern matching and the ability for different clauses too match. In some cases, you may want to match against the value of a variable, which can be achieved by with the `^` operator:
 
-In Elixir, all values except `false` and `nil` evaluates to true. So there is no need to convert them to false.
+    iex> x = 1
+    1
+    iex> ^x = 1
+    1
+    iex> ^x = 2
+    ** (MatchError) no match of right hand side value: 2
+    iex> x = 2
+    2
 
-### 2.6.2 Other boolean operators
+In Elixir, it is a common practice to assign a value to underscore `_` if we don't intend to use it. For example, if only the head of the list matters to us, we can assign the tail to underscore:
 
-In the previous chapter, we discussed the boolean operators `and`, `or` and `not`. Those operators are strict in the sense they only accept booleans as arguments.
+    iex> [h | _] = [1,2,3]
+    [1, 2, 3]
+    iex> h
+    1
 
-To work around this limitation, Elixir provides three operators with similar functionality but that accept any argument: `||`, `&&` and `!`. For those operators, all values except `false` and `nil` will evaluate to true.
+The variable `_` in Elixir is special in that it can never be read from. Trying to read from it gives an unbound variable error:
 
-    # Short-circuit or
-    iex> 1 || true
-    1
-    iex> false || 11
-    11
+    iex> _
+    ** (ErlangError) erlang error {:unbound_var, :_}
 
-    # Short-circuit and
-    iex> nil && 13
-    nil
-    iex> true && 17
-    17
+Although pattern matching allows us to build powerful constructs, its usage is limited. For instance, you cannot make function calls on the left side of a match. The following example is invalid:
 
-    # Short-circuit !
-    iex> !true
-    false
-    iex> !1
-    false
-    iex> !nil
-    true
+    iex> length([1,[2],3]) = 3
+    ** (ErlangError) erlang error :illegal_pattern
 
-### 2.6.3 Case
+### 2.6.2 Case
 
-In this section we have introduced pattern matching via the `=` operator. Sometimes however it is convenient to match an expression against several expressions until we find a matching one. For such cases, we use `case`:
+A `case` allows us to compare a value against many patterns until we find a matching one:
 
     case { 1, 2, 3 } do
-    match: { 4, 5, 6 }
-      IO.puts "This won't match"
-    match: { 1, x, 3 }
-      IO.puts "This will match and assign x"
-    else:
-      IO.puts "No match"
+      { 4, 5, 6 } ->
+        "This won't match"
+      { 1, x, 3 } ->
+        "This will match and assign x to 2"
+      _ ->
+        "This will match any value"
     end
 
-As in the `=` operator, any assigned variable will be overridden in the match clause. In case you want to pattern match against a variable, you need to use the `^` operator:
+As in the `=` operator, any assigned variable will be overridden in the match clause. If you want to pattern match against a variable, you need to use the `^` operator:
 
     x = 1
     case 10 do
-    match: ^x
-      IO.puts "Won't match"
-    else:
-      IO.puts "Will match"
+      ^x -> "Won't match"
+      _  -> "Will match"
     end
 
-Each match clause also supports special conditions to be given via guards:
+Each match clause also supports special conditions specified via guards:
 
     case { 1, 2, 3 } do
-    match: { 4, 5, 6 }
-      IO.puts "This won't match"
-    match: { 1, x, 3 } when x > 0
-      IO.puts "This will match and assign x"
-    else:
-      IO.puts "No match"
+      { 4, 5, 6 } ->
+        "This won't match"
+      { 1, x, 3 } when x > 0 ->
+        "This will match and assign x"
+      _ ->
+        "No match"
     end
 
-In the example above, the second clause will only match when x is positive. The Erlang VM only allows few expressions as guards, they are:
+In the example above, the second clause will only match when x is positive. The Erlang VM only allows a limited set of expressions as guards:
 
-* comparison operators (`==`, `!=`, `===`, `!===`, `>`, `<`, `<=`, `>=`);
-* strict boolean operators (`and`, `or`, `not`). Note that `||` and `&&` are not allowed;
+* comparison operators (`==`, `!=`, `===`, `!==`, `>`, `<`, `<=`, `>=`);
+* boolean operators (`and`, `or`) and negation operators (`not`, `!`);
 * arithmetic operators (`+`, `-`, `*`, `/`);
 * `<>` and `++` as long as the left side is a literal;
+* the `in` operator;
 * all the following type check functions:
 
-    is_atom/1
-    is_binary/1
-    is_bitstring/1
-    is_boolean/1
-    is_float/1
-    is_function/1
-    is_function/2
-    is_integer/1
-    is_list/1
-    is_number/1
-    is_pid/1
-    is_port/1
-    is_record/2
-    is_record/3
-    is_reference/1
-    is_tuple/1
-    is_exception/1
+    * is_atom/1
+    * is_binary/1
+    * is_bitstring/1
+    * is_boolean/1
+    * is_float/1
+    * is_function/1
+    * is_function/2
+    * is_integer/1
+    * is_list/1
+    * is_number/1
+    * is_pid/1
+    * is_port/1
+    * is_record/2
+    * is_record/3
+    * is_reference/1
+    * is_tuple/1
+    * is_exception/1
 
 * plus these functions:
 
-    abs(Number)
-    bit_size(Bitstring)
-    byte_size(Bitstring)
-    elem(Tuple, n)
-    float(Term)
-    hd(List)
-    length(List)
-    node()
-    node(Pid|Ref|Port)
-    round(Number)
-    self()
-    size(Tuple|Bitstring)
-    tl(List)
-    trunc(Number)
-    tuple_size(Tuple)
+    * abs(Number)
+    * bit_size(Bitstring)
+    * byte_size(Bitstring)
+    * div(Number, Number)
+    * elem(Tuple, n)
+    * float(Term)
+    * hd(List)
+    * length(List)
+    * node()
+    * node(Pid|Ref|Port)
+    * rem(Number, Number)
+    * round(Number)
+    * self()
+    * size(Tuple|Bitstring)
+    * tl(List)
+    * trunc(Number)
+    * tuple_size(Tuple)
 
 Many independent guard clauses can also be given at the same time. For example, consider a function that checks if the first element of a tuple or a list is zero. It could be written as:
 
@@ -407,181 +411,194 @@ Many independent guard clauses can also be given at the same time. For example,
       true
     end
 
-However, the example above will always fail because, if the argument is a list, calling `elem` in a list will raise an error. On the other hand, if the element is a tuple, calling `hd` in a tuple will also raise an error. That said, we can rewrite it to become two different clauses:
+However, the example above will always fail. If the argument is a list, calling `elem` on a list will raise an error. If the element is a tuple, calling `hd` on a tuple will also raise an error. To fix this, we can rewrite it to become two different clauses:
 
-    def first_is_zero?(tuple_or_list) when
-      elem(tuple_or_list, 1) == 0 when
-      hd(tuple_or_list) == 0 do
+    def first_is_zero?(tuple_or_list)
+        when elem(tuple_or_list, 1) == 0
+        when hd(tuple_or_list) == 0 do
       true
     end
 
 In such cases, if there is an error in one of the guards, it won't affect the next one.
 
-### 2.6.4 Functions
-
-Throughout this guide, we have created many functions in examples. The syntax for creating functions is:
+### 2.6.3 Functions
 
-    fn(a, b) -> a + b end
+In Elixir, anonymous functions can accept many clauses and guards just the `case` mechanism we have just seen:
 
-But it could also be written as (the previous example is preferred though):
-
-    fn(a, b, do: a + b)
-
-    fn(a, b) do
-      a + b
+    f = fn
+      x, y when x > 0 -> x + y
+      x, y -> x * y
     end
 
-As an immutable language, the binding of the function is also immutable. This means that setting a variable inside the function does not affect its outer scope:
+    f.(1, 3)  #=> 4
+    f.(-1, 3) #=> -3
+
+As Elixir is an immutable language, the binding of the function is also immutable. This means that setting a variable inside the function does not affect its outer scope:
 
     x = 1
     (fn -> x = 2 end).()
     x #=> 1
 
-### 2.6.5 Loops
+### 2.6.4 Receive
 
-Due to data structure immutability, loops in Elixir (and in functional programming languages) are written differently from conventional imperative languages. For example, in an imperative language, one would write:
+This next control-flow mechanism is essential to Elixir's and Erlang's actor mechanism. In Elixir, the code is run in separate processes that exchange messages between them. Those processes are not Operating System processes (they are actually quite light-weight) but are called so since they do not share state with each other.
 
-    for(i = 0; i < array.length; i++) {
-      array[i] = array[i] * 2
-    }
+In order to exchange messages, each process has a mailbox where the received messages are stored. The `receive` mechanism allows us to go through this mailbox searching for a message that matches the given pattern. Here is an example that uses the arrow operator `<-` to send a message to the current process and then collects this message from its mailbox:
 
-In the example above, we are mutating the array which is not possible in Elixir. Therefore, in functional languages recursion happens by calling an anonymous or a named function recursively, until we reach a condition. Consider the example below that manually sums all the items in the list:
+    # Get the current process id
+    iex> current_pid = self
 
-    iex> loop [1,2,3], 0 do
-    ...> match: [h|t], acc
-    ...>   recur(t, h + acc)
-    ...> match: [], acc
-    ...>   acc
-    ...> end
-    6
+    # Spawn another process that will send a message to current_pid
+    iex> spawn fn ->
+      current_pid <- { :hello, self }
+    end
+    <0.36.0>
 
-In the example above, we pass  a list `[1,2,3]` and the initial value `0` as arguments to loop. The list `[1,2,3]` is then matched against `[h|t]` which assigns `h = 1` and `t = [2,3]` and 0 is assigned to `acc`.
 
-Then, we add the head of the list to the accumulator `h + acc` and call the loop again using the `recur` function, passing the tail of the list as argument. The tail will once again match the `[h|t]` until the list is empty, matching the final clause which returns the final result of `6`. In other words, the loop is called 4 times until the list is empty and the recursion stops:
+    # Collect the message
+    iex> receive do
+    ...>   { :hello, pid } ->
+    ...>     IO.puts "Hello from #{inspect(pid)}"
+    ...> end
+    Hello from <0.36.0>
 
-    loop [1,2,3], 0
-    loop [2,3], 1
-    loop [3], 3
-    loop [], 6
+You may not see exactly `<0.36.0>` back, but something similar. If there are no messages in the mailbox, the current process will hang until a matching message arrives unless an after clause is given:
 
-> Note: `loop/recur` is also a Clojure idiom, although differently from Clojure, `recur` in Elixir does not ensure a tail call was made.
+    iex> receive do
+    ...>   :waiting ->
+    ...>     IO.puts "This may never come"
+    ...> after
+    ...>   1000 -> # 1 second
+    ...>     IO.puts "Too late"
+    ...> end
+    Too late
 
-### 2.6.6 Try
+Notice we spawned a new process using the `spawn` function passing another function as argument. We will talk more about those processes and even how to exchange messages in between different nodes in a later chapter.
 
-The next control-flow mechanism is `try/catch/after`:
+### 2.6.5 Try
+
+`try` in Elixir is used to catch values that are thrown. Let's start with an example:
 
     iex> try do
     ...>   throw 13
-    ...> catch: number
-    ...>   number
+    ...> catch
+    ...>   number -> number
     ...> end
     13
 
-`try/catch` is the main mechanism for catching values thrown by Elixir runtime. It also supports an `after` clause that is invoked regardless if the value was caught or not:
+`try/catch` is a control-flow mechanism, useful in rare situations where your code has complex exit strategies and it is easier to `throw` a value back up in the stack. `try` also supports guards in `catch` and an `after` clause that is invoked regardless of whether or not the value was caught:
 
     iex> try do
     ...>   throw 13
-    ...> catch: nan when not is_number(nan)
-    ...>   nan
-    ...> after:
+    ...> catch
+    ...>   nan when not is_number(nan) -> nan
+    ...> after
     ...>   IO.puts "Didn't catch"
     ...> end
     Didn't catch
     ** throw 13
         erl_eval:expr/3
 
-There is one particularity that applies to `try/catch/after` when compared to other control-flow expressions. The Erlang VM considers such clauses unsafe (since they may fail or not) and do not allow variables defined inside `try/catch/after` to be accessed from the outer scope:
+Notice that a thrown value which hasn't been caught halts the software. For this reason, Elixir considers such clauses unsafe (since they may or may not fail) and does not allow variables defined inside `try/catch/after` to be accessed from the outer scope:
 
     iex> try do
     ...>   new_var = 1
-    ...> catch: value
-    ...>   value
+    ...> catch
+    ...>   value -> value
     ...> end
     1
     iex> new_var
     ** error :undef
 
-The common strategy then is to make explicit all arguments that are required after the `try`:
+The common strategy is to explicitly return all arguments from `try`:
 
     { x, y } = try do
       x = calculate_some_value()
       y = some_other_value()
       { x, y }
-    catch: _
-      { nil, nil }
+    catch
+      _ -> { nil, nil }
     end
 
     x #=> returns the value of x or nil for failures
 
-### 2.6.7 Rescue
+### 2.6.6 If and Unless
 
-While `catch` clauses inside `try` are simply a pattern matching mechanism, `rescue` provides a higher abstraction around exceptions. `rescue` allows a developer to rescue an exception by its name and not by its internal contents. Consider the following examples:
+Besides the four main control-flow structures above, Elixir provides some extra control-flow structures to help on our daily work. For example, `if` and `unless`:
 
-    try do
-      raise "some error"
-    rescue: RuntimeError
-      "rescued"
-    end
+    iex> if true do
+    iex>   "This works!"
+    iex> end
+    "This works!"
 
-    try do
-      raise "some error"
-    rescue: [RuntimeError]
-      "rescued"
-    end
+    iex> unless true do
+    iex>   "This will never be seen"
+    iex> end
+    nil
 
-    # rescue and assign to x
-    try do
-      raise "some error"
-    rescue: x in [RuntimeError]
-      # all exceptions respond to message
-      x.message
-    end
+Remember that `do/end` blocks in Elixir are simply a shortcut to the keyword notation. So one could also write:
+
+    iex> if true, do: "This works!"
+    "This works!"
+
+Or even more complex examples like:
+
+    # This is equivalent...
+    if false, do: 1 + 2, else: 10 + 3
 
-    # rescue all (discouraged) and assign to x
-    try do
-      raise ArgumentError, message: "unexpected argument"
-    rescue: x in _
-      x.message
+    # ... to this
+    if false do
+      1 + 2
+    else
+      10 + 3
     end
 
-Custom exceptions can be defined using the `defexception` macro. Check [the exceptions file for some examples](https://github.com/josevalim/elixir/tree/master/lib/exception.ex).
+In Elixir, all values except `false` and `nil` evaluate to `true`. Therefore there is no need to explicitly convert the `if` argument to a boolean. If you want to check if one of many conditions are true, you can use the `cond` macro.
 
-### 2.6.8 Receive
+### 2.6.7 Cond
 
-The last control-flow mechanism we are going to discuss is essential to Elixir's and Erlang's actor mechanism. In Elixir, every code run in processes that exchange messages between them. Those processes are not Operating System processes (they are actually quite light-weight) but called so since they do not share state with each other.
+Whenever you want to check for many conditions at the same time, Elixir allows developers to use `cond` insted of nesting many `if` expressions:
 
-In order to exchange messages, each process has a mailbox where the received messages are stored. The `receive` mechanism allows us to go through this mailbox searching for a message that matches the given pattern. Here is an example that uses the arrow operator `<-` to send a message to the current process and then collects this message from its mailbox:
+    cond do
+      2 + 2 == 5 ->
+        "This will never match"
+      2 * 2 == 3 ->
+        "Nor this"
+      1 + 1 == 2 ->
+        "But this will"
+    end
 
-    # Get the current process id
-    iex> current_pid = self()
+If none of the conditions return true, an error will be raised. For this reason, it is common to see a last condition equal to `true`, which will always match:
 
-    # Spawn another process that will send a message to current_pid
-    iex> spawn fn(do: current_pid <- { :hello, self() })
-    <0.36.0>
+    cond do
+      2 + 2 == 5 ->
+        "This will never match"
+      2 * 2 == 3 ->
+        "Nor this"
+      true ->
+        "This will always match (equivalent to else)"
+    end
 
-    # Collect the message
-    iex> receive do
-    ...> match: { :hello, pid }
-    ...>   IO.puts "Hello from #{pid}"
-    ...> end
-    Hello from <0.36.0>
+## 2.7 Built-in functions
 
-You may not see exactly `<0.36.0>` back, but something similar. If there are no messages in the mailbox, the current process will hang until a matching message arrives, unless an after clause is given:
+Elixir ships with many built-in functions automatically available in the current scope. In addition to the control flow expressions seen above, Elixir also adds: `elem` and `set_elem` to read and set values in tuples, `inspect` that returns the representation of a given data type as a binary, and many others. All of these functions imported by default are available in [`Kernel`](/docs/stable/Kernel.html) and [Elixir special forms are available in `Kernel.SpecialForms`](/docs/stable/Kernel.SpecialForms.html).
 
-    iex> receive do
-    ...> match: :waiting
-    ...>   IO.puts "This may never come"
-    ...> after: 1000 # 1 second
-    ...>   IO.puts "Too late"
-    ...> end
-    Too late
+All of these functions and control flow expressions are essential for building Elixir programs. In some cases though, one may need to use functions available from Erlang, let's see how.
 
-In most cases, we don't send messages directly with `<-` nor write `receive` control expressions. Instead, we use many of the abstractions provided by OTP which will be discussed later.
+## 2.8 Calling Erlang functions
 
-## 2.7 Default functions
+One of Elixir's assets is easy integration with the existing Erlang ecosystem. Erlang ships with a group of libraries called OTP (Open Telecom Platform). Besides being a standard library, OTP provides several facilities to build OTP applications with supervisors that are robust, distributed and fault-tolerant.
 
-Elixir ships with many default functions automatically available in the current scope. Besides all the control flow expressions seen above, Elixir also adds: `elem` and `setelem` to read and set values in tuples, `inspect` that returns the representation of a given data type as string and many others. [Many of these functions with documentation and examples are available in `Elixir::Builtin`](https://github.com/josevalim/elixir/tree/master/lib/elixir/builtin.ex) and [Elixir special forms are available in `Elixir::SpecialForms`](https://github.com/josevalim/elixir/tree/master/lib/elixir/special_forms.ex).
+Since an Erlang module is nothing more than an atom, invoking those libraries from Elixir is quite straight-forward. For example, we can call the [function `flatten` from the module `lists`](http://www.erlang.org/doc/man/lists.html#flatten-1) or interact with [the math module](http://www.erlang.org/doc/man/math.html) as follows:
 
-Besides the functions provided by Elixir, most of the root functions from Erlang are also available. The function `length`, `is_list`, `is_number` and many others we discussed above comes from Erlang. [The full documented list is available on the OTP documentation page](http://www.erlang.org/doc/man/erlang.html).
+    iex> :lists.flatten [1,[2],3]
+    [1,2,3]
+    iex> :math.sin :math.pi
+    1.2246467991473532e-16
+
+Erlang's OTP is very well documented and we will learn more about building OTP applications in the Mix chapters:
+
+* [OTP docs](http://www.erlang.org/doc/)
+* [Standard library docs](http://www.erlang.org/doc/man/STDLIB_app.html)
 
-All those functions and control flow expressions are essential for building Elixir programs. The next chapter will discuss how to organize our code into modules, so it can be easily re-used between different components.
\ No newline at end of file
+That's all for now. The next chapter will discuss how to organize our code into modules so it can be easily reused between different applications.
diff --git a/getting_started/3.markdown b/getting_started/3.markdown
index 2fcaa86d4..d0dd6682d 100644
--- a/getting_started/3.markdown
+++ b/getting_started/3.markdown
@@ -1,13 +1,13 @@
 ---
 layout: getting_started
-title: Elixir - 3. Modules
-active: 2
+title: 3 Modules
 guide: 3
+total_guides: 7
 ---
 
-# 3 Modules
+# {{ page.title }}
 
-In Elixir, you can group several functions into a module. In the previous chapter, we have invoked for example functions from the module List:
+In Elixir, you can group several functions into a module. In the previous chapter, for example, we invoked functions from the [`module List`](/docs/stable/List.html):
 
     iex> List.flatten [1,[2],3]
     [1, 2, 3]
@@ -27,7 +27,7 @@ Before diving into modules, let's first have a brief overview about compilation.
 
 ## 3.1 Compilation
 
-Most of the times it is convenient to write modules into files so they can be compiled and re-used. Let's assume we have a file named `math.ex` with the following contents:
+Most of the time it is convenient to write modules into files so they can be compiled and reused. Let's assume we have a file named `math.ex` with the following contents:
 
     defmodule Math do
       def sum(a, b) do
@@ -35,30 +35,30 @@ Most of the times it is convenient to write modules into files so they can be co
       end
     end
 
-This file can be compiled using `bin/elixirc`:
+This file can be compiled using `elixirc` (remember, if you installed Elixir from a package or compiled it, `elixirc` will be inside the bin directory):
 
-    bin/elixirc math.ex
+    elixirc math.ex
 
-Which will then generate a file named `::Math.beam` containing the bytecode for the defined module. Now, if we start `bin/iex` again, our module definition will be available (considering `bin/iex` is being started in the same directory the bytecode file is):
+This will generate a file named `Elixir.Math.beam` containing the bytecode for the defined module. Now, if we start `iex` again, our module definition will be available (considering `iex` is being started in the same directory the bytecode file is):
 
     iex> Math.sum(1, 2)
     3
 
 Elixir projects are usually organized into three directories:
 
-* ebin - holds the compiled bytecode
-* lib - holds elixir code (usually `.ex` files)
-* test - holds tests (usually `.exs` files)
+* ebin - contains the compiled bytecode
+* lib - contains elixir code (usually `.ex` files)
+* test - contains tests (usually `.exs` files)
 
-In many cases, since the bytecode is in `ebin`, you need to explicitly tell Elixir to lookup for code in the `ebin` directory:
+Whenever interacting with an existing library, you may need to explicitly tell Elixir to look for bytecode in the `ebin` directory:
 
-    bin/iex -pa ebin
+    iex -pa ebin
 
-Where `-pa` stands for `path append`. The same option can also be passed to `elixir` and `elixirc` executables. You can execute `bin/elixir` and `bin/elixirc` to get a full list of options.
+Where `-pa` stands for `path append`. The same option can also be passed to `elixir` and `elixirc` executables. You can execute `elixir` and `elixirc` without arguments to get a list of options.
 
 ## 3.2 Scripted mode
 
-Besides the Elixir file `.ex`, Elixir also supports `.exs` files for scripting. Elixir treats both files exactly the same way, the only difference is in intention. `.ex` files are meant to be compiled while `.exs` files are used for scripting, without a need for compilation. For instance, one can create a file called `math.exs`:
+In addition to the Elixir file `.ex`, Elixir also supports `.exs` files for scripting. Elixir treats both files exactly the same way, the only difference is in intention. `.ex` files are meant to be compiled while `.exs` files are used for scripting, without the need for compilation. For instance, one can create a file called `math.exs`:
 
     defmodule Math do
       def sum(a, b) do
@@ -70,9 +70,9 @@ Besides the Elixir file `.ex`, Elixir also supports `.exs` files for scripting.
 
 And execute it as:
 
-    bin/elixir math.exs
+    elixir math.exs
 
-The file will be compiled in memory and executed, printing 3 as result. No bytecode file will be created.
+The file will be compiled in memory and executed, printing 3 as the result. No bytecode file will be created.
 
 ## 3.3 Functions and private functions
 
@@ -91,7 +91,7 @@ Inside a module, we can define functions with `def` and private functions with `
     Math.sum(1, 2)    #=> 3
     Math.do_sum(1, 2) #=> ** (UndefinedFunctionError)
 
-Function declarations also supports guards and multiple clauses. If a function has several clauses, Elixir will try each clause until find one that matches. For example, here is the implementation for a function that checks if the given number is zero or not:
+Function declarations also support guards and multiple clauses. If a function has several clauses, Elixir will try each clause until it finds one that matches. Here is the implementation of a function that checks if the given number is zero or not:
 
     defmodule Math do
       def zero?(0) do
@@ -109,53 +109,163 @@ Function declarations also supports guards and multiple clauses. If a function h
     Math.zero?([1,2,3])
     #=> ** (FunctionClauseError)
 
-Notice that giving an argument that does not match any of the clauses raises an error.
+Giving an argument that does not match any of the clauses raises an error.
 
-## 3.4 Directives
+Named functions also support default arguments:
 
-In order to support software-reuse, Elixir supports two directives. As we are going to see below, they are called directives because they are the only functions in Elixir that are **lexical**.
+    defmodule Concat do
+      def join(a, b, sep // " ") do
+        a <> sep <> b
+      end
+    end
 
-### 3.4.1 import
+    IO.puts Concat.join("Hello", "world")      #=> Hello world
+    IO.puts Concat.join("Hello", "world", "_") #=> Hello_world
 
-We use `import` whenever we want to easily access functions or macros from others modules without using the qualified name. For instance, if we want to use the `values` function from `Orddict` several times in a module and we don't want to always type `Orddict.values`, we can simply import it:
+Any expression is allowed to serve as a default value, but it won't be evaluated during the function definition; it will simply be stored for later use. Every time the function is invoked and any of its default values have to be used, the expression for that default value will be evaluated:
 
-    defmodule Math do
-      import Orddict, only: [values: 1]
+    defmodule DefaultTest do
+      def dowork(x // IO.puts "hello") do
+        x
+      end
+    end
 
-      def some_function do
-        # call values(orddict)
+    iex> DefaultTest.dowork 123
+    123
+    iex> DefaultTest.dowork
+    hello
+    :ok
+
+If a function with default values has multiple clauses, it is recommended to create a separate clause without an actual body, just for declaring defaults:
+
+    defmodule Concat do
+      def join(a, b // nil, sep // " ")
+
+      def join(a, b, _sep) when nil?(b) do
+        a
+      end
+
+      def join(a, b, sep) do
+        a <> sep <> b
       end
     end
 
-In this case, we are importing only the function `values` (with arity 1) from `Orddict`. Although `only:` is optional, its usage is recommended. `except` could also be given as an option.
+    IO.puts Concat.join("Hello", "world")      #=> Hello world
+    IO.puts Concat.join("Hello", "world", "_") #=> Hello_world
+    IO.puts Concat.join("Hello")               #=> Hello
 
-If we want to import only `:functions` or `:macros` from a given module, we can also pass a first argument selecting the scope:
 
-    import :macros, MyMacros
+When using default values, one must be careful to avoid overlapping function definitions. Consider the following example:
+
+    defmodule Concat do
+      def join(a, b) do
+        IO.puts "***First join"
+        a <> b
+      end
+
+      def join(a, b, sep // " ") do
+        IO.puts "***Second join"
+        a <> sep <> b
+      end
+    end
+
+If we save the code above in a file named "concat.ex" and compile it, Elixir will emit the following warning:
+
+    test_funs.ex:7: this clause cannot match because a previous clause at line 2 always matches
+
+The compiler is telling us that invoking the `join` function with two arguments will always choose the first definition of `join` whereas the second one will only be invoked when three arguments are passed:
+
+    $ iex test_funs.ex
+
+    iex> Concat.join "Hello", "world"
+    ***First join
+    "Helloworld"
 
-And then we can use `only` or `except` to filter the macros being included. Finally, note that `import` is **lexical**, this means we can import specific macros inside specific functions:
+    iex> Concat.join "Hello", "world", "_"
+    ***Second join
+    "Hello_world"
+
+### 3.4 Recursion
+
+Due to immutability, loops in Elixir (and in functional programming languages) are written differently from conventional imperative languages. For example, in an imperative language, one would write:
+
+    for(i = 0; i < array.length; i++) {
+      array[i] = array[i] * 2
+    }
+
+In the example above, we are mutating the array which is not possible in Elixir. Therefore, functional languages rely on recursion: a function is called recursively until a condition is reached. Consider the example below that manually sums all the items in the list:
 
     defmodule Math do
-      def some_function do
-        import Orddict, only: [values: 1]
-        # call values(orddict)
+      def sum_list([h|t], acc) do
+        sum_list(t, h + acc)
       end
+
+      def sum_list([], acc) do
+        acc
+      end
+    end
+
+    Math.sum_list([1,2,3], 0) #=> 6
+
+In the example above, we invoke `sum_list` giving a list `[1,2,3]` and the initial value `0` as arguments. When a function has many clauses, we will try each clause until we find one that matches according to the pattern matching rules. In this case, the list `[1,2,3]` matches against `[h|t]` which assigns `h = 1` and `t = [2,3]` while `acc` is set to 0.
+
+Then, we add the head of the list to the accumulator `h + acc` and call `sum_list` again, recursively, passing the tail of the list as argument. The tail will once again match `[h|t]` until the list is empty, as seen below:
+
+    sum_list [1,2,3], 0
+    sum_list [2,3], 1
+    sum_list [3], 3
+    sum_list [], 6
+
+When the list is empty, it will match the final clause which returns the final result of `6`. In imperative languages, such implementation would usually fail for large lists because the stack (in which our execution path is kept) would grow until it reaches a limit. Elixir, however, does last call optimization in which the stack does not grow when a function exits by calling another function.
+
+Recursion and last call optimization are an important part of Elixir and are commonly used to create loops, especially in cases where a process needs to wait and respond to messages (using the `receive` macro we saw in the previous chapter). However, recursion as above is rarely used to manipulate lists, since [the `Enum` module](/docs/stable/Enum.html) already abstracts such use cases. For instance, the example above could be simply written as:
+
+    Enum.reduce([1,2,3], 0, fn(x, acc) -> x + acc end)
+
+## 3.5 Directives
+
+In order to facilitate software reuse, Elixir supports three directives. As we are going to see below, they are called directives because they have **lexical scope**.
+
+### 3.5.1 alias
+
+`alias` allows you to setup aliases for any given module name. Imagine our `Math` module has a special list for doing math specific operations:
+
+    defmodule Math do
+      alias Math.List, as: List
     end
 
-In the example above, we imported `Orddict.values` only for during that specific function. `values` won't be available in any other functions in that module.
+From now on, any reference to `List` will automatically expand to `Math.List`. In case one wants to access the original `List`, it can be done by accessing the module via `Elixir`:
 
-### 3.4.2 require
+    List.values             #=> uses Math.List.values
+    Elixir.List.values      #=> uses List.values
+    Elixir.Math.List.values #=> uses Math.List.values
 
-`require` is responsible to enforce that a module is loaded and to setup references aliases for a given module. For instance, one can do:
+> Note: All modules defined in Elixir are defined inside a main Elixir namespace. However, for convenience, you can omit the Elixir main namespace.
+
+Calling `alias` without an `as` option sets the alias automatically to the last part of the module name, for example:
+
+    alias Math.List
+
+Is the same as:
+
+    alias Math.List, as: List
+
+Notice that `alias` is **lexically scoped**, which allows you to set aliases inside specific functions:
 
     defmodule Math do
-      require MyOrddict, as: Orddict
+      def add(a, b) do
+        alias Math.List
+        # ...
+      end
+
+      def minus(a, b) do
+        # ...
+      end
     end
 
-And now, any reference to `Orddict` will be automatically replaced by `MyOrddict`. In case one wants to access the original `Orddict`, it can be done by prefixing the module name with `::`:
+In the example above, since we are invoking `alias` inside the function `add`, the alias will just be valid inside the function `add`. `minus` won't be affected at all.
 
-    Orddict.values   #=> uses ::MyOrddict.values
-    ::Orddict.values #=> uses ::Orddict.values
+### 3.5.2 require
 
 In general, a module does not need to be required before usage, except if we want to use the macros available in that module. For instance, suppose we created our own `my_if` implementation in a module named `MyMacros`. If we want to invoke it, we need to first explicitly require `MyMacros`:
 
@@ -164,104 +274,128 @@ In general, a module does not need to be required before usage, except if we wan
       MyMacros.my_if do_something, it_works
     end
 
-An attempt to call a macro that was not loaded will raise an error. Note that, as the import directive, `require` is lexical.
+An attempt to call a macro that was not loaded will raise an error. Note that like the `alias` directive, `require` is also lexically scoped. We will talk more about macros in chapter 5.
 
-## 3.5 Module data
+### 3.5.3 import
 
-Elixir also allows module to store their own data. The canonical example for such data is annotating that a module implements the OTP behavior called `gen_server`:
+We use `import` whenever we want to easily access functions or macros from other modules without using the qualified name. For instance, if we want to use the `duplicate` function from `List` several times in a module and we don't want to always type `List.duplicate`, we can simply import it:
 
-    defmodule MyServer do
-      @behavior :gen_server
-      # ... callbacks ...
+    defmodule Math do
+      import List, only: [duplicate: 2]
+
+      def some_function do
+        # call duplicate
+      end
     end
 
-Now if the module above does not implement any of the callbacks required by `gen_server`, a warning will be raised. Another data used internally by Elixir is is the `@vsn`:
+In this case, we are importing only the function `duplicate` (with arity 2) from `List`. Although `only:` is optional, its usage is recommended. `except` could also be given as an option.
+
+`import` also supports selectors, to filter what you want to import. We have four selectors:
+
+* `:default` - imports all functions and macros, except the ones starting by underscore;
+* `:all` - imports all functions and macros;
+* `:functions` - imports all functions;
+* `:macros` - imports all macros;
+
+For example, to import all macros, one could write:
+
+    import :macros, MyMacros
+
+Note that `import` is also **lexically scoped**, this means we can import specific macros inside specific functions:
+
+    defmodule Math do
+      def some_function do
+        import List, only: [duplicate: 2]
+        # call duplicate
+      end
+    end
+
+In the example above, the imported `List.duplicate` is only visible within that specific function. `duplicate` won't be available in any other function in that module (or any other module for that matter).
+
+Note that importing a module automatically requires it. Furthermore, `import` also accepts the `as:` option which is automatically passed to `alias` in order to create an alias.
+
+## 3.6 Module attributes
+
+Elixir brings the concept of module attributes from Erlang. For example:
 
     defmodule MyServer do
       @vsn 2
     end
 
-`@vsn` refers to version and is used by the code reloading mechanism to check if a module is updated or not. If no version is specified, the version is set to the MD5 of the module functions.
+In the example above, we are explicitly setting the version attribute for that module. `@vsn` is used by the code reloading mechanism in the Erlang VM to check if a module has been updated or not. If no version is specified, the version is set to the MD5 checksum of the module functions.
 
-Elixir has a handful of reserved data attributes. The following are currently functional in Elixir:
+Elixir has a handful of reserved attributes. The following are currently functional in Elixir:
 
-* `@behaviour` and `@behavior` - used for specifying an OTP or user-defined behavior;
-* `@vsn` - used for specifying the module version;
+* `@after_compile` - expects a tuple `{ module, function }` containing a module and a function which will be invoked right after the current module is compiled. The module environment and its bytecode are passed as arguments to the callback function;
+* `@before_compile` - expects a `{ module, function }` containing a module and a function that will be invoked before the module is compiled with the module environment. The function may be a macro, allowing you to inject functions inside the module exactly before compilation;
+* `@behaviour` - (notice the british spelling) used for specifying an OTP or user-defined behaviour;
 * `@compile` - provides options for the module compilation;
-* `@moduledoc` - provides documentation to the current module;
-* `@doc` - provides documentation to the next function;
-* `@on_load` - provides a function, with arity 0, that will be invoked whenever the module is loaded. The function needs to return `:ok`, otherwise the loading of the function is aborted;
-* `@overridable` - when true, the function can be overridden and referenced later using the special form `super`;
+* `@doc` - provides documentation for the next function or macro to be defined;
+* `@file` - changes the filename in stacktraces of the next function or macro to be defined;
+* `@moduledoc` - provides documentation for the current module;
+* `@on_definition` - expects a `{ module, function }` containing a module and a function which will be invoked after each function/macro is defined. This makes it easy to annotate and customize functions;
+* `@on_load` - expects a function name from the currently being defined module that will be invoked whenever the module is loaded. The function must have arity 0 and has to return `:ok`, otherwise the loading of the module is aborted;
+* `@vsn` - used for specifying the module version;
 
-The following are also reserved by Elixir (as they have special semantics to the Erlang VM) but not currently supported (if you need support to any of these in your current projects, please make yourself heard in the issues tracker):
+The following attributes are part of [typespecs](http://www.erlang.org/doc/reference_manual/typespec.html) and are also supported by Elixir:
 
-* `@spec` - provides an specification for the next function to be defined;
-* `@callback` - provides an specification for the behavior callback;
-* `@type` - provides a type to be used in @spec;
-* `@export_type` - provides a type to be used in @spec that can be accessed from external specs;
+* `@spec` - provides a specification for a function;
+* `@callback` - provides a specification for the behavior callback;
+* `@type` - defines a type to be used in @spec;
+* `@export_type` - informs which types can be exported;
+* `@opaque` - defines an opaque type to be used in @spec;
 
-Besides the built-in data above, any developer can also add custom data:
+In addition to the built-in attributes outlined above, custom attributes may also be added:
 
     defmodule MyServer do
       @my_data 13
       IO.inspect @my_data #=> 13
     end
 
-After the module is compiled, the stored custom data can be accessed via `__info__(:data)` and it will return an `Orddict`:
+Unlike Erlang, user defined attributes are not stored in the module by default since it is common in Elixir to use such attributes to store temporary data. A developer can configure an attribute to behave closer to Erlang by calling [`Module.register_attribute/3`](/docs/stable/Module.html#register_attribute/3).
 
-    MyServer.__info__(:data) #=> [my_data: 13]
+Finally, notice that attributes can also be read inside functions:
 
-> Note: Erlang developers may be wondering why Elixir provides its own data abstraction instead of using Erlang attributes. Erlang attributes are basically a list which also allow duplicated entries. For Elixir, since the same data may be read and updated several times during compilation, it makes more sense to have a dictionary structure instead of a list. Erlang developers wishing to have the attributes functionality have two options:
->
-> 1) Manually add Erlang attributes via the `Module.add_attribute(module, attribute, value)` API;
->
-> 2) Register a name as an attribute via the `Module.register_attribute(module, attr)` API; For instance, `@behavior` seen above is registered as Erlang attribute, allowing it to be written to more than once;
+    defmodule MyServer do
+      @my_data 11
+      def first_data, do: @my_data
+      @my_data 13
+      def second_data, do: @my_data
+    end
 
-## 3.6 Module nesting
+    MyServer.first_data #=> 11
+    MyServer.second_data #=> 13
 
-In Elixir, nesting a module inside the other does not affect its name:
+Notice that reading an attribute inside a function takes a snapshot of its current value. In other words, the value is read at compilation time and not at runtime. Check [the documentation for the module `Module` documentation](/docs/stable/Module.html) for other functions to manipulate module attributes.
+
+## 3.7 Nesting
+
+Modules in Elixir can be nested too:
 
     defmodule Foo do
       defmodule Bar do
       end
     end
 
-The example above will define two modules `Foo` and `Bar`. Notice that the second module is **not** called `Foo::Bar`. In general, nesting modules is discouraged in Elixir.
+The example above will define two modules `Foo` and `Foo.Bar`. The second can be accessed as `Bar` inside `Foo` as long as they are in the same scope. If later the developer decides to move `Bar` to another file, it will need to be referenced by its full name (`Foo.Bar`) or an alias needs to be set using the `alias` directive discussed above.
 
-## 3.7 References
+## 3.8 Aliases
 
 In Erlang (and consequently in the Erlang VM), modules and functions are represented by atoms. For instance, this is valid Erlang code:
 
     Mod = lists,
     Mod:flatten([1,[2],3]).
 
-In the example above, we store the atom `lists` in the variable `Mod` and then invoked the function flatten in it. In Elixir, exactly the same idiom is allowed. In fact, we could call the same function `flatten` in `lists` as:
+In the example above, we store the atom `lists` in the variable `Mod` and then invoke the function `flatten` in it. In Elixir, the same idiom is allowed:
 
-    iex> :lists.flatten([1,[2],3])
+    iex> mod = :lists
+    :lists
+    iex> mod.flatten([1,[2],3])
     [1,2,3]
 
-This mechanism is exactly what empowers Elixir references. Elixir references are uppercase identifiers (like `List`, `Orddict`, etc) that are converted to an atom representing a module at compilation time. For instance, by default `List` translates to the atom `::List`:
+In other words, we are simply calling the function `flatten` on the atom `:lists`. This mechanism is exactly what empowers Elixir aliases. An alias in Elixir is a capitalized identifier (like `List`, `Keyword`, etc) which is converted to an atom representing a module during compilation. For instance, the `List` alias translates by default to the atom `Elixir.List`:
 
-    iex> List
-    ::List
     iex> is_atom(List)
     true
-
-References are powerful when used with the `require` directive discussed above. For instance, let's imagine our Math module relies heavily on the `Orddict` module. If, at some point, we find out most algorithms in `Orddict` could be implemented in a much faster way, we could implement `FastOrddict` and use it as a drop-in replacement:
-
-    defmodule Math do
-      require FastOrddict, as: Orddict
-      # ...
-    end
-
-Now any reference to `Orddict` will be automatically replaced by `FastOrddict`. In case one wants to access the original `Orddict`, it can be done by prefixing the module name with `::`:
-
-    Orddict.values   #=> uses ::FastOrddict.values
-    ::Orddict.values #=> uses ::Orddict.values
-
-Finally, in Elixir `::` is simply an operator (like `+`). It is used to concatenate two references:
-
-    iex> Foo::Bar
-    ::Foo::Bar
-    iex> Foo :: Bar
-    ::Foo::Bar
+    iex> to_binary(List)
+    "Elixir.List"
diff --git a/getting_started/4.markdown b/getting_started/4.markdown
index 717a5014c..8e08b5b7e 100644
--- a/getting_started/4.markdown
+++ b/getting_started/4.markdown
@@ -1,74 +1,84 @@
 ---
 layout: getting_started
-title: Elixir - 4. Protocols & Records
-active: 2
+title: 4 Records, Protocols & Exceptions
 guide: 4
+total_guides: 7
 ---
 
-# 4 Records & Protocols
+# {{ page.title }}
 
-Elixir provides both protocols and records. This section will outline the main features on both and provide some examples. More specifically, we will learn how to use `defrecord`, `defprotocol` and `defimpl`.
+Elixir provides both records and protocols. This chapter will outline the main features of both and provide some examples. More specifically, we will learn how to use `defrecord`, `defprotocol` and `defimpl`. At the end, we will briefly talk about exceptions in Elixir.
 
 ## 4.1 Records
 
-Records are simple structures that holds values. For example, we can define a `FileInfo` record that is supposed to store information about files as follow:
+Records are simple structures that hold values. For example, we can define a `FileInfo` record that is supposed to store information about files as follows:
 
-    defrecord FileInfo, atime: nil, mtime: nil, accesses: 0
+    defrecord FileInfo, atime: nil, accesses: 0
 
-The line above will define a module named `FileInfo` which contain a function named `new` that returns a new record and other functions to read and set the values in the record. Therefore, we can do:
+The line above will define a module named `FileInfo` which contains a function named `new` that returns a new record and other functions to read and set the values in the record:
 
-    file_info = FileInfo.new(atime: now())
-    file_info.atime         #=> Returns the value of atime
-    file_info.atime(now())  #=> Updates the value of atime
+    file_info = FileInfo.new(atime: { 2010, 4, 17 })
+    file_info.atime                   #=> Returns the value of atime
 
-Elixir will also define a `update_#{field}` function that accepts a function as argument that will receive the old value and update the current value with the result of the function:
+    file_info = file_info.atime({ 2012, 10, 13 }) #=> Updates the value of atime
+    file_info
+
+Notice that when we change the `atime` field of the record, we re-store the record in the `file_info` variable. This is because as almost everything else in Elixir, records are immutable. So changing the `atime` field does not update the record in place. Instead, it returns a new record with the new value set.
+
+A record is simply a tuple where the first element is the record module name. We can get the record raw representation as follows:
+
+    inspect FileInfo.new, raw: true
+    #=> "{ FileInfo, nil, 0 }"
+
+Besides defining readers and writers for each attribute, Elixir records also define an `update_#{attribute}` function to update values. Such functions expect a function as argument that receives the current value and must return the new one. For example, every time the file is accessed, the accesses counter can be incremented with:
 
     file_info = FileInfo.new(accesses: 10)
     file_info = file_info.update_accesses(fn(x) -> x + 1 end)
     file_info.accesses #=> 11
 
-Internally, a record is simply a tuple where the first element is always the record module name. This can be noticed if we create and print the record in Interactive Elixir (`bin/iex`):
+### 4.1.1 Pattern matching
 
-    iex> defrecord FileInfo, atime: nil, mtime: nil
-    iex> FileInfo.new
-    {::FileInfo, nil, nil}
+Elixir also allows one to pattern match against records. For example, imagine we want to check if a file was accessed or not based on the `FileInfo` record above, we could implement it as follows:
 
-### 4.1.1 Default based functions
+    defmodule FileAccess do
+      def was_accessed?(FileInfo[accesses: 0]), do: true
+      def was_accessed?(FileInfo[]),            do: false
+    end
+
+The first clause will only match if a `FileInfo` record is given and the `accesses` field is equal to zero. The second clause will match any `FileInfo` record and nothing more. We can also like the value of `accesses` to a variable as follows:
 
-Depending on the default value, Elixir will define helpers to interact with the record. For example, the test framework that ships with Elixir, called ExUnit, defines a record which keeps track of how many tests were executed and the failures that happened. The record definition is similar to:
+    def was_accessed?(FileInfo[accesses: accesses]), do: accesses == 0
 
-    iex> defrecord Config, counter: 0, failures: []
+The pattern matching syntax can also be used to create new records:
 
-Since `counter` is an integer, Elixir automatically defines a helper named `increment_counter` that will increase the counter value:
+    file_info = FileInfo[accesses: 0]
 
-    iex> new_config = Config.new.increment_counter
-    {::Config, 1, []}
-    iex> new_config.counter
-    1
+Whenever using the bracket syntax above, Elixir expands the record to a tuple at compilation time. That said, the clause above:
 
-`increment_counter` also accepts a number to increment as argument:
+    def was_accessed?(FileInfo[accesses: 0]), do: true
 
-    iex> new_config = Config.new.increment_counter 10
-    {::Config, 10, []}
-    iex> new_config.counter
-    10
+Is effectively the same as:
 
-On the other hand, if the default value is a list Elixir will define the two following helpers:
+    def was_accessed?({ FileInfo, _, 0 }), do: true
 
-* `prepend_field` - Receives another list and prepend its values
-* `merge_field` - Receives an orddict (which is a list of tuples) and merge it into the current value;
+Using the bracket syntax is a powerful mechanism not only due to pattern matching but also regarding performance, since it provides faster times compared to `FileInfo.new` and `file_info.accesses`. The downside is that we hardcode the record name. For this reason, Elixir allows you to mix and match both styles as you may find fit.
+
+For more information on records, [check out the documentation for the `defrecord` macro](http://elixir-lang.org/docs/master/Kernel.html#defrecord/4)
 
 ## 4.2 Protocols
 
-Protocols allows us to define contracts. Dispatching a protocol is available to any data type as long as it implements the prototype. Let's consider a practical example.
+Protocols is a mechanism to achieve polymorphism in Elixir. Dispatching a protocol is available to any data type as long as it implements the protocol. Let's consider a practical example.
 
 In Elixir, only `false` and `nil` are considered falsy values. Everything else evaluates to true. Depending on the application, it may be important to specify a `blank?` protocol that returns a boolean for other data types that should be considered blank. For instance, an empty list or an empty binary could be considered blanks.
 
-We could implement this protocol as follow:
+We could define this protocol as follows:
 
-    defprotocol Blank, [ blank?(data) ]
+    defprotocol Blank do
+      @doc "Returns true if data is considered blank/empty"
+      def blank?(data)
+    end
 
-The protocol expects a function called `blank?` expecting one argument to be implemented. We can implement this protocol for some Elixir data types as follow:
+The protocol expects a function called `blank?` that receives one argument to be implemented. We can implement this protocol for some Elixir data types in the following way:
 
     # Numbers are never blank
     defimpl Blank, for: Number do
@@ -102,37 +112,185 @@ And we would do so for all native data types. The types available are:
 * Reference
 * Any
 
+Now, with the protocol defined and implementations in hand, we can invoke it:
+
+    Blank.blank?(0)       #=> false
+    Blank.blank?([])      #=> true
+    Blank.blank?([1,2,3]) #=> false
+
+Notice however that passing a data type that does not implement the protocol raises an error:
+
+    Blank.blank?("hello")
+    ** (UndefinedFunctionError) undefined function: Blank.BitString.blank?/1
+
+Implementing the protocol for all 9 types above can be cumbersome. So Elixir gives us some tools to select which protocols we want to implement explicitly.
+
 ### 4.2.1 Selecting implementations
 
-Implementing the protocol for all 9 types above can be cumbersome. Even more if you consider that Number, Function, PID, Port and Reference are never going to be blank. For this reason, Elixir allows us to declare that we are going to implement the protocol just for some types, as follows:
+Implementing the protocol for all types can be a bit of work and in some cases, even unnecessary. Going back to our `Blank` protocol, the types Number, Function, PID, Port and Reference are never going to be blank. To make things easier, Elixir allows us to declare the fact that we are going to implement the protocol just for some types, as follows:
 
-    defprotocol Blank, [blank?(data)], only: [Atom, Tuple, List, BitString, Any]
+    defprotocol Blank do
+      @only [Atom, Record, Tuple, List, BitString, Any]
+      def blank?(data)
+    end
 
-Since we also specified `Any` as a data type, if the data type is not any of Atom, Tuple, List or BitString, it will automatically fallback to Any:
+Since we also specified `Any` as a data type, if the data type is not any of `Atom`, `Record`, `Tuple`, `List` or `BitString`, it will automatically fall back to `Any`:
 
     defimpl Blank, for: Any do
       def blank?(_), do: false
     end
 
-Now all data types that we have not specified will be automatically considered non blank.
+Now all data types that we have not specified will be automatically considered non-blank.
 
 ### 4.2.2 Using protocols with records
 
-The real benefit of protocols comes when mixed with records. For instance, one may implement a custom dictionary as a Red-Black tree and this dictionary should also be considered blank in case it has no items. That said, the developer just needs to implement the protocol for this dictionary:
+The power of Elixir extensibility comes when protocols and records are mixed.
+
+For instance, Elixir provides a `HashDict` implementation that is an efficient data structure to store many keys. Let's take a look at how it works:
 
-    defimpl Blank, for: RedBlack::Dict do
-      def blank?(dict), do: RedBlack.empty?(dict)
+    dict = HashDict.new
+    dict = HashDict.put(dict, :hello, "world")
+    HashDict.get(dict, :hello) #=> "world"
+
+If we inspect our `HashDict`, we can see it is a simple tuple:
+
+    inspect(dict, raw: true)
+    #=> { HashDict, 1, [{:hello,"world"}] }
+
+Since `HashDict` is a data structure that contains values, it would be convenient to implement the `Blank` protocol for it too:
+
+    defimpl Blank, for: HashDict do
+      def blank?(dict), do: HashDict.size(dict) == 0
     end
 
-In the example above, we have implemented `blank?` for the custom dictionary that simply delegates to `RedBlack.empty?`. Finally, since records are simply tuples, the default implementation for records can be given in the tuple implementation.
+And now we can test it:
+
+    dict = HashDict.new(hello: "world")
+    Blank.blank?(dict)         #=> false
+    Blank.blank?(HashDict.new) #=> true
+
+Excellent! The best of all is that we implemented the `Blank` protocol for an existing data structure (`HashDict`) without a need to wrap it or recompile it, which allows developers to easily extend previously defined protocols. Note this only worked because, when we defined the protocol, we have added `Record` to the list of types supported by the protocol:
+
+    @only [Atom, Record, Tuple, List, BitString, Any]
+
+Keep in mind that `Record` needs to come before `Tuple`, since all records are tuples (but not all tuples are records).  For this reason, in case a record does not implement a given protocol, Elixir will fall back to the tuple implementation of that protocol if one exists. So one can add a default protocol implementation for all records by simply defining a default implementation for tuples.
 
 ### 4.2.3 Built-in protocols
 
-Elixir ships with three built-in protocols, they are:
+Elixir ships with some built-in protocols, let's take a look at a couple of those:
+
+* `Access` - specifies how to access an element. This is the protocol that empowers bracket access in Elixir, for example:
+
+        iex> x = [a: 1, b: 2]
+        [{:a, 1}, {:b, 2}]
+        iex> x[:a]
+        1
+        iex> x[:b]
+        2
+
+* `Enumerable` - any data structured that can be enumerated must implement this protocol. This protocol is consumed by the `Enum` module which provides functions like `map`, `reduce` and others:
+
+        iex> Enum.map [1,2,3], fn(x) -> x * 2 end
+        [2,4,6]
+        iex> Enum.reduce 1..3, 0, fn(x, acc) -> x + acc end
+        6
+
+* `Binary.Inspect` - this protocol is used to transform any data structure into a readable textual representation. That's what tools like IEx uses to print results:
+
+        iex> { 1, 2, 3 }
+        {1,2,3}
+        iex> HashDict.new
+        #HashDict<[]>
+
+  Keep in mind that whenever the inspected value starts with `#`, it is representing a data structure in non-valid Elixir syntax. For those, the true representation can be retrieved by calling `inspect` directly and passing `raw` as an option:
+
+        iex> inspect HashDict.new, raw: true
+        "{HashDict,0,[]}"
+
+* `Binary.Chars` - specifies how to convert a data structure with characters to binary. It's exposed via the `to_binary` function:
+
+        iex> to_binary :hello
+        "hello"
+
+  Notice that string interpolation in Elixir calls the `to_binary` function:
+
+        iex> "age: #{25}"
+        "age: 25"
+
+  The example above only works because numbers implement the `Binary.Chars` protocol. Passing a tuple, for example, will lead to an error:
+
+        iex> tuple = { 1, 2, 3 }
+        {1,2,3}
+        iex> "tuple: #{tuple}"
+        ** (Protocol.UndefinedError) protocol Binary.Chars not implemented for {1,2,3}
+
+  When there is a need to "print" a more complex data structure, one can simply use the `inspect` function:
+
+        iex> "tuple: #{inspect tuple}"
+        "tuple: {1,2,3}"
+
+
+Elixir defines other protocols which can be verified in Elixir's documentation. Frameworks and libraries that you use may define a couple of specific protocols as well. Use them wisely to write code that is easy to maintain and extend.
+
+## 4.3 Exceptions
+
+The `try` mechanism in Elixir is also used to handle exceptions. In many languages, exceptions would have its own chapter in a getting started guide but here they play a much lesser role.
+
+An exception can be rescued inside a `try` block with the `rescue` keyword:
+
+    # rescue only runtime error
+    try do
+      raise "some error"
+    rescue
+      RuntimeError -> "rescued"
+    end
+
+    # rescue runtime and argument errors
+    try do
+      raise "some error"
+    rescue
+      [RuntimeError, ArgumentError] -> "rescued"
+    end
+
+    # rescue and assign to x
+    try do
+      raise "some error"
+    rescue
+      x in [RuntimeError] ->
+        # all exceptions have a message
+        x.message
+    end
+
+Notice that `rescue` works with exception names and it doesn't allow guards nor pattern matching. This limitation is on purpose: developers should not use exception values to drive their software. In fact, **exceptions in Elixir should not be used for control-flow but only under exceptional circunstances**.
+
+For example, if you write a software that does log partitioning and log rotation over the network, you may face network issues or an eventual instability when accessing the file system. These scenarios are not exceptional in this particular software and must be handled accordingly. Therefore, a developer can read some file using `File.read`:
+
+    case File.read(file) do
+      { :ok, contents }  ->
+        # we could access the file
+        # proceed as expected
+      { :error, reason } ->
+        # Oops, something went wrong
+        # We need to handle the error accordingly
+    end
+
+Notice `File.read` does not raise an exception in case something goes wrong, it returns a tuple containing `{ :ok, contents }` in case of success and `{ :error, reason }` in case of failures. This allows us to use Elixir's pattern matching constructs to control how our application should behave.
+
+On the other hand, a CLI interface that needs to access or manipulate a file given by the user may necessarily expect a file to be there. If the given file does not exist, there is nothing you can do but fail. Then you may use `File.read!` which raises an exception:
+
+    contents = File.read!(file)
+
+This pattern is common throughout Elixir standard library. Many libraries have both function definitions followed by their "bang!" variation, with exclamation mark. This showcases well Elixir's philosophy of not using exceptions for control-flow. If you feel like you need to rescue an exception in order to change how your code works, you should probably return an atom or tuple instead, allowing your developers to rely on pattern matching.
 
-* Enum::Iterator - specifies an iteration contract for any data structure
-* String::Chars - specifies how to convert a data structure with characters to binary
-* List::Chars - specifies how to convert a data structures with characters to lists
-* String::Inspect - specifies how to convert any data structure to a string for inspection
+Finally, exceptions are simply records and they can be defined with `defexception` which has a similar API to `defrecord`. But remember, in Elixir you will use those sparingly. Next, let's take a look at how Elixir tackles productivity by building some macros using `defmacro` and `defmacrop`!
 
-You can check the source code of those files for more information about how the protocol is used and how to implement your own. With this, we have finally finished this section which has described `defrecord`, `defprotocol` and `defimpl`. Next, we are going to discuss macros with `defmacro`!
\ No newline at end of file
+> Note: In order to ease integration with Erlang APIs, Elixir also supports "catching errors" coming from Erlang with `try/catch`, as it works in Erlang:
+>
+>     try do
+>       :erlang.error(:oops)
+>     catch
+>       :error, :oops ->
+>         "Got Erlang error"
+>     end
+>
+> The first atom can be one of `:error`, `:throw` or `:exit`. Keep in mind catching errors is as discouraged as rescuing exceptions in Elixir.
diff --git a/getting_started/5.markdown b/getting_started/5.markdown
index 4fafd75a0..beb2b28e5 100644
--- a/getting_started/5.markdown
+++ b/getting_started/5.markdown
@@ -1,184 +1,290 @@
 ---
 layout: getting_started
-title: Elixir - 5. Macros
-active: 2
+title: 5 Macros
 guide: 5
+total_guides: 7
 ---
 
-# 5 Macros
+# {{ page.title }}
 
-Elixir is an homoiconic language. Any Elixir program can be represented using its own data structures. This section describes the Elixir language specification for such data structures.
+An Elixir program can be represented by its own data structures. This chapter will describe what those structures look like and how to manipulate them to create your own macros.
 
-## 5.1 Building blocks of homoiconicity
+## 5.1 Building blocks of an Elixir program
 
-The building block of Elixir homoiconicity is a tuple with three elements, for example:
+The building block of Elixir is a tuple with three elements. The function call `sum(1,2,3)` is represented in Elixir as:
 
-    { :sum, 1, [1, 2, 3] }
+{% highlight elixir %}
+{ :sum, [], [1, 2, 3] }
+{% endhighlight %}
 
-The tuple above represents a function call to sum passing 1, 2 and 3 as arguments. The tuple elements are:
-
-    { Tuple | Atom, Integer, List | Atom }
-
-* The first element of the tuple is always an atom or another tuple in the same representation;
-* The second element of the tuple is always an integer representing the line number;
-* The third element of the tuple are the arguments for the function call. The third argument may also be an atom (`nil` or `:quoted`), meaning that the tuple may not represent a function call, but a variable.
-
-You can get the representation of any expression by using the quote macro:
+You can get the representation of any expression by using the `quote` macro:
 
     iex> quote do: sum(1, 2, 3)
-    { :sum, 0, [1, 2, 3] }
+    { :sum, [], [1, 2, 3] }
 
-Everything in Elixir is a function call and can be represented by such tuples. For example, operators are represented as such:
+Operators are also represented as such tuples:
 
     iex> quote do: 1 + 2
-    { :"+", 0, [1, 2] }
+    { :+, [], [1, 2] }
 
 Even a tuple is represented as a call to `{}`:
 
     iex> quote do: { 1, 2, 3 }
-    { :"{}", 0, [1, 2, 3] }
+    { :{}, [], [1, 2, 3] }
+
+Variables are also represented using tuples, except the last element is an atom, instead of a list:
+
+    iex> quote do: x
+    { :x, [], Elixir }
+
+When quoting more complex expressions, we can see the representation is composed of such tuples, which are nested on each other resembling a tree where each tuple is a node:
+
+    iex> quote do: sum(1, 2 + 3, 4)
+    { :sum, [], [1, { :+, [], [2, 3] }, 4] }
+
+In general, each node (tuple) above follows the following format:
+
+{% highlight elixir %}
+{ tuple | atom, list, list | atom }
+{% endhighlight %}
+
+* The first element of the tuple is an atom or another tuple in the same representation;
+* The second element of the tuple is an list of metadata, it may hold information like the node line number;
+* The third element of the tuple is either a list of arguments for the function call or an atom. When an atom, it means the tuple represents a variable.
 
-The only exception to this rule are the five Elixir literals below. Literals are data types that when quoted return themselves. They are:
+Besides the node defined above, there are also five Elixir literals that when quoted return themselves (and not a tuple). They are:
 
-    :sum         #=> Atoms
-    1.0          #=> Numbers
-    [1,2]        #=> Lists
-    "binaries"   #=> Binaries
-    {key, value} #=> Key-value pairs (i.e. a tuple with two elements)
+{% highlight elixir %}
+:sum         #=> Atoms
+1.0          #=> Numbers
+[1,2]        #=> Lists
+"binaries"   #=> Strings
+{key, value} #=> Tuples with two elements
+{% endhighlight %}
 
 With those basic structures in mind, we are ready to define our own macro.
 
 ## 5.2 Defining our own macro
 
-A macro can be define using `defmacro`. For instance, we can define a macro called `unless` which works the same as Ruby's unless in just few lines of code:
+A macro can be defined using `defmacro`. For instance, in just a few lines of code we can define a macro called `unless` which does the opposite of `if`:
 
-    defmodule MyMacro do
-      defmacro unless(clause, options) do
-        quote do: if(!unquote(clause), unquote(options))
-      end
-    end
+{% highlight elixir %}
+defmodule MyMacro do
+  defmacro unless(clause, options) do
+    quote do: if(!unquote(clause), unquote(options))
+  end
+end
+{% endhighlight %}
 
 Similarly to `if`, `unless` expects two arguments: a `clause` and `options`:
 
-    require MyMacro
-    MyMacro.unless var, do: IO.puts "false"
+{% highlight elixir %}
+require MyMacro
+MyMacro.unless var, do: IO.puts "false"
+{% endhighlight %}
 
-However, since `unless` is a macro, it won't receive values when invoked, but instead, its expressions. For example, if one calls:
+However, since `unless` is a macro, its arguments are not evaluated when it's invoked but are instead passed literally. For example, if one calls:
 
-    unless 2 + 2 == 5, do: call_function()
+{% highlight elixir %}
+unless 2 + 2 == 5, do: call_function()
+{% endhighlight %}
 
 Our `unless` macro will receive the following:
 
-    unless({:==, 1, [{:+, 1, [2, 2]}, 5]}, { :call_function, 1, [] })
+{% highlight elixir %}
+unless({:==, [], [{:+, [], [2, 2]}, 5]}, { :call_function, [], [] })
+{% endhighlight %}
 
-Then our `unless` macro will call `quote`, to return a tree representation of the `if` clause. This means we are transforming our `unless` in a `if`!
+Then our `unless` macro will call `quote` to return a tree representation of the `if` clause. This means we are transforming our `unless` into an `if`!
 
 There is a common mistake when quoting expressions which is that developers usually forget to `unquote` the proper expression. In order to understand what `unquote` does, let's simply remove it:
 
-    defmacro unless(clause, options) do
-      quote do: if(!clause, options)
-    end
+{% highlight elixir %}
+defmacro unless(clause, options) do
+  quote do: if(!clause, options)
+end
+{% endhighlight %}
 
 When called as `unless 2 + 2 == 5, do: call_function()`, our `unless` would then literally return:
 
-    if(!clause, options)
+{% highlight elixir %}
+if(!clause, options)
+{% endhighlight %}
 
 Which would fail because the clause and options variables are not defined in the current scope. If we add `unquote` back:
 
-    defmacro unless(clause, options) do
-      quote do: if(!unquote(clause), unquote(options))
-    end
+{% highlight elixir %}
+defmacro unless(clause, options) do
+  quote do: if(!unquote(clause), unquote(options))
+end
+{% endhighlight %}
 
-Which will then return:
+`unless` will then return:
 
-    if(!(2 + 2 == 5), do: call_function())
+{% highlight elixir %}
+if(!(2 + 2 == 5), do: call_function())
+{% endhighlight %}
 
-In other words, unquote is a mechanism to inject expressions into the tree being quoted and is essential to the meta-programming mechanism. Elixir also provides `unquote_splicing` allowing us to inject many expressions at once.
+In other words, `unquote` is a mechanism to inject expressions into the tree being quoted and it is an essential tool for meta-programming. Elixir also provides `unquote_splicing` allowing us to inject many expressions at once.
 
-We can define any macro we want, including override the built-in macros provided by Elixir. The only exceptions are Elixir special forms that cannot be overridden, [the full list of special forms is available in `Elixir::SpecialForms`](https://github.com/josevalim/elixir/tree/master/lib/elixir/special_forms.ex).
+We can define any macro we want, including ones that override the built-in macros provided by Elixir. For instance, you can redefine `case`, `receive`, `+`, etc. The only exceptions are Elixir special forms that cannot be overridden, [the full list of special forms is available in `Kernel.SpecialForms`](/docs/stable/Kernel.SpecialForms.html).
 
 ## 5.3 Macros hygiene
 
-Elixir macros follow Scheme conventions and are hygienic. This means a variable defined inside a macro won't conflict with a variable defined in the context the macro is inserted. For example:
+Elixir macros have late resolution. This guarantees that a variable defined inside a quote won't conflict with a variable defined in the context where that macro is expanded. For example:
 
-    defmodule Hygiene do
-      defmacro no_interference do
-        quote do: a = 1
-      end
-    end
+{% highlight elixir %}
+defmodule Hygiene do
+  defmacro no_interference do
+    quote do: a = 1
+  end
+end
 
+defmodule HygieneTest do
+  def go do
     require Hygiene
-
     a = 13
     Hygiene.no_interference
-    a # => 13
+    a
+  end
+end
 
-In the example above, even if the macro injects `a = 1`, it does not affect the variable `a`. In case the macro wants to explicitly affect the context, it can use `var!`:
+HygieneTest.go
+# => 13
+{% endhighlight %}
 
-    defmodule Hygiene do
-      defmacro interference do
-        quote do: var!(a) = 1
-      end
-    end
+In the example above, even if the macro injects `a = 1`, it does not affect the variable `a` defined by the `go` function. In case the macro wants to explicitly affect the context, it can use `var!`:
 
-    require Hygiene
+{% highlight elixir %}
+defmodule Hygiene do
+  defmacro interference do
+    quote do: var!(a) = 1
+  end
+end
 
+defmodule HygieneTest do
+  def go do
+    require Hygiene
     a = 13
     Hygiene.interference
-    a # => 1
+    a
+  end
+end
 
-Macros hygiene only works because Elixir marks a variable as coming from the quote. For example, consider this:
+HygieneTest.go
+# => 1
+{% endhighlight %}
 
-    iex> quote do: x
-    { :x, 0, :quoted }
+Variables hygiene only works because Elixir annotates variables with their context. For example, a variable `x` defined at the line 3 of a module, would be represented as:
+
+    { :x, [line: 3], nil }
 
-Notice that the third element is `:quoted`. It means that x may be a function call with 0 arguments or a variable coming from a quote. On the other hand, an unquoted variable would have the third element equals to nil. Let's consider this final example:
+However, a quoted variable is represented as:
 
-    defmodule Hygiene do
-      defmacro quoted(x) do
-        quote do
-          { unquote(x), x, x() }
-        end
-      end
+{% highlight elixir %}
+defmodule Sample do
+  def quoted do
+    quote do: x
+  end
+end
+
+Sample.quoted #=> { :x, [line: 3], Sample }
+{% endhighlight %}
+
+Notice that the third element in the quoted variable is the atom `Sample`, instead of `nil`, which marks the variable as coming from the `Sample` module. Therefore, Elixir considers those two variables come from different contexts and handle them accordingly.
+
+Elixir provides similar mechanisms for imports and aliases too. This guarantees macros will behave as specified by its source module rather than conflicting with the target module.
+
+## 5.4 Private macros
+
+Elixir also supports private macros via `defmacrop`. As private functions, these macros are only available inside the module that defines them, and only at compilation time. A common use case for private macros is to define guards that are frequently used in the same module:
+
+{% highlight elixir %}
+defmodule MyMacros do
+  defmacrop is_even?(x) do
+    quote do
+      rem(unquote(x), 2) == 0
     end
+  end
 
-In the example above, we have defined a macro called `quoted` that returns an unquoted variable, a quoted variable and a function call. Calling this macro will return:
+  def add_even(a, b) when is_even?(a) and is_even?(b) do
+    a + b
+  end
+end
+{% endhighlight %}
 
-    require Hygiene
+It is important that the macro is defined before its usage. Failing to define a macro before its invocation will raise an error at runtime, since the macro won't be expanded and will be translated to a function call:
 
-    Hygiene.quoted(x)
-    #=> {
-      { :x, 1, nil },
-      { :x, 1, :quoted },
-      { :x, 1, [] }
-    }
+{% highlight elixir %}
+defmodule MyMacros do
+  def four, do: two + two
+  defmacrop two, do: 2
+end
 
-Summing up: if the third element is a list, it is certainly a function call. If not, it may be a variable (coming from a quote or not) or a function call.
+MyMacros.four #=> ** (UndefinedFunctionError) undefined function: two/0
+{% endhighlight %}
 
-## 5.4 Local functions and macros
+## 5.5 Code execution
 
-In order to support recursion, macros cannot be called locally. For example, one cannot write:
+To finish our discussion about macros, we are going to briefly discuss how code execution works in Elixir. Code execution in Elixir is done in two steps:
 
-    defmodule MyMacros
-      defmacro delegate([h|t], to: target) do
-        # ...
-      end
+1) All the macros in the code are expanded recursively;
 
-      # Call the macro delegate just defined above
-      delegate [values: 1], to: List
-    end
+2) The expanded code is compiled to Erlang bytecode and executed
 
-In order to access the macro, it needs to be defined in an outer module:
+This behavior is important to understand because it affects how we think about our code structure. Consider the following code:
 
-    defmodule MyMacros::Support
-      defmacro delegate([h|t], to: target) do
-        # ...
-      end
-    end
+{% highlight elixir %}
+defmodule Sample do
+  case System.get_env("FULL") do
+    "true" ->
+      def full?(), do: true
+    _ ->
+      def full?(), do: false
+  end
+end
+{% endhighlight %}
 
-    defmodule MyMacros
-      require MyMacros::Support, import: true
-      delegate [values: 1], to: List
-    end
+The code above will define a function `full?` which will return true or false depending on the value of the environment variable `FULL` at **compilation time**. In order to execute this code, Elixir will first expand all macros. Considering that `defmodule` and `def` are macros, the code will expand to something like:
+
+{% highlight elixir %}
+:elixir_module.store Sample, fn ->
+  case System.get_env("FULL") do
+    "true" ->
+      :elixir_def.store(Foo, :def, :full?, [], true)
+    _ ->
+      :elixir_def.store(Foo, :def, :full?, [], false)
+end
+{% endhighlight %}
+
+This code will then be executed, define a module `Foo` and store the appropriate function based on the value of the environment variable `FULL`. We achieve this by using the modules `:elixir_module` and `:elixir_def`, which are Elixir internal modules written in Erlang.
+
+There are two lessons to take away from this example:
+
+1) a macro is always expanded, regardless if it is inside a `case` branch that won't actually match when executed;
+
+2) we cannot invoke a function or macro just after it is defined in a module. For example, consider:
+
+{% highlight elixir %}
+defmodule Sample do
+  def full?, do: true
+  IO.puts full?
+end
+{% endhighlight %}
+
+  The example above will fail because it translates to:
+
+{% highlight elixir %}
+:elixir_module.store Sample, fn ->
+  :elixir_def.store(Foo, :def, :full?, [], true)
+  IO.puts full?
+end
+{% endhighlight %}
+
+At the moment the module is being defined, there isn't **yet** a function named `full?` defined in the module, so `IO.puts full?` will cause the compilation to fail.
+
+## 5.6 Don't write macros
+
+Although macros are a powerful construct, the first rule of the macro club is **don't write macros**. Macros are harder to write than ordinary Elixir functions, and it's considered to be bad style to use them when they're not necessary. Elixir already provides elegant mechanisms to write your every day code and macros should be saved as last resort.
 
-With this note, we finish our introduction to macros. Next, let's move to the next chapter which will discuss several topics as native code compilation, partial application and others.
\ No newline at end of file
+With those lessons, we finish our introduction to macros. Next, let's move to the next chapter which will discuss several topics such as documentation, partial application and others.
diff --git a/getting_started/6.markdown b/getting_started/6.markdown
index 0e12993f2..c07a58a8a 100644
--- a/getting_started/6.markdown
+++ b/getting_started/6.markdown
@@ -1,15 +1,60 @@
 ---
 layout: getting_started
-title: Elixir - 6. Other topics
-active: 2
+title: 6 Other topics
 guide: 6
+total_guides: 7
 ---
 
-# 6 Other topics
+# {{ page.title }}
 
-## 6.1 Documentation
+This chapter contains different small topics that are part of Elixir's day to day work. We will learn about writing documentation, list and binary comprehensions, partial function application and more!
 
-Elixir uses the module data described in chapter 3 to drive its documentation system. For instance, consider the following example:
+## 6.1 String sigils
+
+Elixir provides string sigils via the token `%`:
+
+    %b(Binary with escape codes \x26 interpolation)
+    %B(Binary without escape codes and without #{interpolation})
+
+Sigils starting with an uppercase letter never escape characters or do interpolation. Notice the separators are not necessarily parenthesis, but any non-alphanumeric character:
+
+    %b-another binary-
+
+Internally, `%b` is translated as a function call to `__b__`. For instance, the docs for `%b` are available [in the function `__b__/2` defined in `Kernel` module](/docs/stable/Kernel.html#__b__/2).
+
+The sigils defined in Elixir by default are:
+
+* `%b` and `%B` - Returns a binary;
+* `%c` and `%C` - Returns a char list;
+* `%r` and `%R` - Returns a regular expression;
+
+## 6.2 Heredocs
+
+Elixir supports heredocs as a way to define long strings. Heredocs are delimited by triple double-quotes for binaries or triple single-quotes for char lists:
+
+    """
+    Binary heredoc
+    """
+
+    '''
+    Charlist heredoc
+    '''
+
+The heredoc ending must be in a line on its own, otherwise it is part of the heredoc:
+
+    """
+    Binary heredocs in Elixir use """
+    """
+
+Notice the sigils discussed in the previous section are also available as heredocs:
+
+    %B"""
+    A heredoc without escaping or interpolation
+    """
+
+## 6.3 Documentation
+
+Elixir uses module attributes described in chapter 3 to drive its documentation system. For instance, consider the following example:
 
     defmodule MyModule do
       @moduledoc "It does X"
@@ -18,151 +63,184 @@ Elixir uses the module data described in chapter 3 to drive its documentation sy
       def version, do: 1
     end
 
-In the example above, we are adding a module documentation to MyModule via `@moduledoc` and using `@doc` to document each function. When compiled with the `--docs` option, we will be able to inspect the documentation attributes in runtime (remember to start iex in the same directory you compiled the module):
+In the example above, we are adding a module documentation to `MyModule` via `@moduledoc` and using `@doc` to document each function. When compiled, we are able to inspect the documentation attributes at runtime (remember to start iex in the same directory in which you compiled the module):
 
-    $ elixirc my_module.ex --docs
+    $ elixirc my_module.ex
     $ iex
     iex> MyModule.__info__(:docs)
-    [{ { :version, 0 }, 5, :def, "Returns the version" }]
+    [{ { :version, 0 }, 5, :def, [], "Returns the version" }]
     iex> MyModule.__info__(:moduledoc)
     {1,"It does X"}
 
-`__info__(:docs)` returns a list of tuples where each tuple contains the function/arity pair, the line the function was defined, the kind of the function (`def` or `defmacro`, docs applied to `defp` are always ignored) and the comments. The comment should be either a binary or a boolean.
+`__info__(:docs)` returns a list of tuples where each tuple contains a function/arity pair, the line the function was defined on, the kind of the function (`def` or `defmacro`, private functions cannot be documented), the function arguments and its documentation. The comment will be either a binary or `nil` (not given) or `false` (explicit no doc).
 
-Similarly, `__info__(:moduledoc)` returns a tuple with the line the module was defined and its comments.
+Similarly, `__info__(:moduledoc)` returns a tuple with the line the module was defined on and its documentation.
 
-In case `--docs` is not provided during compilation, both calls would return nil. Elixir promotes the use of markdown in documentation, since it is a widely available format. Consider for example the documentation for `Module.add_doc` which allows us to dynamically add a documentation to a function:
+Elixir promotes the use of markdown with heredocs to write readable documentation:
 
-    @doc """
-    Attaches documentation to a given function. It expects
-    the module the function belongs to, the line (a non negative
-    integer), the kind (`:def` or `:defmacro`), a tuple representing
-    the function and its arity and the documentation, which should
-    be either a binary or a boolean.
+    defmodule Math do
+      @moduledoc """
+      This module provides mathematical functions
+      as sin, cos and constants like pi.
 
-    ## Examples
+      ## Examples
 
-        defmodule MyModule do
-          Module.add_doc(__MODULE__, __LINE__ + 1,
-            :def, { :version, 0}, "Manually added docs")
-          def version, do: 1
-        end
+          Math.pi
+          #=> 3.1415...
 
-    """
-    def add_doc(module, line, kind, tuple, doc)
+      """
+    end
 
-In the example, we use heredocs to allow the documentation to spawn several lines and markdown to style the documentation.
+## 6.4 IEx Helpers
 
-## 6.2 Partial application
+Elixir's interactive console (IEx) ships with many functions to make the developer's life easier. One of these functions is called `h`, which shows documentation directly at the command line:
 
-Elixir also supports partial application. Let's suppose we have a list of strings and we want to calculate the size for each them. We could do it as follow:
+    iex> h()
+    # IEx.Helpers
+    ...
+    :ok
+
+As you can see, invoking `h()` prints the documentation of `IEx.Helpers`. From there, we can navigate to any of the other helpers by giving its name and arity to get more information:
+
+    iex> h(c/2)
+    * def c(files, path // ".")
+    ...
+    :ok
+
+This functionality can also be used to print the documentation for any Elixir module in the system:
+
+    iex> h(Enum)
+    ...
+    iex> h(Enum.each/2)
+    ...
+
+The documentation for built-in functions can also be accessed directly or indirectly from the `Kernel` module:
+
+    iex> h(is_atom/1)
+    ...
+    iex> h(Kernel.is_atom/1)
+    ...
+
+## 6.5 Function retrieval and partial application
+
+Elixir supports a convenient syntax for retrieving functions. Let's suppose we have a list of binaries and we want to calculate the size of each of them. We could do it in the following way:
 
     iex> list = ["foo", "bar", "baz"]
     ["foo","bar","baz"]
     iex> Enum.map list, fn(x) -> size(x) end
     [3,3,3]
 
-However, with partial application, we could also do:
+We could also write this as:
 
     iex> Enum.map list, size(&1)
     [3,3,3]
 
-In the example above, we have invoked the function `size` passing `&1` as argument asking Elixir to generate a function that expects one argument and that argument will be passed to `size`.
+The example above works as if `size(&1)` translates directly to `fn(x) -> size(x) end`. Since operators are also function calls, they can also benefit of the same syntax:
+
+    iex> Enum.reduce [1,2,3], 1, &1 * &2
+    6
+
+In this case, `&1 * &2` translates to `fn(x, y) -> x * y end`. The values `&1` and `&2` map to the argument order in the generated function.
+
+Keep in mind that `&N` binds only to the closest function call. For example, the following syntax is invalid:
+
+    iex> foo(&1, 1 + &2)
+    ** (SyntaxError) iex:1: partial variable &2 cannot be defined without &1
 
-Since operators are also function calls they can also be partially applied:
+This is because we have two functions calls in the example above, `foo` and `+`, and `&1` binds to `foo` while `&2` binds to `+`. Let's add some parenthesis to make it explicit:
+
+    iex> foo(&1, (1 + &2))
+    ** (SyntaxError) iex:1: partial variable &2 cannot be defined without &1
+
+In such cases, you need to use the usual function syntax:
+
+    iex> fn(x, y) -> foo(x, 1 + y) end
+    #Function<erl_eval.12.82930912>
+
+Finally, notice this syntax can also be used to do partial application in Elixir. For instance, if we want to multiply each item in a list per two, we could write it as:
 
     iex> Enum.map [1,2,3], &1 * 2
     [2,4,6]
 
-All functions can be partially applied, except [Elixir's special forms](https://github.com/josevalim/elixir/tree/master/lib/elixir/special_forms.ex).
+All functions and macros can be retrieved and partially applied, except [Elixir's special forms](/docs/stable/Kernel.SpecialForms.html).
 
-## 6.3 Use
+## 6.6 Use
 
-`use` is a macro intended to a common API for extension. For instance, in order to use the `ExUnit` test framework that ships with Elixir, you simply need to use `ExUnit::Case` in your module:
+`use` is a macro that provides a common API for extension. For instance, in order to use the `ExUnit` test framework that ships with Elixir, you simply need to use `ExUnit.Case` in your module:
 
     defmodule AssertionTest do
-      use ExUnit::Case
+      use ExUnit.Case, async: true
 
-      def test_always_pass do
+      test "always pass" do
         true = true
       end
     end
 
-By calling `use`, a hook called `__using__` will be invoked in `ExUnit::Case` which will then do the proper setup. In general, `use` is simply a translation to:
+This allows `ExUnit.Case` to configure and set up the module for testing, for example, by making the `test` macro used above available.
+
+The implementation of the `use` macro is actually quite trivial. When you invoke `use` with a module, it invokes a hook called `__using__` in this module. For example, the `use` call above is simply a translation to:
 
     defmodule AssertionTest do
-      require ExUnit::Case
-      ExUnit::Case.__using__(::AssertionTest)
+      require ExUnit.Case
+      ExUnit.Case.__using__(async: true)
 
-      def test_always_pass do
+      test "always pass" do
         true = true
       end
     end
 
-In general, we recommend APIs to expose a `__using__` hook in case they want to expose functionality to developers.
+In general, we recommend APIs to provide a `__using__` hook in case they want to expose functionality to developers.
 
-## 6.4 Comprehensions
+## 6.7 Comprehensions
 
 Elixir also provides list and bit comprehensions. List comprehensions allow you to quickly build a list from another list:
 
-    iex> lc n in [1,2,3,4], do: n * 2
+    iex> lc n inlist [1,2,3,4], do: n * 2
     [2,4,6,8]
 
-Or, using key-value blocks:
+Or, using keywords blocks:
 
-    lc n in [1,2,3,4] do
+    lc n inlist [1,2,3,4] do
       n * 2
     end
 
-A comprehension accepts several expressions. Those expressions can be generators, as in `x in [1,2,3,4]`, or filters:
+A comprehension accepts many generators (given by `inlist` or `inbits` operators) as well as filters:
 
     # A comprehension with a generator and a filter
-    iex> lc n in [1,2,3,4,5,6], rem(n, 2) == 0, do: n
+    iex> lc n inlist [1,2,3,4,5,6], rem(n, 2) == 0, do: n
     [2,4,6]
 
     # A comprehension with two generators
-    iex> lc x in [1,2], y in [2,3], do: x*y
+    iex> lc x inlist [1,2], y inlist [2,3], do: x*y
     [2,3,4,6]
 
 Elixir provides generators for both lists and bitstrings:
 
     # A list generator:
-    iex> lc n in [1,2,3,4], do: n * 2
+    iex> lc n inlist [1,2,3,4], do: n * 2
     [2,4,6,8]
 
     # A bit string generator:
-    iex> lc <<n>> in <<1,2,3,4>>, do: n * 2
+    iex> lc <<n>> inbits <<1,2,3,4>>, do: n * 2
     [2,4,6,8]
 
-Bit string generators are quite useful when you need to organize bit string streams:
+Bit string generators are quite useful when you need to organize streams:
 
     iex> pixels = <<213,45,132,64,76,32,76,0,0,234,32,15>>
-    iex> lc <<r:8,g:8,b:8>> in pixels, do: {r,g,b}
+    iex> lc <<r :: size(8), g :: size(8), b :: size(8)>> inbits pixels, do: {r,g,b}
     [{213,45,132},{64,76,32},{76,0,0},{234,32,15}]
 
-Remember, as strings are binaries and a binary is a bitstring, we can also use strings on comprehensions. For instance, the example below removes all white space characters from a string via bit comprehensions:
+Remember, as strings are binaries and a binary is a bitstring, we can also use strings in comprehensions. For instance, the example below removes all white space characters from a string via bit comprehensions:
 
-    iex> bc <<c>> in " hello world ", c != ?\s, do: <<c>>
+    iex> bc <<c>> inbits " hello world ", c != ?\s, do: <<c>>
     "helloworld"
 
-Elixir does its best to hide the differences between list and bit string generators. However, there is a special case due to Erlang limitation that we need to explicitly tell Erlang that a list is being given as argument:
-
-    # This will fail because when Elixir sees that the left side
-    # of the in expression is a bit string, it expects the right side
-    # to be a bit string as well:
-    iex> lc <<n>> in [<<1>>,<<2>>,<<3>>], do: n*2
-    ** (ErlangError) erlang error {:bad_generator,[<<1>>,<<2>>,<<3>>]}
-
-    # You need to be explicit and use inlist:
-    iex> lc inlist(<<n>>, [<<1>>,<<2>>,<<3>>]), do: n*2
-    [2,4,6]
-
-    # For consistency, inbin is also available:
-    iex> lc inbin(<<n>>, <<1,2,3>>), do: n*2
-    [2,4,6]
-
-## 6.5 Native compilation
+## 6.8 Pseudo variables
 
-Elixir can compile to native code using the Hipe compiler. All you need to do is to export the following before running your code:
+Elixir provides a set of pseudo-variables. These variables can only be read and never assigned to. They are:
 
-    export ERL_COMPILER_OPTIONS=native
+* `__MODULE__` - Returns an atom representing the current module or nil;
+* `__FILE__` - Returns a string representing the current file;
+* `__DIR__` - Returns a string representing the current directory;
+* `__ENV__` - Returns a [Macro.Env](/docs/stable/Macro.Env.html) record with information about the compilation environment. Here we can access the current module, function, line, file and others;
+* `__CALLER__` - Also returns a [Macro.Env](/docs/stable/Macro.Env.html) record but with information of the calling site. `__CALLER__` is available only inside macros;
diff --git a/getting_started/7.markdown b/getting_started/7.markdown
new file mode 100644
index 000000000..26240b8d2
--- /dev/null
+++ b/getting_started/7.markdown
@@ -0,0 +1,51 @@
+---
+layout: getting_started
+title: 7 Where To Go Next
+guide: 7
+total_guides: 7
+---
+
+# {{ page.title }}
+
+## 7.1 Applications
+
+In order to get your first project started, Elixir ships with a build tool called [`Mix`](/getting_started/mix/1.html). You can get your new project started by simply running:
+
+    mix new path/to/new/project
+
+You can learn more about Elixir and other applications in the links below:
+
+* [Mix - a build tool for Elixir](/getting_started/mix/1.html)
+* [ExUnit - a unit test framework](/getting_started/ex_unit/1.html)
+
+## 7.2 A Byte of Erlang
+
+As the main page of this site puts it:
+
+> Elixir is a programming language built on top of the Erlang VM.
+
+Sooner than later, an Elixir developer will want to interface with existing Erlang libraries. Here's a list of online resources that cover Erlang's fundamentals and its more advanced features:
+
+* This [Erlang Syntax: A Crash Course][1] provides a concise intro to Erlang's syntax. Each code snippet is accompanied by equivalent code in Elixir. This is an opportunity for you to not only get some exposure to the Erlang's syntax but also review some of the things you have learned in the present guide.
+
+* Erlang's official website has a short [tutorial][2] with pictures that briefly describe Erlang's primitives for concurrent programming.
+
+* [Learn You Some Erlang for Great Good!][4] is an excellent introduction to Erlang, its design principles, standard library, best practices and much more. If you are serious about Elixir, you'll want to get a solid understanding of Erlang principles. Once you have read through the crash course mentioned above, you'll be able to safely skip the first couple of chapters in the book that mostly deal with the syntax. When you reach [The Hitchhiker's Guide to Concurrency][5] chapter, that's where the real fun starts.
+
+## 7.3 Reference Manual
+
+[You can also check the source code of Elixir itself][3], which is mainly written in Elixir (mainly the `lib` directory), or [explore Elixir's documentation][7].
+
+## 7.4 Join The Community
+
+Remember that in case of any difficulties, you can always visit the **#elixir-lang** channel on **irc.freenode.net** or send a message to the [mailing list][6]. You can be sure that there will be someone willing to help. And to keep posted on the latest news and announcements, follow the [blog][9] and join [elixir-core mailing list][8].
+
+  [1]: http://elixir-lang.org/crash-course.html
+  [2]: http://www.erlang.org/course/concurrent_programming.html
+  [3]: https://github.com/elixir-lang/elixir
+  [4]: http://learnyousomeerlang.com/
+  [5]: http://learnyousomeerlang.com/the-hitchhikers-guide-to-concurrency
+  [6]: http://groups.google.com/group/elixir-lang-talk
+  [7]: http://elixir-lang.org/docs/
+  [8]: http://groups.google.com/group/elixir-lang-core
+  [9]: http://elixir-lang.org/blog/
diff --git a/getting_started/ex_unit/1.markdown b/getting_started/ex_unit/1.markdown
new file mode 100644
index 000000000..ecb815cc6
--- /dev/null
+++ b/getting_started/ex_unit/1.markdown
@@ -0,0 +1,157 @@
+---
+layout: getting_started
+title: 1 Introduction to ExUnit
+guide: 1
+total_guides: 1
+---
+
+# {{ page.title }}
+
+ExUnit is a unit test framework that ships with Elixir.
+
+Using ExUnit is quite easy, here is a file with the minimum required:
+
+{% highlight elixir %}
+ExUnit.start
+
+defmodule MyTest do
+  use ExUnit.Case
+
+  test "the truth" do
+    assert true
+  end
+end
+{% endhighlight %}
+
+In general, we just need to invoke `ExUnit.start`, define a test case using `ExUnit.Case` and our batch of tests. Assuming we saved this file as `assertion_test.exs`, we can run it directly:
+
+    bin/elixir assertion_test.exs
+
+In this chapter, we will discuss the most common features available in ExUnit and how to customize it further.
+
+## 1.1 Starting ExUnit
+
+ExUnit is usually started via `ExUnit.start`. This function accepts a couple options, so [check its documentation](/docs/stable/ExUnit.html) for more details. For now, we will just detail the most common ones:
+
+* `:formatter` - When you run tests with ExUnit, all the IO is done by [the formatter](https://github.com/elixir-lang/elixir/blob/master/lib/ex_unit/lib/ex_unit/formatter.ex). Developers can define their own formatters and this is the configuration that tells ExUnit to use a custom formatter;
+
+* `:max_cases` - As we are going to see soon, ExUnit allows you to easily run tests concurrently. This is very useful to speed up your tests that have no side affects. This option allows us to configure the maximum number of cases ExUnit runs concurrently.
+
+## 1.2 Defining a test case
+
+After ExUnit is started, we can define our own test cases. This is done by using `ExUnit.Case` in our module:
+
+{% highlight elixir %}
+use ExUnit.Case
+{% endhighlight %}
+
+`ExUnit.Case` provides some features, so let's take a look at them.
+
+### 1.2.1 The test macro
+
+`ExUnit.Case` runs all functions whose name start with `test` and expects one argument:
+
+{% highlight elixir %}
+def test_the_truth(_) do
+  assert true
+end
+{% endhighlight %}
+
+As a convenience to define such functions, `ExUnit.Case` provides a `test` macro, which allows one to write:
+
+{% highlight elixir %}
+test "the truth" do
+  assert true
+end
+{% endhighlight %}
+
+This construct is considered more readable. The `test` macro accepts either a binary or an atom as name.
+
+### 1.2.2 Assertions
+
+Another convenience provided by `ExUnit.Case` is to automatically import a set of assertion macros and functions, available in [`ExUnit.Assertions`](/docs/stable/ExUnit.Assertions.html).
+
+In the majority of tests, the only assertion macros you will need to use are `assert` and `refute`:
+
+{% highlight elixir %}
+assert 1 + 1 == 2
+refute 1 + 3 == 3
+{% endhighlight %}
+
+ExUnit automatically breaks those expressions apart and attempt to provide detailed information in case the assertion fails. For example, the failing assertion:
+
+{% highlight elixir %}
+assert 1 + 1 == 3
+{% endhighlight %}
+
+Will fail as:
+
+    Expected 2 to be equal to (==) 3
+
+However, some extra assertions are convenient to make testing easier for some specific cases. A good example is the `assert_raise` macro:
+
+{% highlight elixir %}
+assert_raise ArithmeticError, "bad argument in arithmetic expression", fn ->
+  1 + "test"
+end
+{% endhighlight %}
+
+So don't forget to check [`ExUnit.Assertions`' documentation](/docs/stable/ExUnit.Assertions.html) for more examples.
+
+### 1.2.3 Callbacks
+
+`ExUnit.Case` defines four callbacks: `setup`, `teardown`, `setup_all` and `teardown_all`:
+
+{% highlight elixir %}
+defmodule CallbacksTest do
+  use ExUnit.Case, async: true
+
+  setup do
+    IO.puts "This is a setup callback"
+    :ok
+  end
+
+  test "the truth" do
+    assert true
+  end
+end
+{% endhighlight %}
+
+In the example above, the `setup` callback will be run before each test. In case a `setup_all` callback is defined, it would run once before all tests in that module.
+
+A callback **must** return `:ok` or `{ :ok, data }`. When the latter is returned, the `data` argument must be a keywords list containing metadata about the test. This metadata can be accessed in any other callback or in the test itself:
+
+{% highlight elixir %}
+defmodule CallbacksTest do
+  use ExUnit.Case, async: true
+
+  setup do
+    IO.puts "This is a setup callback"
+    { :ok, from_setup: :hello }
+  end
+
+  test "the truth", meta do
+    assert meta[:from_setup] == :hello
+  end
+
+  teardown meta do
+    assert meta[:from_setup] == :hello
+  end
+end
+{% endhighlight %}
+
+Metadata is used when state need to be explicitly passed to tests.
+
+### 1.2.4 Async
+
+Finally, ExUnit also allows test cases to run concurrently. All you need to do is pass the `:async` option set to true:
+
+{% highlight elixir %}
+use ExUnit.Case, async: true
+{% endhighlight %}
+
+This will run this test case concurrently with other test cases which are async too. The tests inside a particular case are still run sequentially.
+
+## 2 Lots To Do
+
+ExUnit is still a work in progress. Feel free to visit [our issues tracker](https://github.com/elixir-lang/elixir/issues) to add issues for anything you'd like to see in ExUnit and feel free to contribute.
diff --git a/getting_started/mix/1.markdown b/getting_started/mix/1.markdown
new file mode 100644
index 000000000..5818672e6
--- /dev/null
+++ b/getting_started/mix/1.markdown
@@ -0,0 +1,250 @@
+---
+layout: getting_started
+title: 1 Introduction to Mix
+guide: 1
+total_guides: 3
+---
+
+# {{ page.title }}
+
+Elixir ships with a few applications to make building and deploying projects with Elixir easier and Mix is certainly their backbone.
+
+Mix is a build tool that provides tasks for creating, compiling, testing (and soon deploying) Elixir projects. Mix is inspired by the [Leiningen](https://github.com/technomancy/leiningen) build tool for Clojure and was written by one of its contributors.
+
+In this chapter, you will learn how to create projects using `mix` and install dependencies. In the following sections, we will also learn how to create OTP applications and create custom tasks with Mix.
+
+## 1.1 Bootstrapping
+
+In order to start your first project, simply use the `mix new` command passing the path to your project. For now, we will create an project called `my_project` in the current directory:
+
+    $ mix new my_project
+
+Mix will create a directory named `my_project` with few files in it:
+
+    .gitignore
+    README.md
+    mix.exs
+    lib/my_project.ex
+    test/test_helper.exs
+    test/my_project_test.exs
+
+Let's take a brief look at some of these.
+
+> Note: Mix is an Elixir executable. This means that in order to run `mix`, you need to have elixir's executable in your PATH. If not, you can run it by passing the script as argument to elixir:
+>
+>     $ bin/elixir bin/mix new ./my_project
+>
+> Note that you can also execute any script in your PATH from Elixir via the -S option:
+>
+>     $ bin/elixir -S mix new ./my_project
+>
+> When using -S, elixir finds the script wherever it is in your PATH and executes it.
+
+### 1.1.1 mix.exs
+
+This is the file with your projects configuration. It looks like this:
+
+{% highlight elixir %}
+defmodule MyProject.Mixfile do
+  use Mix.Project
+
+  def project do
+    [ app: :my_project,
+      version: "0.0.1",
+      deps: deps ]
+  end
+
+  # Configuration for the OTP application
+  def application do
+    []
+  end
+
+  # Returns the list of dependencies in the format:
+  # { :foobar, "0.1", git: "https://github.com/elixir-lang/foobar.git" }
+  defp deps do
+    []
+  end
+end
+{% endhighlight %}
+
+Our `mix.exs` is quite straight-forward. It defines two functions: `project`, which returns project configuration like the project name and version, and `application`, which is used to generate an Erlang application that is managed by the Erlang Runtime. In this chapter, we will talk about the `project` function. We will go into detail about what goes in the `application` function in the next chapter.
+
+### 1.1.2 lib/my_project.ex
+
+This file contains a simple module definition to lay out our code:
+
+{% highlight elixir %}
+defmodule MyProject do
+end
+{% endhighlight %}
+
+### 1.1.3 test/my_project_test.exs
+
+This file contains a stub test case for our project:
+
+{% highlight elixir %}
+Code.require_file "test_helper.exs", __DIR__
+
+defmodule MyProjectTest do
+  use ExUnit.Case
+
+  test "the truth" do
+    assert true
+  end
+end
+{% endhighlight %}
+
+It is important to note a couple things:
+
+1) Notice the file is an Elixir script file (`.exs`). This is convenient because we don't need to compile test files before running them;
+
+2) The first line in our test is simply requiring the `test_helper` file in the same directory as the current file. As we are going to see, the `test/test_helper.exs` file is responsible for starting the test framework;
+
+3) We define a test module named `MyProjectTest`, using `ExUnit.Case` to inject default behavior and define a simple test. You can learn more about the test framework in the [ExUnit](/getting_started/ex_unit/1.html) chapter;
+
+### 1.1.4 test/test_helper.exs
+
+The last file we are going to check is the `test_helper.exs`, which simply sets up the test framework:
+
+{% highlight elixir %}
+ExUnit.start
+{% endhighlight %}
+
+And that is it, our project is created. We are ready to move on!
+
+## 1.2 Exploring
+
+Now that we created our new project, what can we do with it? In order to check the commands available to us, just run the `help` task:
+
+    $ mix help
+
+It will print all the available tasks. You can get further information by invoking `mix help TASK`.
+
+Play around with the available tasks, like `mix compile` and `mix test`, and execute them in your project to check how they work.
+
+## 1.3 Compilation
+
+Mix can compile our project for us. The default configurations uses `lib/` for source files and `ebin/` for compiled beam files. You don't even have to provide any compilation-specific setup but if you must, some options are available. For instance, if you want to put your compiled files in another directory besides `ebin`, simply set in `:compile_path` in your `mix.exs` file:
+
+{% highlight elixir %}
+def project do
+  [compile_path: "ebin"]
+end
+{% endhighlight %}
+
+In general, Mix tries to be smart and compiles only when necessary.
+
+Note that after you compile for the first time, Mix generates a `my_project.app` file inside your `ebin` directory. This file defines an Erlang application based on the contents of the `application` function in your Mix project.
+
+The `.app` file holds information about the application, what are its dependencies, which modules it defines and so forth. The application is automatically started by Mix every time you run some commands and we will learn how to configure it in the next chapter.
+
+## 1.4 Dependencies
+
+Mix is also able to manage dependencies. Dependencies should be listed in the project settings, as follows:
+
+{% highlight elixir %}
+def project do
+  [ app: :my_project,
+    version: "0.0.1",
+    deps: deps ]
+end
+
+defp deps do
+  [ { :some_project, "0.3.0", github: "some_project/other" },
+    { :another_project, "1.0.2", git: "https://example.com/another/repo.git" } ]
+end
+{% endhighlight %}
+
+**Note:** Although not required, it is common to split dependencies into their own function.
+
+### 1.4.1 Source Code Management (SCM)
+
+In the example above, we have used `git` to specify our dependencies. Mix is designed in a way it can support multiple SCM tools, shipping with `:git` and `:path` support by default. The most common options are:
+
+* `:git` - the dependency is a git repository that is retrieved and updated by Mix;
+* `:path` - the dependency is simply a path in the filesystem;
+* `:compile` - how to compile the dependency;
+* `:app` - the path of the application expected to be defined by the dependency;
+
+Each SCM may support custom options. `:git`, for example, supports the following:
+
+* `:ref` - an optional reference (a commit) to checkout the git repository;
+* `:tag` - an optional tag to checkout the git repository;
+* `:branch` - an optional branch to checkout the git repository;
+* `:submodules` - when true, initializes submodules recursively in the dependency;
+
+### 1.4.2 Compiling dependencies
+
+In order to compile a dependency, Mix looks into the repository for the best way to proceed. If the dependency contains one of the files below, it will proceed as follows:
+
+1. `mix.exs` - compiles the dependency directly with Mix by invoking the `compile` task;
+2. `rebar.config` or `rebar.config.script` - compiles using `rebar compile deps_dir=DEPS`, where `DEPS` is the directory where Mix will install the project dependencies by default;
+3. `Makefile` - simply invokes `make`;
+
+If the dependency does not contain any of the above, you can specify a command directly with the `:compile` option:
+
+{% highlight elixir %}
+    compile: "./configure && make"
+{% endhighlight %}
+
+If `:compile` is set to false, nothing is done.
+
+### 1.4.3 Repeatability
+
+An important feature in any dependency management tool is repeatability. For this reason when you first get your dependencies, Mix will create a file called `mix.lock` that contains checked out references for each dependency.
+
+When another developer gets a copy of the same project, Mix will checkout exactly the same references, ensuring other developers can "repeat" the same setup.
+
+Locks are automatically updated when `deps.update` is called and can be removed with `deps.unlock`.
+
+### 1.4.4 Dependencies tasks
+
+Elixir has many tasks to manage the project dependencies:
+
+* `mix deps` - List all dependencies and their status;
+* `mix deps.get` - Get all unavailable dependencies;
+* `mix deps.compile` - Compile dependencies;
+* `mix deps.update` - Update dependencies;
+* `mix deps.clean` - Remove dependencies files;
+* `mix deps.unlock` - Unlock the given dependencies;
+
+Use `mix help` to get more information.
+
+### 1.4.5 Dependencies of dependencies
+
+If your dependency is another Mix project, Mix does the right thing: it will automatically fetch and handle all dependencies of your dependencies. However, if your project depends on code with other build systems, such as rebar, then the dependencies of your dependencies are not automatically known to Mix. 
+
+To resolve this, put these dependencies in your projects Mix file, in the order of dependence.
+
+For example, if you have a project that uses a database called `:catdb`, that is built with rebar, which depends on `:cdb_storage_engine` and that depends on `:cdb_diskio`, then your mix file should look something like this:
+
+{% highlight elixir %}
+defp deps do
+  [ {:cdb_diskio, github: "catdb/cdb_diskio"},
+    {:cdb_storage_engine, github: "catdb/cdb_storage_engine"},
+    {:catdb, github: "catdb/catdb"} ]
+end
+{% endhighlight %}
+
+## 1.5 Environments
+
+Mix has the concept of environments that allows a developer to customize compilation and other options based on an external setting. By default, Mix understands three environments:
+
+* `dev` - the one in which mix tasks are run by default;
+* `test` - used by `mix test`;
+* `prod` - the environment in which dependencies are loaded and compiled;
+
+By default, these environments behave the same and all configuration we have seen so far will affect all three environments. Customization per environment can be done using the `env:` option:
+
+{% highlight elixir %}
+def project do
+  [ env: [
+    prod: [compile_path: "prod_ebin"] ] ]
+end
+{% endhighlight %}
+
+Mix will default to the `dev` environment (except for tests). The environment can be changed via the `MIX_ENV` environment variable:
+
+    $ MIX_ENV=prod mix compile
+
+In the next chapters, we will learn more about building OTP applications with Mix and how to create your own tasks.
diff --git a/getting_started/mix/2.markdown b/getting_started/mix/2.markdown
new file mode 100644
index 000000000..fbde70a83
--- /dev/null
+++ b/getting_started/mix/2.markdown
@@ -0,0 +1,271 @@
+---
+layout: getting_started
+title: 2 Building OTP apps with Mix
+guide: 2
+total_guides: 3
+---
+
+# {{ page.title }}
+
+In the previous chapter, we have generated a project with Mix and explored a bit how Mix works. In this chapter, we will learn how to build an OTP application. In practice, we don't need Mix in order to build such applications, however Mix provides some conveniences that we are going to explore throughout this chapter.
+
+## 2.1 The Stacker server
+
+Our application is going to be a simple stack that allow us push and pop items as we wish. Let's call it stacker:
+
+    $ mix new stacker
+
+Our application is going to have one stack which may be accessed by many processes at the same time. To achieve that, we will create a server that is responsible to manage the stack. Clients will send messages to the server whenever they want to push or pop something from the stack.
+
+Since creating such servers is a common pattern when building Erlang and Elixir applications, we have a behavior in OTP that encapsulates common server functionalities called **GenServer**. Let's create a file named `lib/stacker/server.ex` with our first server:
+
+{% highlight elixir %}
+defmodule Stacker.Server do
+  use GenServer.Behaviour
+
+  def init(stack) do
+    { :ok, stack }
+  end
+
+  def handle_call(:pop, _from, [h|stack]) do
+    { :reply, h, stack }
+  end
+
+  def handle_cast({ :push, new }, stack) do
+    { :noreply, [new|stack] }
+  end
+end
+{% endhighlight %}
+
+Our server defines three callbacks: `init/1`, `handle_call/3` and `handle_cast/2`. We never call those functions directly, they are called by OTP whenever we interact with the server. We will go into details about these soon, let's just ensure it works as expected. To do so, run `iex -S mix` on your command line to start iex with mix and type the following:
+
+    # Let's start the server using Erlang's :gen_server module.
+    # It expects 3 arguments: the server module, the initial
+    # stack and some options (if desired):
+    iex> { :ok, pid } = :gen_server.start_link(Stacker.Server, [], [])
+    {:ok,<...>}
+
+    # Now let's push something onto the stack
+    iex> :gen_server.cast(pid, { :push, 13 })
+    :ok
+
+    # Now let's get it out from the stack
+    # Notice we are using *call* instead of *cast*
+    iex> :gen_server.call(pid, :pop)
+    13
+
+Excellent, our server works as expected! There are many things happening behind the scenes, so let's discuss them one by one.
+
+First, we started the server using [the `:gen_server` module from OTP](http://www.erlang.org/doc/man/gen_server.html). Notice we have used `start_link`, which starts the server and links our current process to the server. In this scenario, if the server dies, it will send an exit message to our process, making it crash too. We will see this in action later. The `start_link` function returns the process identifier (`pid`) of the newly spawned server.
+
+Later, we have sent a **cast** message to the `pid`. The message was `{ :push, 13 }`, written in the same format as we specified in the `handle_cast/2` callback in `Stacker.Server`. Whenever we send a `cast` message, the `handle_cast/2` callback will be invoked to handle the message.
+
+Then we finally read what was on the stack by sending a **call** message, which will dispatch to the `handle_call/3` callback. So, what is the difference between **cast** and **call** after all?
+
+`cast` messages are asynchronous: we simply send a message to the server and don't expect a reply back. That's why our `handle_cast/2` callback returns `{ :noreply, [new|stack] }`. The first item of the tuple states nothing should be replied and the second contains our updated stack with the new item.
+
+On the other hand, `call` messages are synchronous. When we send a `call` message, the client expects a response back. In this case, the `handle_call/3` callback returns `{ :reply, h, stack }`, where the second item is the term to be returned and the third is our new stack without its head. Since `call`s are able to send messages back to the client, it also receives the client information as argument (`_from`).
+
+### 2.1.1 Learning more about callbacks
+
+In the GenServer's case, there are 8 different values a callback such as `handle_call` or `handle_cast` can return:
+
+    { :reply, reply, new_state }
+    { :reply, reply, new_state, timeout }
+    { :reply, reply, new_state, :hibernate }
+    { :noreply, new_state }
+    { :noreply, new_state, timeout }
+    { :noreply, new_state, :hibernate }
+    { :stop, reason, new_state }
+    { :stop, reason, reply, new_state }
+
+There are 6 callbacks required to be implemented in a GenServer. The `GenServer.Behaviour` module defines all of them automatically but allows us to customize the ones we need. The list of callbacks are:
+
+* `init(args)` - invoked when the server is started;
+* `handle_call(msg, from, state)` - invoked to handle call messages;
+* `handle_cast(msg, state)` - invoked to handle cast messages;
+* `handle_info(msg, state)` - handle all other messages which are normally received by processes;
+* `terminate(reason, state)` - called when the server is about to terminate, useful for cleaning up;
+* `code_change(old_vsn, state, extra)` - called when the application code is being upgraded live (hot code swap);
+
+### 2.1.2 Crashing a server
+
+Of what use is a server if we cannot crash it?
+
+It is actually quite easy to crash our server. Our `handle_call/3` callback only works if there is something on the stack (remember `[h|t]` won't match an empty list). So let's simply send a message when the stack is empty:
+
+    # Start another server, but with an initial :hello item
+    iex> { :ok, pid } = :gen_server.start_link(Stacker.Server, [:hello], [])
+    {:ok,<...>}
+
+    # Let's get our initial item:
+    iex> :gen_server.call(pid, :pop)
+    :hello
+
+    # And now let's call pop again
+    iex> :gen_server.call(pid, :pop)
+
+    =ERROR REPORT==== 6-Dec-2012::19:15:33 ===
+    ...
+    ** (exit) {{:function_clause,...}}
+    ...
+
+You can see there are two error reports. The first one is generated by server, due to the crash. Since the server is linked to our process, it also sent an exit message which was printed by `IEx` as `** (exit) ...`.
+
+Since our servers may eventually crash, it is common to supervise them, and that's what we are going to next. There is a bit more to `GenServer` than what we have seen here. For more information, check [`GenServer.Behaviour`'s documentation](http://elixir-lang.org/docs/stable/GenServer.Behaviour.html).
+
+## 2.2 Supervising our servers
+
+When building applications in Erlang/Elixir, a common philosophy is to "let it crash". Resources are going to become unavailable, timeout in between services are going to happen and other possible failures exist. That's why it is important to recover and react to such failures. With this in mind, we are going to write a supervisor for our server.
+
+Create a file at `lib/stacker/supervisor.ex` with the following:
+
+{% highlight elixir %}
+defmodule Stacker.Supervisor do
+  use Supervisor.Behaviour
+
+  # A convenience to start the supervisor
+  def start_link(stack) do
+    :supervisor.start_link(__MODULE__, stack)
+  end
+
+  # The callback invoked when the supervisor starts
+  def init(stack) do
+    children = [ worker(Stacker.Server, [stack]) ]
+    supervise children, strategy: :one_for_one
+  end
+end
+{% endhighlight %}
+
+In case of supervisors, the only callback that needs to be implemented is `init(args)`. This callback needs to return a supervisor specification, in this case returned by the helper function `supervise/2`.
+
+Our supervisor is very simple: it has to supervise one worker, in this case, `Stacker.Server` and the worker will be started by receiving one argument, which is the default stack. The defined worker is then going to be supervised using the `:one_for_one` strategy, which restarts each worker after it dies.
+
+Given that our worker is specified by the `Stacker.Server` module passing the `stack` as argument, the supervisor will by default invoke the `Stacker.Server.start_link(stack)` function to start the worker, so let's implement it:
+
+{% highlight elixir %}
+defmodule Stacker.Server do
+  use GenServer.Behaviour
+
+  def start_link(stack) do
+    :gen_server.start_link({ :local, :stacker }, __MODULE__, stack, [])
+  end
+
+  def init(stack) do
+    { :ok, stack }
+  end
+
+  def handle_call(:pop, _from, [h|stack]) do
+    { :reply, h, stack }
+  end
+
+  def handle_cast({ :push, new }, stack) do
+    { :noreply, [new|stack] }
+  end
+end
+{% endhighlight %}
+
+The `start_link` function is quite similar to how we were starting our server previously, except that now we passed one extra argument: `{ :local, :stacker }`. This argument registers the server on our local nodes, allowing it to be invoked by the given name (in this case, `:stacker`), instead of directly using the `pid`.
+
+With our supervisor in hand, let's start the console by running `iex -S mix` once again, which will recompile our files too:
+
+    # Now we will start the supervisor with a
+    # default stack containing :hello
+    iex> Stacker.Supervisor.start_link([:hello])
+    {:ok,<...>}
+
+    # And we will access the server by name since
+    # we registered it
+    iex> :gen_server.call(:stacker, :pop)
+    :hello
+
+Notice the supervisor started the server for us and we were able to send messages to it via the name `:stacker`. What happens if we crash our server again?
+
+    iex> :gen_server.call(:stacker, :pop)
+
+    =ERROR REPORT==== 6-Dec-2012::19:15:33 ===
+    ...
+    ** (exit) {{:function_clause,...}}
+    ...
+
+    iex> :gen_server.call(:stacker, :pop)
+    :hello
+
+It crashes exactly as before but it is restarted right away by the supervisor with the default stack, allowing us to retrieve `:hello` again. Excellent!
+
+By default the supervisor allows a worker to restart at maximum 5 times in a 5 seconds timespan. If the worker crashes more frequently than that, the supervisor gives up on the worker and no longer restarts it. Let's check it by sending 5 unknown messages one right after the other (be fast!):
+
+    iex> :gen_server.call(:stacker, :unknown)
+    ... 5 times ...
+
+    iex> :gen_server.call(:stacker, :unknown)
+    ** (exit) {:noproc,{:gen_server,:call,[:stacker,:unknown]}}
+        gen_server.erl:180: :gen_server.call/2
+
+The sixth message no longer generates an error report, since our server was no longer started automatically. Elixir returns `:noproc` (which stands for no process), meaning there isn't a process named `:stacker`. The number of restarts allowed and its time interval can be customized by passing options to the `supervise` function. Different restart strategies, besides the `:one_for_one` used above, can be chosen for the supervisor as well. For more information on the supported options, [check the documentation for `Supervisor.Behaviour`](http://elixir-lang.org/docs/stable/Supervisor.Behaviour.html).
+
+## 2.3 Who supervises the supervisor?
+
+We have built our supervisor but a pertinent question is: who supervisors the supervisor? To answer this question, OTP contains the concept of applications. Applications can be started and stopped as an unit and, when doing so, they are often linked to a supervisor.
+
+In the previous chapter, we have learned how Mix automatically generates an `.app` file every time we compile our project based on the information contained on the `application` function in our `mix.exs` file.
+
+The `.app` file is called **application specification** and it must contain our application dependencies, the modules it defines, registered names and many others. Some of this information is filled in automatically by Mix but other data needs to be added manually.
+
+In this particular case, our application has a supervisor and, furthermore, it registers a server with name `:stacker`. That said, it is useful to add to the **application specification** all registered names in order to avoid conflicts. If it happens that two applications register the same name, we will be able to find about this conflict sooner. So, let's open the `mix.exs` file and edit the `application` function to the following:
+
+{% highlight elixir %}
+def application do
+  [ registered: [:stacker],
+    mod: { Stacker, [:hello] } ]
+end
+{% endhighlight %}
+
+In the `:registered` key we specify all names registered by our application. The `:mod` key specifies that, as soon as the application is started, it must invoke the **application module callback**. In this case, the **application module callback** will be the `Stacker` module and it will receive the default stack `[:hello]` as argument. The callback must return the `pid` of the supervisor which is associated to this application.
+
+With this in mind, let's open up the `lib/stacker.ex` file and add the following:
+
+{% highlight elixir %}
+defmodule Stacker do
+  use Application.Behaviour
+
+  def start(_type, stack) do
+    Stacker.Supervisor.start_link(stack)
+  end
+end
+{% endhighlight %}
+
+The `Application.Behaviour` expects two callbacks, `start(type, args)` and `stop(state)`. We are required to implement `start/2` though we have decided to not bother about `stop(state)` for now.
+
+After adding the application behavior above, all you need to do is to start `iex -S mix` once again. Our files are going to be recompiled and the supervisor (and consequently our server) will be automatically started:
+
+    iex> :gen_server.call(:stacker, :pop)
+    :hello
+
+Amazing, it works! As you may have noticed, the application `start/2` callback receives a type argument, which we have ignored. The type controls how the VM should behave when the supervisor, and consequently our application, crashes. You can learn more about it by [reading the documentation for `Application.Behaviour`](http://elixir-lang.org/docs/stable/Application.Behaviour.html).
+
+## 2.4 Starting applications
+
+Mix will always start the current application and all application dependencies. Notice there is a difference between your project dependencies (the ones defined under the `deps` key we have discussed in the previous chapter) and the application dependencies.
+
+The project dependencies may contain your test framework or a compile-time only dependency. The application dependency is everything you depend on at runtime. Any application dependency needs to be explicitly added to the `application` function too:
+
+{% highlight elixir %}
+def application do
+  [ registered: [:stacker],
+    applications: [:some_dep],
+    mod: { Stacker, [:hello] } ]
+end
+{% endhighlight %}
+
+When running tasks on Mix, it will ensure the application and all application dependencies are started. This can also be done via command line with the flag `--app`:
+
+    $ elixir -pa ebin --app my_project
+
+You may also start each application individually via the command line using [Erlang's :application module](http://www.erlang.org/doc/man/application.html):
+
+    :application.start(:my_project)
+
+Besides `registered`, `applications` and `mod`, there are other keys allowed in the application specification. You can learn more about them [in the applications chapter from Learn You Some Erlang](http://learnyousomeerlang.com/building-otp-applications).
+
+Finally, notice that `mix new` supports a `--sup` option, which tells Mix to generate a supervisor with an application module callback, automating some of the work we have done here (try it!). With this note, we finalize this chapter. We have learned how to create servers, supervise them, and hook them into our application lifecycle. In the next chapter, we will learn how to create custom tasks in Mix.
diff --git a/getting_started/mix/3.markdown b/getting_started/mix/3.markdown
new file mode 100644
index 000000000..dfde0866f
--- /dev/null
+++ b/getting_started/mix/3.markdown
@@ -0,0 +1,112 @@
+---
+layout: getting_started
+title: 3 Creating custom Mix tasks
+guide: 3
+total_guides: 3
+---
+
+# {{ page.title }}
+
+In Mix, a task is simply an Elixir module inside the `Mix.Tasks` namespace containing a `run/1` function. For example, the `compile` task is a module named `Mix.Tasks.Compile`.
+
+Let's create a simple task:
+
+{% highlight elixir %}
+defmodule Mix.Tasks.Hello do
+  use Mix.Task
+
+  @shortdoc "This is short documentation, see"
+
+  @moduledoc """
+  A test task.
+  """
+  def run(_) do
+    IO.puts "Hello, World!"
+  end
+end
+{% endhighlight %}
+
+Save this module to a file named `hello.ex` then compile and run it as follows:
+
+    $ elixirc hello.ex
+    $ mix hello
+    Hello, World!
+
+The module above defines a task named `hello`. The function `run/1` takes a single argument that will be a list of binary strings which are the arguments that were passed to the task on the command line.
+
+When you invoke `mix hello`, this task will run and print `Hello, World!`. Mix uses its first argument (`hello` in this case) to lookup the task module and execute its `run` function.
+
+You're probably wondering why we have a `@moduledoc` and `@shortdoc`. Both are used by the `help` task for listing tasks and providing documentation. The former is used when `mix help TASK` is invoked, the latter in the general listing with `mix help`.
+
+Besides those two, there is also `@hidden` attribute that, when set to true, marks the task as hidden so it does not show up on `mix help`. Any task without `@shortdoc` also won't show up.
+
+### 3.1 Common API
+
+When writing tasks, there are some common mix functionality we would like to access. There is a gist:
+
+* `Mix.project` - Returns the project configuration under the function `project`; Notice this function returns an empty configuration if no `mix.exs` file exists in the current directory, allowing many Mix functions to work even if a `mix.exs` project is not defined;
+
+* `Mix.Project.current` - Access the module for the current project, useful in case you want to access special functions in the project. It raises an exception if no project is defined;
+
+* `Mix.shell` - The shell is a simple abstraction for doing IO in Mix. Such abstractions make it easy to test existing mix tasks. In the future, the shell will provide conveniences for colored output and getting user input;
+
+* `Mix.Task.run(task, args)` - This is how you invoke a task from another task in Mix; Notice that if the task was already invoked, it works as no-op;
+
+There is more to the Mix API, so feel free to [check the documentation](/docs/stable/Mix.html), with special attention to [`Mix.Task`](/docs/stable/Mix.Task.html) and [`Mix.Project`](/docs/stable/Mix.Project.html).
+
+### 3.2 Namespaced Tasks
+
+While tasks are simple, they can be used to accomplish complex things. Since they are just Elixir code, anything you can do in normal Elixir you can do in Mix tasks. You can distribute tasks however you want just like normal libraries and thus they can be reused in many projects.
+
+So, what do you do when you have a whole bunch of related tasks? If you name them all like `foo`, `bar`, `baz`, etc, eventually you'll end up with conflicts with other people's tasks. To prevent this, Mix allows you to namespace tasks.
+
+Let's assume you have a bunch of tasks for working with Riak.
+
+{% highlight elixir %}
+defmodule Mix.Tasks.Riak do
+  defmodule Dostuff do
+    ...
+  end
+
+  defmodule Dootherstuff do
+    ...
+  end
+end
+{% endhighlight %}
+
+Now you'll have two different tasks under the modules `Mix.Tasks.Riak.Dostuff` and `Mix.Tasks.Riak.Dootherstuff` respectively. You can invoke these tasks like so: `mix riak.dostuff` and `mix riak.dootherstuff`. Pretty cool, huh?
+
+You should use this feature when you have a bunch of related tasks that would be unwieldy if named completely independently of each other. If you have a few unrelated tasks, go ahead and name them however you like.
+
+## 3.3 OptionParser
+
+Although not a Mix feature, Elixir ships with an `OptionParser` which is quite useful when creating mix tasks that accepts options. The `OptionParser` receives a list of arguments and returns a tuple with parsed options and the remaining arguments:
+
+    OptionParser.parse(["--debug"])
+    #=> { [debug: true], [] }
+
+    OptionParser.parse(["--source", "lib"])
+    #=> { [source: "lib"], [] }
+
+    OptionParser.parse(["--source", "lib", "test/enum_test.exs", "--verbose"])
+    #=> { [source: "lib", verbose: true], ["test/enum_test.exs"] }
+
+Check [`OptionParser`](/docs/stable/OptionParser.html) documentation for more information.
+
+## 3.4 Local tasks
+
+Going back to our `hello.ex` example above, you will be able to run it as long as you are in the same directory as the compiled beam file. That's not practical.
+
+Many times, you want to share a task in between projects or easily install a task that someone made available. For this reason Mix also ships with the ability to manage local tasks. Local tasks can be installed from a path or any URL and are available from anywhere within Elixir:
+
+    $ mix local.install http://elixir-lang.org/hello.beam
+
+If everything works as expected, the task will be installed on your machine and you can then successfully invoke it:
+
+    $ mix hello
+
+You can use `mix local` to show all available local tasks and their path. Removing a task is as easy as:
+
+    $ mix local.uninstall hello
+
+With this in mind, you are ready to go out, create and install your custom tasks! Enjoy!
diff --git a/hello.beam b/hello.beam
new file mode 100644
index 000000000..589a06e16
Binary files /dev/null and b/hello.beam differ
diff --git a/hello.ex b/hello.ex
new file mode 100644
index 000000000..9ab893d56
--- /dev/null
+++ b/hello.ex
@@ -0,0 +1,7 @@
+defmodule Mix.Tasks.Hello do
+  use Mix.Task
+
+  def run(_) do
+    Mix.shell.info "Hello from task installed from elixir-lang.org!"
+  end
+end
\ No newline at end of file
diff --git a/images/contents/exunit-ansi.png b/images/contents/exunit-ansi.png
new file mode 100644
index 000000000..d6ce6aab3
Binary files /dev/null and b/images/contents/exunit-ansi.png differ
diff --git a/images/contents/hash-dict-fetch.png b/images/contents/hash-dict-fetch.png
new file mode 100644
index 000000000..31abaf84d
Binary files /dev/null and b/images/contents/hash-dict-fetch.png differ
diff --git a/images/contents/hash-dict-update.png b/images/contents/hash-dict-update.png
new file mode 100644
index 000000000..8713606ab
Binary files /dev/null and b/images/contents/hash-dict-update.png differ
diff --git a/images/contents/home-code.png b/images/contents/home-code.png
new file mode 100644
index 000000000..482aaa084
Binary files /dev/null and b/images/contents/home-code.png differ
diff --git a/images/logo/hires-horizontal.png b/images/logo/hires-horizontal.png
new file mode 100644
index 000000000..def595473
Binary files /dev/null and b/images/logo/hires-horizontal.png differ
diff --git a/images/logo/hires-vertical.png b/images/logo/hires-vertical.png
new file mode 100644
index 000000000..52391a543
Binary files /dev/null and b/images/logo/hires-vertical.png differ
diff --git a/images/social/RSSButton.png b/images/social/RSSButton.png
new file mode 100644
index 000000000..26170ec89
Binary files /dev/null and b/images/social/RSSButton.png differ
diff --git a/index.html b/index.html
index f1dc61efb..9c696e8d6 100644
--- a/index.html
+++ b/index.html
@@ -1,28 +1,168 @@
 ---
-title: Elixir
-active: 1
+section: home
+layout: default
 ---
 
-{% include top.html %}
-<div id="content">
-	<div class="hfeed">
-    <div class="hentry post">
-			<a href="http://demo.alienwp.com/origin/responsive-video/" title="Responsive Video"><img src="http://demo.alienwp.com/origin/files/2012/01/video_responsive-150x150.jpg" alt="Responsive Video" class="archive-thumbnail featured"></a>
-			<div class="sticky-header">
-				<h2 class="entry-title"><a href="http://demo.alienwp.com/origin/responsive-video/" title="Responsive Video" rel="bookmark">What is Elixir?</a></h2>
-				<div class="byline"><abbr class="published" title="Tuesday, January 17th, 2012, 1:54 pm">January 17, 2012</abbr> · by <span class="author vcard"><a class="url fn n" href="http://demo.alienwp.com/origin/author/admin/" title="Griden">Griden</a></span> · in <span class="category"><a href="http://demo.alienwp.com/origin/category/blog/" rel="tag">Blog</a></span> </div>
-			</div><!-- .sticky-header -->
-
-			<div class="entry-summary">
-				<p>Duis platea risus elementum in tortor parturient sed, pulvinar dignissim parturient a proin risus elementum sed velit natoque pid vel nunc in non, enim scelerisque turpis. Aenean mauris lundium, turpis massa diam eros nisi facilisis. Ultrices integer augue. Lacus turpis…</p>
-			</div><!-- .entry-summary -->
-		</div>
-	</div><!-- .hfeed -->
-</div><!-- #content -->
-
-
-<div id="sidebar-primary" class="sidebar">
-  {% include search.html %}
+<div class="hfeed">
+  <div class="hentry post">
+    <img src="/images/contents/home-code.png" alt="Elixir Sample" class="archive-thumbnail" />
+
+    <div class="entry-summary">
+      <p>Elixir is a functional meta-programming aware language built on top of the Erlang VM. It is a dynamic language with flexible syntax with macros support that leverages Erlang's abilities to build concurrent, distributed, fault-tolerant applications with hot code upgrades.</p>
+      <p>Elixir also provides first-class support for pattern matching, polymorphism via protocols (similar to Clojure's), aliases and associative data structures (usually known as dicts or hashes in other programming languages).</p>
+      <p>Finally, Elixir and Erlang share the same bytecode and data types. This means you can invoke Erlang code from Elixir (and vice-versa) without any conversion or performance hit. This allows a developer to mix the expressiveness of Elixir with the robustness and performance of Erlang.</p>
+      <p>To install Elixir or learn more about it, check our <a href="/getting_started/1.html">getting started guide</a>. We also have <a href="/docs">online documentation available</a> and a <a href="/crash-course.html">Crash Course for Erlang developers</a>.</p>
+    </div>
+  </div>
+
+  <div class="hentry post">
+    <h3>Highlights</h3>
+  </div>
+
+  <div class="hentry post">
+    <h4>Everything is an expression</h4>
+    <div class="entry-summary">
+{% highlight elixir %}
+defmodule Hello do
+  IO.puts "Defining the function world"
+
+  def world do
+    IO.puts "Hello World"
+  end
+
+  IO.puts "Function world defined"
+end
+
+Hello.world
+{% endhighlight %}
+
+      <p>Running the program above will print:</p>
+
+<pre>
+Defining the function world
+Function world defined
+Hello World
+</pre>
+
+      <p>This allows a module to be defined in terms of many expressions, programmable by the developer, being the basic foundation for meta-programming. This is similar to what Joe Armstrong (creator of Erlang) proposes with his <a href="https://github.com/joearms/erl2" target="_blank">erl2 project</a>.</p>
+    </div>
+  </div>
+
+  <div class="hentry post">
+    <h4>Meta-programming and DSLs</h4>
+
+    <div class="entry-summary">
+      <p>With expressions and meta-programming, Elixir developers can easily create <a href="http://en.wikipedia.org/wiki/Domain-specific_language">Domain Specific Languages</a>:</p>
+
+{% highlight elixir %}
+defmodule MathTest do
+  use ExUnit.Case
+
+  test "can add two numbers" do
+    assert 1 + 1 == 2
+  end
+end
+{% endhighlight %}
+
+      <p>DSLs allow a developer to write abstractions for specific domains, often getting rid of boilerplate code.</p>
+    </div>
+  </div>
+
+  <div class="hentry post">
+    <h4>Polymorphism via protocols</h4>
+
+    <div class="entry-summary">
+      <p>Protocols allow developers to provide type-specific functionality at chosen extension points. For example, the <code>Enum</code> module in Elixir is commonly used to iterate collections:</p>
+
+{% highlight elixir %}
+Enum.map([1,2,3], fn(x) -> x * 2 end) #=> [2,4,6]
+{% endhighlight %}
+
+      <p>Since the <code>Enum</code> module is built on top of protocols, it is not only limited to the data types that ship with Elixir. A developer can use his own collections with <code>Enum</code> as long as it implements the <code>Enumerable</code> protocol. For example, a developer can use all the convenience of the <code>Enum</code> module to easily manipulate a file, line by line:</p>
+
+{% highlight elixir %}
+file  = File.iterator!("README.md")
+lines = Enum.map(file, fn(line) -> Regex.replace(%r/"/, line, "'") end)
+File.write("README.md", lines)
+{% endhighlight %}
+    </div>
+  </div>
+
+  <div class="hentry post">
+    <h4>Documentation as first-class citizen</h4>
+
+    <div class="entry-summary">
+      <p>Documentation is supported at language level, in the form of docstrings. Markdown is Elixir's defacto markup language of choice for use in docstrings:</p>
+
+{% highlight elixir %}
+defmodule MyModule do
+  @moduledoc """
+  Documentation for my module. With **formatting**.
+  """
+
+  @doc "Hello"
+  def world do
+    "World"
+  end
+end
+{% endhighlight %}
+
+      <p>Different tools can easily access the documentation. For instance, IEx (Elixir's interactive shell) can show the documentation for any module or function with the help of the function <code>h</code>:</p>
+
+{% highlight text %}
+iex> h MyModule
+# MyModule
+
+Documentation for my module. With **formatting**.
+
+{% endhighlight %}
+
+        <p>There is also a documentation generator for Elixir called <a href="https://github.com/elixir-lang/ex_doc">ExDoc</a> that can produce a static site using docstrings extracted from the source code.</p>
+    </div>
+  </div>
+
+  <div class="hentry post">
+    <h4>Pattern matching</h4>
+
+    <div class="entry-summary">
+      <p>Pattern matching allows developers to easily destructure data and access its contents:</p>
+
+{% highlight elixir %}
+{ User, name, age } = User.get("John Doe")
+{% endhighlight %}
+
+      <p>When mixed with guards, it allows us to easily express our problem:</p>
+
+{% highlight elixir %}
+def serve_drinks({ User, name, age }) when age < 21 do
+  raise "No way #{name}!"
+end
+
+def serve_drinks({ User, name, age }) do
+  # Code that serves drinks!
+end
+
+serve_drinks User.get("John")
+#=> Raises "No way John!" if John is under 21
+{% endhighlight %}
+    </div>
+  </div>
+
+  <div class="hentry post">
+    <h4>Erlang all the way down</h4>
+
+    <div class="entry-summary">
+      <p>After all, Elixir is still Erlang. An Elixir programmer can invoke any Erlang function with no runtime cost:</p>
+
+{% highlight elixir %}
+:application.start(:crypto)
+:crypto.md5("Using crypto from Erlang OTP")
+#=> <<192,223,75,115,...>>
+{% endhighlight %}
+
+      <p>Since Elixir compiles to the same bytecode, it is fully <a href="http://learnyousomeerlang.com/what-is-otp" target="_blank">OTP</a> compliant and works seamlessly with all the battle-tested techniques Erlang/OTP is famous for. Erlang type specifications, behaviors and module attributes are all supported. It is easy to <a href="/crash-course.html#interop">add Elixir to your existing Erlang programs too (including rebar support)</a>!
+      <p>To install Elixir or learn more about it, check our <a href="/getting_started/1.html">getting started guide</a>. We also have <a href="/docs">online documentation available</a> and a <a href="/crash-course.html">Crash Course for Erlang developers</a>.</p>
+    </div>
+  </div>
 </div>
 
-{% include bottom.html %}
\ No newline at end of file
diff --git a/packages.html b/packages.html
new file mode 100644
index 000000000..321a3074e
--- /dev/null
+++ b/packages.html
@@ -0,0 +1,23 @@
+---
+layout: default
+---
+
+<div class="hfeed">
+  <div class="hentry post">
+    <h4>Precompiled packages</h4>
+
+    <ul>
+      <li><a href="http://dl.dropbox.com/u/4934685/elixir/v0.9.1.zip">v0.9.1</a></li>
+      <li><a href="http://dl.dropbox.com/u/4934685/elixir/v0.9.0.zip">v0.9.0</a></li>
+      <li><a href="http://dl.dropbox.com/u/4934685/elixir/v0.8.3.zip">v0.8.3</a></li>
+      <li><a href="http://dl.dropbox.com/u/4934685/elixir/v0.8.2.zip">v0.8.2</a></li>
+      <li><a href="http://dl.dropbox.com/u/4934685/elixir/v0.8.1.zip">v0.8.1</a></li>
+      <li><a href="http://dl.dropbox.com/u/4934685/elixir/v0.8.0.zip">v0.8.0</a></li>
+      <li><a href="http://dl.dropbox.com/u/4934685/elixir/v0.7.2.zip">v0.7.2</a></li>
+      <li><a href="http://dl.dropbox.com/u/4934685/elixir/v0.7.1.zip">v0.7.1</a></li>
+      <li><a href="http://dl.dropbox.com/u/4934685/elixir/v0.7.0.zip">v0.7.0</a></li>
+      <li><a href="http://dl.dropbox.com/u/4934685/elixir/v0.6.0.zip">v0.6.0</a></li>
+      <li><a href="http://dl.dropbox.com/u/4934685/elixir/v0.5.0.zip">v0.5.0</a></li>
+    </ul>
+  </div>
+</div>
