update #338
add evaluate_type