Type Expressions

A type expression must result in a collection of values: usually a set, but also a list and even a string.

The only other difference between a type expression and an ordinary expression is that, in a type expression, the name of an abstract type variable is intended to represent not the current set of values assigned to the variable at the time the type expression is evaluated, but the set of values assigned to it at the time the type check is made.

At the moment, only type expressions of the forms

  variable-name
  set of variable-name
  list of variable-name
behave as if they are re-evaluated every time a type check is made.
Herman Venter

This is Slim documentation as snarfed on 27 May 1999 by dB.