Hay un par de problemas que noto con como estamos manejando errores en el type system (y va, en el codigo en general creo):
- Hay lugares donde estamos retornando algo que o tiene un error o no (
{ block: ... } o { error: ... }) y hay otros lugares donde tiramos excepciones. Y al menos yo me perdí con donde estamos haciendo cada cosa, así que habría que ver si tiene sentido mantener ambas formas o hacer siempre lo mismo, y tratar de que sea mas clara en la interfaz de las funciones cual hace cual si mantenemos ambas formas.
- Donde tiramos excepciones estamos tirando siempre
Error, creo que hay lugares donde tiene sentido que tengamos subclases de errores como TypeError para todo lo que sea del type system (así si hay algun otro error inesperado podemos mostrarlo como "Sucedio un error, ¿queres reportarlo?" en vez de mostrarlo directamente) y tambien podría ser algo como EvaluationError para los errores al reducir bloques.
Hay un par de problemas que noto con como estamos manejando errores en el type system (y va, en el codigo en general creo):
{ block: ... }o{ error: ... }) y hay otros lugares donde tiramos excepciones. Y al menos yo me perdí con donde estamos haciendo cada cosa, así que habría que ver si tiene sentido mantener ambas formas o hacer siempre lo mismo, y tratar de que sea mas clara en la interfaz de las funciones cual hace cual si mantenemos ambas formas.Error, creo que hay lugares donde tiene sentido que tengamos subclases de errores comoTypeErrorpara todo lo que sea del type system (así si hay algun otro error inesperado podemos mostrarlo como "Sucedio un error, ¿queres reportarlo?" en vez de mostrarlo directamente) y tambien podría ser algo comoEvaluationErrorpara los errores al reducir bloques.