"Constructors cannot be defined for function sorts, but constructor '{}' is defined for sort '{}'",
// These are name resolution errors, but we include them here to avoid having to define a separate error type for name resolution.
/// Checks that the constructors and mappings are disjoint, i.e. that no identifier is both a constructor and a mapping.
fn are_constructors_and_mappings_disjoint(spec: &UntypedDataSpecification) -> Result<(), WellTypedError> {
/// The set of basic sorts `BS` are exactly the sorts Bool, Pos, Int, Nat, and Real. Definition 15.1.2.