12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758(************************************************************************)(* * The Coq Proof Assistant / The Coq Development Team *)(* v * Copyright INRIA, CNRS and contributors *)(* <O___,, * (see version control and CREDITS file for authors & dates) *)(* \VV/ **************************************************************)(* // * This file is distributed under the terms of the *)(* * GNU Lesser General Public License Version 2.1 *)(* * (see LICENSE file for the text of the license) *)(************************************************************************)(** * Managing locality *)typeimport_status=ImportDefaultBehavior|ImportNeedQualifiedtypedefinition_scope=Discharge|Globalofimport_statusletdefault_scope=GlobalImportDefaultBehavior(** Positioning locality for commands supporting discharging and export
outside of modules *)(* For commands whose default is to discharge and export:
Global is the default and is neutral;
Local in a section deactivates discharge,
Local not in a section deactivates export *)letmake_non_locality=functionSomefalse->false|_->trueletmake_locality=functionSometrue->true|_->falseletenforce_localitylocality_flag=make_localitylocality_flag(* For commands whose default is to not discharge but to export:
Global in sections forces discharge, Global not in section is the default;
Local in sections is the default, Local not in section forces non-export *)letmake_section_locality=functionSomeb->b|None->Lib.sections_are_opened()letenforce_section_localitylocality_flag=make_section_localitylocality_flag(** Positioning locality for commands supporting export but not discharge *)(* For commands whose default is to export (if not in section):
Global in sections is forbidden, Global not in section is neutral;
Local in sections is the default, Local not in section forces non-export *)letmake_module_locality=function|Somefalse->ifLib.sections_are_opened()thenCErrors.user_errPp.(str"This command does not support the Global option in sections.");false|Sometrue->true|None->falseletenforce_module_localitylocality_flag=make_module_localitylocality_flag