on master help sign in
Merge pull request #4794 from martinbaker/mydoc2
7690efbNiklas Larsson
docs/proofs/elabReflection.rst → docs/elaboratorReflection/elabReflection.rstrenamed

The content is the same.

docs/reference/elaborator-reflection.rst → docs/elaboratorReflection/elaborator-reflection.rstrenamed+11−5
@@ -1,8 +1,8 @@
1.. _elaborator-reflection:
1.. _elaborator-reflection:
2
2
3−*********************
3+**********************************
4−Elaborator Reflection
4+Elaborator Reflection Introduction
5−*********************
5+**********************************
6
6
7The Idris elaborator is responsible for converting high-level Idris code into the core language.
7The Idris elaborator is responsible for converting high-level Idris code into the core language.
8It is implemented as a kind of embedded tactic language in Haskell, where tactic scripts are written in an *elaboration monad* that provides error handling and a proof state.
8It is implemented as a kind of embedded tactic language in Haskell, where tactic scripts are written in an *elaboration monad* that provides error handling and a proof state.
@@ -198,6 +198,12 @@ This is primarily useful for code generation, particularly for generating patter
198
198
199Learn More
199Learn More
200==========
200==========
201−While this documentation is still incomplete, elaboration reflection works in Idris today.
201+
202+Some tactics are introduced in the :ref:`proofs-index` section with further details, of those most relevant to elaborator reflection, on the following pages.
203+
202−As you wait for the completion of the documentation, the list of built-in tactics can be obtained using the ``:browse`` command in an Idris REPL or the corresponding feature in one of the graphical IDE clients to explore the ``Language.Reflection.Elab.Tactics`` namespace.
204+The list of built-in tactics can be obtained using the ``:browse`` command in an Idris REPL or the corresponding feature in one of the graphical IDE clients to explore the ``Language.Reflection.Elab.Tactics`` namespace.
203All of the built-in tactics contain documentation strings.
205All of the built-in tactics contain documentation strings.
206+
207+For alternative ways to extend the Idris language see the :ref:`reference-index` section.
208+
209+The following pages explain more about the theory and practice of elaborator reflection.
docs/proofs/example1.rst → docs/elaboratorReflection/example1.rstrenamed

The content is the same.

docs/proofs/generatingData.rst → docs/elaboratorReflection/generatingData.rstrenamed

The content is the same.

docs/proofs/holes.rst → docs/elaboratorReflection/holes.rstrenamed

The content is the same.

docs/elaboratorReflection/index.rstnew file+27
@@ -0,0 +1,27 @@
1+.. _elaborator-index:
2+
3+#####################
4+Elaborator Reflection
5+#####################
6+
7+A tutorial on theorem proving in Idris.
8+
9+.. note::
10+
11+ The documentation for Idris has been published under the Creative
12+ Commons CC0 License. As such to the extent possible under law, *The
13+ Idris Community* has waived all copyright and related or neighboring
14+ rights to Documentation for Idris.
15+
16+ More information concerning the CC0 can be found online at: http://creativecommons.org/publicdomain/zero/1.0/
17+
18+.. toctree::
19+ :maxdepth: 1
20+
21+ elaborator-reflection
22+ elabReflection
23+ tactics
24+ holes
25+ example1
26+ primitive
27+ generatingData
docs/proofs/primitive.rst → docs/elaboratorReflection/primitive.rstrenamed

The content is the same.

docs/proofs/tactics.rst → docs/elaboratorReflection/tactics.rstrenamed

The content is the same.

docs/index.rst+1
@@ -24,5 +24,6 @@ Documentation for the Idris Language
24 st/index
24 st/index
25 effects/index
25 effects/index
26 proofs/index
26 proofs/index
27+ elaboratorReflection/index
27 reference/index
28 reference/index
28 guides/index
29 guides/index
docs/proofs/index.rst+4−9
@@ -1,8 +1,8 @@
1.. _proofs-index:
1.. _proofs-index:
2
2
3−#########################################
3+###############
4−Theorem Proving and Elaborator Reflection
4+Theorem Proving
5−#########################################
5+###############
6
6
7A tutorial on theorem proving in Idris.
7A tutorial on theorem proving in Idris.
8
8
@@ -25,9 +25,4 @@ A tutorial on theorem proving in Idris.
25 propositional
25 propositional
26 interactive
26 interactive
27 interactiveOld
27 interactiveOld
28− elabReflection
28+
29− tactics
30− holes
31− example1
32− primitive
33− generatingData
docs/reference/index.rst−1
@@ -36,7 +36,6 @@ This will tell you how Idris works, for using it you should read the Idris Tutor
36 internals
36 internals
37 language-features
37 language-features
38 language-extensions
38 language-extensions
39− elaborator-reflection
40 type-directed-search
39 type-directed-search
41 partial-evaluation
40 partial-evaluation
42 misc
41 misc
docs/reference/language-extensions.rst+6−1
@@ -3,7 +3,6 @@ Language Extensions
3*******************
3*******************
4
4
5
5
6−
7Type Providers
6Type Providers
8===============
7===============
9
8
@@ -34,3 +33,9 @@ repository <https://github.com/david-christiansen/idris-type-providers>`__.
34More detailed descriptions are available in David Christiansen's `WGP
33More detailed descriptions are available in David Christiansen's `WGP
35'13 paper <http://dx.doi.org/10.1145/2502488.2502495>`__ and `M.Sc.
34'13 paper <http://dx.doi.org/10.1145/2502488.2502495>`__ and `M.Sc.
36thesis <http://itu.dk/people/drc/david-christiansen-thesis.pdf>`__.
35thesis <http://itu.dk/people/drc/david-christiansen-thesis.pdf>`__.
36+
37+Elaborator Reflection
38+=====================
39+
40+Another way to extend the language is elaborator reflection which is described
41+in the :ref:`elaborator-index` section.