Cinco estados que no pueden existir, y tu código permite los cinco
Le dimos a un agente una tarea corriente —una pantalla de listado con carga, error y datos— y devolvió una clase con un booleano y dos campos nullable. Eso son ocho combinaciones, de las cuales tres significan algo; las otras cinco compilan, pasan la revisión, llegan a producción y se quedan ahí esperando. Aquí tienes qué es un estado imposible, por qué es lo mismo que un invariante roto, por qué el coste real no son los bugs en tiempo de ejecución sino las convenciones no escritas que cada lector tiene que reconstruir, y cómo las sealed classes junto con la exhaustividad convierten toda una categoría de errores en un fallo de compilación. Además: por qué un enum con campos nullable lo empeora, la única línea que desactiva la comprobación en silencio, y los cuatro sitios donde los tipos de datos algebraicos no ayudan nada.






