diff --git a/docs/contrib.rst b/docs/contrib.rst
deleted file mode 100644
index be9e7ef4..00000000
--- a/docs/contrib.rst
+++ /dev/null
@@ -1,141 +0,0 @@
-Contrib Libraries (a.k.a nitros)
-================================
-
-Scheme standard libraries
--------------------------
-
-- (scheme write)
-- (scheme cxr)
-- (scheme file)
-- (scheme inexact)
-- (scheme time)
-- (scheme process-context)
-- (scheme load)
-- (scheme lazy)
-
-(picrin control)
-----------------
-
-Delimited control operators.
-
-- **(reset h)**
-- **(shift k)**
-
-(picrin pretty-print)
----------------------
-
-Pretty-printer.
-
-- **(pretty-print obj)**
-
- Prints obj with human-readable indention to current-output-port.
-
-
-(picrin regexp)
----------------
-
-- **(regexp ptrn [flags])**
-
- Compiles pattern string into a regexp object. A string flags may contain any of #\g, #\i, #\m.
-
-- **(regexp? obj)**
-
- Judges if obj is a regexp object or not.
-
-- **(regexp-match re input)**
-
- Returns two values: a list of match strings, and a list of match indeces.
-
-- **(regexp-replace re input txt)**
-- **(regexp-split re input)**
-
-
-SRFI libraries
---------------
-
-- `(srfi 1)
- `_
-
- List library.
-
-- `(srfi 8)
- `_
-
- ``receive`` macro.
-
-- `(srfi 17)
- `_
-
- Generalized set!
-
-- `(srfi 26)
- `_
-
- Cut/cute macros.
-
-- `(srfi 43)
- `_
-
- Vector library.
-
-- `(srfi 60)
- `_
-
- Bitwise operations.
-
-- `(srfi 95)
- `_
-
- Sorting and Marging.
-
-- `(srfi 111)
- `_
-
- Boxes
-
-(picrin control list)
----------------------
-
-Monadic list operators.
-
-The triple of for/in/yield enables you to write a list operation in a very easy and simple code. One of the best examples is list composition::
-
- (for (let ((a (in '(1 2 3)))
- (b (in '(2 3 4))))
- (yield (+ a b))))
-
- ;=> (5 6 7 6 7 8 7 8 9)
-
-All monadic operations are done in *for* macro. In this example, *in* operators choose an element from the given lists, a and b are bound here, then *yielding* the sum of them. Because a and b are values moving around in the list elements, the expression (+ a b) can become every possible result. *yield* operator is a operator that gathers the possibilities into a list, so *for* macro returns a list of 3 * 3 results in total. Since expression inside *for* macro is a normal expression, you can write everything that you can write elsewhere. The code below has perfectly the same effect to above one::
-
- (for (yield (+ (in '(1 2 3))
- (in '(4 5 6)))))
-
-The second best exmaple is filtering. In the next case, we show that you can do something depending on the condition of chosen elements::
-
- (for (let ((x (in (iota 10))))
- (if (even? x)
- (yield x)
- (null))))
-
- ;=> (0 2 4 6 8)
-
-This expression is equivalent to ``(filter even? (iota 10))`` but it is more procedual and non-magical.
-
-- **(for expr)**
-
- [Macro] Executes expr in a list monad context.
-
-- **(in list)**
-
- Choose a value from list. *in* function must only appear in *for* macro. The delimited continuation from the position of *in* function to the outside *for* macro is executed for each element in list. If list contains no values, that is ``(in '())``, the continuation is discarded.
-
-- **(yield value)**
-
- Yields value from the monad context. The result of *for* will be a list of yielded values.
-
-- **(null . value)**
-
- Returns ``()`` whatever value is given. The identity element of list composition. This operator corresponds to Haskell's fail method of Monad class.
-
-