::Predicate
Send a message to self. Only used in the body of a predicate definition. The argument should match a public or protected predicate of self. It may also match a private predicate if the predicate is within the scope of the object where the method making the call is defined, if imported from a category, if used from inside a category, or when using private inheritance.
::+callable
instantiation_errortype_error(callable, Predicate)permission_error(access, private_predicate, Predicate)existence_error(predicate_declaration, Predicate)area(Area) :-
::width(Width),
::height(Height),
Area is Width*Height.