I don't know if this is a problem with the monadic arithmetic reporter, the if-else reporter, the replace item block, or something else.
I created a feature for strict-type variables. The only problem that I have found is that for the int type, if you give it a non-integer float, it's not converted to an int, even though I use the ceiling and floor functions from the monadic reporter.
unconditionally sets the raw value
near the end of the ring.
I forgot an if-statement I ended up using stop this block
at the end of the ifs in the ring; after reading your reply and looking at the code, it seems so obvious to me now.
I just realized I hadn't used a debugging tool for this that I have used before: visible stepping with the definition script copied out.