;; -*- Mode: Irken -*-

(include "lib/core.scm")

(define thing1
  (:Squee x y) -> (+ x y)
  (:Bleek b)   -> (if b 3 4)
  x            -> (thing2-ref x)
  )

(define (thing1-ref x) : ((rsum 'a) -> 'b)
  (error "blech"))

(define thing2
  (:Squee b)   -> (if b 99 88)
  )

(define (thing2-ref x) : ((rsum 'a) -> 'b)
  (error "blech"))

(:Bleek #t)
(:Squee 1 2)
(:Squee #f)
(set! thing1-ref thing1)
(set! thing2-ref thing2)
(thing1-ref (:Squee #t))