;;; $Id: procedure.def,v 1.3 1998/10/26 16:40:40 leavens Exp $

(defrep Procedure datum)

(deftype prim-proc? (-> (Procedure) boolean))
(deftype make-prim-proc (-> (symbol) Procedure))
(deftype prim-proc->prim-op (-> (Procedure) symbol))

(deftype closure? (-> (Procedure) boolean))
(deftype make-closure (-> ((list symbol) parsed-exp Environment) Procedure))
(deftype closure->formals (-> (Procedure) (list symbol)))
(deftype closure->body (-> (Procedure) parsed-exp))
(deftype closure->env (-> (Procedure) Environment))
