A procedure that has no visible side effects.
procedure kind function[covariant entity return type, ... contravariant entity argument types]
subtypes deeply immutable data