;;; $Id: simple-type-expr.def,v 1.1 1999/01/22 23:53:30 leavens Exp $

trustme! ;; suppresses type errors in type-expr? and other procedures

(defrep type-expr datum)

(deftype type-expr? (-> (datum) boolean))
(deftype basic-type? (-> (type-expr) boolean))
(deftype type-variable? (-> (type-expr) boolean))
(deftype function-type? (-> (type-expr) boolean))
(deftype make-basic-type (-> (symbol) type-expr))
(deftype make-type-variable (-> (symbol) type-expr))
(deftype make-function-type (-> ((list type-expr) type-expr) type-expr))
(deftype type-variable->symbol (-> (type-expr) symbol))
(deftype basic-type->symbol (-> (type-expr) symbol))
(deftype function-type->arg-types (-> (type-expr) (list type-expr)))
(deftype function-type->result-type (-> (type-expr) type-expr))
(deftype parse-type-expr (-> (datum) type-expr))
