diff --git a/doc/tame.texi b/doc/tame.texi
index 39901212..5ed52297 100644
--- a/doc/tame.texi
+++ b/doc/tame.texi
@@ -42,6 +42,7 @@ Free Documentation License".
@end ifnottex
@menu
+* Preprocessor:: Metaprogramming system
* License:: Document License
@end menu
@@ -75,6 +76,23 @@ Free Documentation License".
@end ifhtml
+@node Preprocessor
+@chapter Preprocessor
+
+@menu
+* Macro Expansion::
+@end menu
+
+@node Macro Expansion
+@section Macro Expansion
+
+@menu
+* Expansion Sequence::
+@end menu
+
+@lowersections
+@include ../src/preproc/expand/expand-sequence.texi
+@raisesections
@include license.texi
diff --git a/src/preproc/expand/expand-sequence.xsl b/src/preproc/expand/expand-sequence.xsl
new file mode 100644
index 00000000..60c56894
--- /dev/null
+++ b/src/preproc/expand/expand-sequence.xsl
@@ -0,0 +1,415 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A node expansion was requested via `eseq:expand-node'
+ , but no implementation was provided. Please
+ override the function.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/preproc/expand/expand-sequence-test.xsl b/test/preproc/expand/expand-sequence-test.xsl
new file mode 100644
index 00000000..e8315e6a
--- /dev/null
+++ b/test/preproc/expand/expand-sequence-test.xsl
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/preproc/expand/expand-sequence.xspec b/test/preproc/expand/expand-sequence.xspec
new file mode 100644
index 00000000..eb780abb
--- /dev/null
+++ b/test/preproc/expand/expand-sequence.xspec
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+