Added new code for propagating casts
added hacky strengthen to downCast...
shifting type of == to allow different inputs
more union/unify woes. see cousot-0X.js
asdasd