maxInMonth :: Int -- ^ Month to check, MUST be between 1 and 12 - otherwise exception raised.
           -> Int -- ^ Year to check the month for.
           -> Int -- ^ Number of days in this month. Between 1 and 31.
maxInMonth m y = let unadjusted = unadjustedMaxInMonth !! (m - 1)
                 in if isLeapYear y then unadjusted + 1
                    else unadjusted
maxInMonth :: Int -- ^ Month to check, MUST be between 1 and 12 - otherwise exception raised.
           -> Int -- ^ Year to check the month for.
           -> Int
maxInMonth m y = let unadjusted = unadjustedMaxInMonth !! (m - 1)
                 in if isLeapYear y then unadjusted + 1
                    else unadjusted
maxInMonth m y = let unadjusted = unadjustedMaxInMonth !! (m - 1)
                 in if isLeapYear y then unadjusted + 1
                    else unadjusted