@clarfonthey i'm developing an IR for a virtual machine and when i was making and/or yesterday i was just treating zero as false and anything else as true
so `0 or 5` is 5, because 5 is true
then i realized that's inconvenient if you wanna do like `(a && b) == (c or d)` because im not coercing truthy values to 1 so this wouldn't work
i also kinda wanna make this transpilable to human-readable C and realized C's logical operators always coerce the result to 0 or 1 (likely for exactly this reason)
then i realized other languages like lua and javascript actually do it kinda the way i was doing it and i realized i kinda wanna support being able to do it both ways
but if i want value selecting logical operators, and C only has boolean logical operators, and i wanna transpile to C, then i have to find a way to make those work in C