* is a separator for function input and output types separated by ->.

(The symbol * is also used in expressions for multiplication.)

Syntax

(type-a * type-b * ... -> result-a * result-b * ...)
(lisp (-> type-a * type-b ...) ...)

Semantics

  • On the left of ->, * separates positional input types.
  • On the right of ->, * separates multiple return values.
  • In a lisp form, it denotes that Lisp will return multiple values.

Example

(declare sum-and-product (Integer * Integer -> Integer * Integer))