;; testing variants
;; this will currently fail because case <else> is not yet implemented

(datatype bool (:true) (:false))

(define (+ a b)
  (%%cexp (int int -> int) "%0+%1" a b))

(let ((x (:fnord 12))
      (y (:blort #f))
      (z (:shlum "howdy"))
      )
  ;; three args: (success-cont, failure-cont, sum)
  (&vcase (fnord)
   (lambda (a) (+ a 3))
   (lambda (b)
     (&vcase (blort)
      (lambda (c) (if c 99 34))
      (lambda (d) 19)
      b))
   z))