[WIP] constant folding for binary expressions

I accidentally broke a test case and can't figure out where it goes wrong :(