#!/usr/bin/ruby

subset foo < Str, Num

struct Bar {
    a < foo,
    b < foo,
}

var t = Bar(:hi, 100)

assert_eq(t.a, :hi)
assert_eq(t.b, 100)

do {
    var ok = false

    try {
        Bar([], {})
    }
    catch {
        ok = true
    }

    assert(ok)
}