;;; $Id: atomic-expression.def,v 1.8 1999/02/25 03:37:16 leavens Exp $

trustme!  ; this makes the type checker suppress errors

(defrep (atomic-expression T) datum)  ; run-time checked

(deftype atomic-expression? (-> (datum) boolean))
 
(deftype atom->atomic-expression (-> (T) (atomic-expression T)))

(deftype tree->atomic-expression (-> ((tree T)) (atomic-expression T)))

(deftype atomic-expression-atom? (-> ((atomic-expression T)) boolean))
      
(deftype atomic-expression-tree? (-> ((atomic-expression T)) boolean))

(deftype atomic-expression->atom (-> ((atomic-expression T)) T))

(deftype atomic-expression->tree (-> ((atomic-expression T)) (tree T)))

(deftype parse-atomic-expression
  (and (-> ((list T)) (atomic-expression T))
       (-> (S) (atomic-expression S))
       (-> (datum) (atomic-expression datum))))

