update #338 add evaluate_type