pub fn refinement(var: Str, t: Type, pred: Predicate) -> Type
Expand description
{I: Int | I >= 0}
=> Refinement{
    layout: TyParam::MonoQ "I",
    bounds: [TyBound::Instance("I", "Int")],
    pred: Predicate::GreaterEqual("I", 0)
}