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