;;; $Id: maybe.def,v 1.4 1999/03/04 00:22:52 leavens Exp $

(defrep (maybe ?t) (vector datum))

(deftype maybe? (-> (datum) boolean))
(deftype make-something (-> (?t) (maybe ?t)))
(deftype make-nothing (-> () (maybe ?t)))
(deftype maybe-something? (-> ((maybe ?t)) boolean))
(deftype maybe-nothing? (-> ((maybe ?t)) boolean))
(deftype something->value (-> ((maybe ?t)) ?t))
(deftype maybe-test (-> ((maybe ?t) (-> (?t) ?u) (-> () ?u)) ?u))
