Source
	compilation: Compilation
	hash: Byte*
	api: SourceAPI
	apiHash: Int
	_internalOnly_nameHashes: _internalOnly_NameHashes
	hasMacro: Boolean
	hasPackageObject: Boolean

_internalOnly_NameHashes
	regularMembers: _internalOnly_NameHash*
	implicitMembers: _internalOnly_NameHash*

_internalOnly_NameHash
	name: String
	hash: Int

SourceAPI
	packages : Package*
	definitions: Definition*

OutputSetting
	sourceDirectory: String
	outputDirectory: String

Compilation
	startTime: Long
	outputs: OutputSetting*

Package
	name: String

Access
	Public
	Qualified
		qualifier: Qualifier
		Protected
		Private

Qualifier
	Unqualified
	ThisQualifier
	IdQualifier
		value: String

ParameterList
	parameters: MethodParameter*
	isImplicit: Boolean
MethodParameter
	name: String
	tpe: Type
	hasDefault: Boolean
	modifier: ParameterModifier

TypeParameter
	id: String
	annotations: Annotation*
	typeParameters : TypeParameter*
	variance: Variance
	lowerBound: Type
	upperBound: Type

Annotation
	base: Type
	arguments: AnnotationArgument*
AnnotationArgument
	name: String
	value: String

enum Variance : Contravariant, Covariant, Invariant
enum ParameterModifier : Repeated, Plain, ByName
enum DefinitionType : Trait, ClassDef, Module, PackageModule

Path
	components: PathComponent*

PathComponent
	Super
		qualifier: Path
	This
	Id
		id: String