- raise always wraps in UserErr even for standard errors - structured user errors with line / col / source