;;; $Id: ch7-2-expressed-value.def,v 1.1 1998/12/03 22:31:27 leavens Exp $

trustme!

(defrep Expressed-Value datum)

(deftype instance? (-> (Expressed-Value) boolean))
(deftype make-instance (-> (Expressed-Value (vector Denoted-Value)) Expressed-Value))
(deftype instance->class (-> (Expressed-Value) Expressed-Value))
(deftype instance->i-vals (-> (Expressed-Value) (vector Denoted-Value)))
(deftype class? (-> (Expressed-Value) boolean))
(deftype make-class (-> ((maybe Expressed-Value) (list symbol) (vector Denoted-Value) (list symbol) Method-Environment) Expressed-Value))
(deftype class->parent (-> (Expressed-Value) (maybe Expressed-Value)))
(deftype class->c-vars (-> (Expressed-Value) (list symbol)))
(deftype class->c-vals (-> (Expressed-Value) (vector Denoted-Value)))
(deftype class->i-vars (-> (Expressed-Value) (list symbol)))
(deftype class->m-env (-> (Expressed-Value) Method-Environment))

(deftype number->expressed (-> (number) Expressed-Value))
(deftype expressed->number (-> (Expressed-Value) number))
(deftype procedure->expressed (-> (Procedure) Expressed-Value))
(deftype expressed->procedure (-> (Expressed-Value) Procedure))
(deftype list->expressed (-> ((list Expressed-Value)) Expressed-Value))
(deftype expressed->list (-> (Expressed-Value) (list Expressed-Value)))
(deftype void->expressed (-> (void) Expressed-Value))
(deftype open-method->expressed
  (-> ((-> ((-> () Expressed-Value))
	   (-> ((list Expressed-Value)) Expressed-Value)))
      Expressed-Value))
(deftype expressed->open-method
  (-> (Expressed-Value)
      (-> ((-> () Expressed-Value))
	   (-> ((list Expressed-Value)) Expressed-Value))))

(deftype denoted->expressed (-> (Denoted-Value) Expressed-Value))
(deftype expressed->denoted (-> (Expressed-Value) Denoted-Value))


