The use of type systems and type theory in declarative system architecture. - Simon Howard Brock (1990)