#lang racket/base

(require (for-syntax racket/base))


;; A quantified pred is:
(struct every (pred))
;; or just an atomic pred.


;; An atomic pred is:
(struct nonempty? (val))
(struct numeric? (val))
;; (... truly, we want a more generic, match-like language for
;; describing the shapes of expressions, or allow for arbitrary
  predicates that we can evaluate through WeScheme or Whalesong .   We
;; will need to revisit this.)


;; A val, the argument to an atomic pred, is the value we should be
;; able to get from a form element:
(struct field (id))
(struct ith-field (id))
;; We may need to generalize this in the context of multi-component
;; form elements, such as the REPL.

 A quantified pred is:
 or just an atomic pred.
 An atomic pred is:
 (... truly, we want a more generic, match-like language for
 describing the shapes of expressions, or allow for arbitrary
 will need to revisit this.)
 A val, the argument to an atomic pred, is the value we should be
 able to get from a form element:
 We may need to generalize this in the context of multi-component
 form elements, such as the REPL.
#lang racket/base

(require (for-syntax racket/base))


(struct every (pred))


(struct nonempty? (val))
(struct numeric? (val))
  predicates that we can evaluate through WeScheme or Whalesong .   We


(struct field (id))
(struct ith-field (id))
