* 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))