The intermediate
module provides an intermediate representation for ASN.1 notation.
It includes constants for the various ASN.1 keywords and types to represent the
single ASN.1 data elements in an intermediate representation from which the
generator module produces bindings.
The intermediate representation aims to preserve as much information as possible
from the original specification, even though some of that information might not actually
be relevant for decoding and encoding in any of the common encoding rules
(inner type constraints are such an example).