use ex-info for parse error