;;; $Id: combinator-lambda-1.def,v 1.1 1999/02/11 06:25:19 leavens Exp $

trustme!

(defrep c-lambda-1-exp datum)

(deftype varref? (-> (c-lambda-1-exp) boolean))
(deftype make-varref (-> (symbol) c-lambda-1-exp))
(deftype varref->var (-> (c-lambda-1-exp) symbol))

(deftype lambda? (-> (c-lambda-1-exp) boolean))
(deftype make-lambda (-> (symbol c-lambda-1-exp) c-lambda-1-exp))
(deftype lambda->formal (-> (c-lambda-1-exp) symbol))
(deftype lambda->body (-> (c-lambda-1-exp) c-lambda-1-exp))

(deftype app? (-> (c-lambda-1-exp) boolean))
(deftype make-app (-> (c-lambda-1-exp c-lambda-1-exp) c-lambda-1-exp))
(deftype app->rator (-> (c-lambda-1-exp) c-lambda-1-exp))
(deftype app->rand (-> (c-lambda-1-exp) c-lambda-1-exp))

(deftype LS? (-> (c-lambda-1-exp) boolean))
(deftype make-LS (-> () c-lambda-1-exp))

(deftype LK? (-> (c-lambda-1-exp) boolean))
(deftype make-LK (-> () c-lambda-1-exp))

(deftype LI? (-> (c-lambda-1-exp) boolean))
(deftype make-LI (-> () c-lambda-1-exp))

(deftype c-lambda-1-exp? (-> (datum) boolean))
(deftype parse-c-lambda-1-exp (-> (datum) c-lambda-1-exp))
(deftype unparse-c-lambda-1-exp (-> (c-lambda-1-exp) datum))
