let concat_env check_dup env1 env2 =
if not check_dup then
env1 @ env2
else
fold_env
(fun n d env ->
try
add_def env n d
with
| Already_defined -> raise (Parse_error ("variable " ^ d.def_name ^ " was defined twice", d.def_pos))
) env2 (List.rev env1)