import ceylon.language.meta.model{ Type, Function, Method } """Abstraction over declarations which can be invoked, namely functions, methods and constructors """ shared sealed interface FunctionDeclaration satisfies FunctionOrValueDeclaration & FunctionalDeclaration { shared actual formal Function<Return, Arguments> apply<Return=Anything, Arguments=Nothing>(Type<>* typeArguments) given Arguments satisfies Anything[]; shared actual formal Method<Container, Return, Arguments> memberApply<Container=Nothing, Return=Anything, Arguments=Nothing>(Type<Object> containerType, Type<>* typeArguments) given Arguments satisfies Anything[]; }