Add a Booleanish interface. (#514)
Add a Booleanish interface.
This allows objects to specifically declare that, while not booleans
themselves (except CBoolean), they do have a way to convert to a truth
value. This distinction allows functions like if and for to formally
declare that they accept a Booleanish value, but others, will only
accept an actual boolean value. As it stands today, everything accepts
booleanish values, and that is unfortunate, but that will be addressed
when strong typing is added, so that it will reduce most of the errors
that would be runtime.
||3 months ago