-* [Syntax: Meta-Programming Helpers](http://docs.racket-lang.org/syntax/index.html)
-* [(require syntax/module-reader)](http://docs.racket-lang.org/syntax/reader-helpers.html#%28mod-path._syntax%2Fmodule-reader%29)
+* [Creating Languages](http://docs.racket-lang.org/guide/languages.html), including
+[#lang s-exp](http://docs.racket-lang.org/guide/module-languages.html#%28part._s-exp%29)
+([more](http://docs.racket-lang.org/reference/reader.html#%28mod-path._s-exp%29))
+
+Typically, a language name maps to its implementation through a module path by adding `/lang/reader`; for example, the language name `scribble/base` is expanded to `scribble/base/lang/reader`, which is the module that implements the surface-syntax parser.
+
+* [Lists and Racket Syntax](http://docs.racket-lang.org/guide/Pairs__Lists__and_Racket_Syntax.html#%28part._lists-and-syntax%29)
+* [Module Syntax](http://docs.racket-lang.org/guide/Module_Syntax.html), including
+the [#lang](http://docs.racket-lang.org/guide/Module_Syntax.html#%28part._hash-lang%29) shorthand
+* [The Reader](http://docs.racket-lang.org/reference/reader.html), including
+[#reader](http://docs.racket-lang.org/reference/reader.html#%28part._parse-reader%29),
+[#lang reader](http://docs.racket-lang.org/reference/reader.html#%28mod-path._reader%29)
+* [Core Syntax](http://docs.racket-lang.org/reference/syntax.html)