Как я могу добавить проверки ввода в конструкторы данных Haskell? Скажем, у меня есть
import Data.Time.Calendar
data SchedulePeriod = SchedulePeriod { startDate :: Day
, endDate :: Day
, accrualStart :: Day
, accrualEnd :: Day
, resetDate :: Day
, paymentDate :: Day
, fraction :: Double }
deriving (Show)
и я хочу наложить ограничение startDate < endDate
. Есть ли способ сделать это, не создавая абстрактный тип данных?