import ceylon.language.meta.declaration {
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;