## 17.1 Generating ML code

The next two commands are meant to be used for rapid preview of extraction. They both display extracted term(s) inside Coq.

  `Extraction` term`.`
  Extracts one term in the Coq toplevel.
  `Recursive Extraction` qualid`1``...` qualid`n``.`
  Recursive extraction of all the globals qualid1 ... qualidn and all their dependencies in the Coq toplevel.

All the following commands produce real ML files. User can choose to produce one monolithic file or one file per Coq module.

  `Extraction "``file``"` qualid1 ... qualidn.
  Recursive extraction of all the globals qualid1 ... qualidn and all their dependencies in one monolithic file file. Global and local identifiers are renamed according to the choosen ML language to fullfill its syntactic conventions, keeping original names as much as possible.
  `Extraction Module` ident.
  Extraction of the Coq module ident to an ML module ident`.ml`. In case of name clash, identifiers are here renamed using prefixes `coq_` or `Coq_` to ensure a session-independent renaming.
  `Recursive Extraction Module` ident.
  Extraction of the Coq module ident and all other modules ident depends on.

The list of globals qualidi does not need to be exhaustive: it is automatically completed into a complete and minimal environment. Extraction will fail if it encounters an informative axiom not realized (see section 17.2.3). A warning will be issued if it encounters an logical axiom, to remind user that inconsistant logical axioms may lead to incorrect or non-terminating extracted terms.