pub fn repeat_to_zero<'n, S: Term2S<A::Type>, A: Term, F>( num: Value<A>, initial: S::Type<A>, body: F, ) -> S::Type<Zero<A::Type>>where A::Type: UInt, F: for<'a> FnMut(Value<Var<'a, A::Type>>, S::Type<Succ<Var<'a, A::Type>>>) -> S::Type<Var<'a, A::Type>>,