;;; $Id: lambda-multiple+if.def,v 1.4 1999/01/22 17:36:04 leavens Exp $

trustme!  ;; suppress type errors

(defrep lcm+if-exp datum)

(deftype lcm+if-exp? (-> (datum) boolean))
(deftype varref? (-> (lcm+if-exp) boolean))
(deftype quote? (-> (lcm+if-exp) boolean))
(deftype lambda? (-> (lcm+if-exp) boolean))
(deftype if? (-> (lcm+if-exp) boolean))
(deftype app? (-> (lcm+if-exp) boolean))
(deftype varref->var (-> (lcm+if-exp) symbol))
(deftype quote->symbol (-> (lcm+if-exp) symbol))
(deftype lambda->formals (-> (lcm+if-exp) (list symbol)))
(deftype lambda->body (-> (lcm+if-exp) lcm+if-exp))
(deftype app->rator (-> (lcm+if-exp) lcm+if-exp))
(deftype app->rands (-> (lcm+if-exp) (list lcm+if-exp)))
(deftype if->test-exp (-> (lcm+if-exp) lcm+if-exp))
(deftype if->then-exp (-> (lcm+if-exp) lcm+if-exp))
(deftype if->else-exp (-> (lcm+if-exp) lcm+if-exp))
(deftype make-varref (-> (symbol) lcm+if-exp))
(deftype make-quote (-> (symbol) lcm+if-exp))
(deftype make-lambda (-> ((list symbol) lcm+if-exp) lcm+if-exp))
(deftype make-if (-> (lcm+if-exp lcm+if-exp lcm+if-exp) lcm+if-exp))
(deftype make-app (-> (lcm+if-exp (list lcm+if-exp)) lcm+if-exp))
(deftype parse-lcm+if-exp (-> (datum) lcm+if-exp))
