## List of Explain Codes

- E0001: `effectively volatile <object/type> must be declared at library level`

- E0002: `attribute "Address" outside an attribute definition clause`

- E0003: `first freezing point of type <type> must appear within early call region
  of primitive body`

- E0004: `volatile object cannot appear in this context`

- E0005: `function <function> with output global <variable>`

- E0006: `nonvolatile function <function> with volatile input global <variable>`

- E0007: `<expression> cannot depend on variable input`

- E0008: `cannot write <variable> during elaboration of <package>`

- E0009: `indicator Part_Of is required in this context`

- E0010: `dereference from <object> is not <readable/writable>; object was moved`

- E0011: `incorrect placement of aspect/pragma "SPARK_Mode" with value "On"`

- E0012: `address specification on <variable> is imprecisely supported`

- E0013: `procedure not terminating normally nor abnormally`

- E0014: `<global mode/output item> is not applicable to function`

- E0015: `function cannot have parameter of mode "out" or "in out" in SPARK`

- E0016: `aspect "Always_Terminates" cannot apply to function`

- E0017: `aspect "Exceptional_Cases" cannot apply to function`

- E0018: `call to a procedural function outside of assignment is not allowed in SPARK`
