import ceylon.language.meta.declaration {
GettableDeclaration,
NestableDeclaration
}
import ceylon.language.meta.model {
ClosedType = Type
}
"""A value model represents the model of a Ceylon value that you can inspect.
A value model can be either a toplevel [[Value]] or a member [[Attribute]].
"""
shared sealed interface ValueModel<out Get=Anything, in Set=Nothing>
satisfies Model {
"This value's declaration."
shared formal actual NestableDeclaration&GettableDeclaration declaration;
"This value's closed type."
shared formal ClosedType<Get> type;
}