reduce type casts
add a failing test for #194, which is triggered by "dce"