sig
type class_data = {
known : StringModules.StringSet.t;
classes : Ast.class_def StringModules.lookup_map;
parents : string StringModules.lookup_map;
children : string list StringModules.lookup_map;
variables : (Ast.class_section * string) StringModules.lookup_table;
methods : Ast.func_def list StringModules.lookup_table;
refines : Ast.func_def list StringModules.lookup_table;
mains : Ast.func_def StringModules.lookup_map;
ancestors : string list StringModules.lookup_map;
distance : int StringModules.lookup_table;
refinable : Ast.func_def list StringModules.lookup_table;
}
type class_data_error =
HierarchyIssue of string
| DuplicateClasses of string list
| DuplicateVariables of (string * string list) list
| DuplicateFields of (string * (string * string) list) list
| UnknownTypes of (string * (string * string) list) list
| ConflictingMethods of (string * (string * string list) list) list
| ConflictingInherited of (string * (string * string list) list) list
| PoorlyTypedSigs of
(string * (string * string option * (string * string) list) list)
list
| Uninstantiable of string list
| ConflictingRefinements of (string * (string * string list) list) list
| MultipleMains of string list
end