apply abstract binop type transformation to return type too
Revert "add casts in random places to shut up the compiler till I know what's wrong"

This reverts commit 99c2873380840dadcce6c63a1ca677a1709878df.