added reconstructTypes, res and res3 are structurally equal now, yet res errors and res3 compiles