analyze lambda at the end of semantic analysis

it solves below bugs

- broken IR when non-generic lambda is unused
- broken IR when non-generic do-end block is unused
- invalid semantic error when non-generic lambda is used multi-times

it seems that capturing enclosing lambda's parameters fails

  var a := 1
  f := -> x in
          -> y in
              -> z in
                  a + x + y + z
  f(2)(3)(4).println

This outputs '4'.