pub fn interval<P, PErr, Q, QErr>(op: IntervalOp, t: Type, l: P, r: Q) -> Typewhere
    P: TryInto<TyParam, Error = PErr>,
    PErr: Debug,
    Q: TryInto<TyParam, Error = QErr>,
    QErr: Debug,