make semantics_context non-copyable
change lambda capture information structure
reduce 'do' statement implementation

it can be implemented only by using statement_block