= Line XY XY
Как бы вы, например, гарантировали типом, что? ...
f (Line a@(XYZ ax ay) b@(XYZ bx by))
| bx > ax || by > ay = error "Expected components of 'a' to be <= 'b'"
| otherwise = ...
Написал бы тип ValidLine, (смарт-)конструктор для которого проверяет это условие, чтобы я потом из типов знал, что больше не нужно его проверять
Обсуждают сегодня