aip-0.0.1: src/Data/Aviation/Aip/Year.hs
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE FlexibleInstances #-}
module Data.Aviation.Aip.Year(
Year(..)
, parseYear
, HasYear(..)
) where
import Data.Digit(Digit, parsedigit)
import Text.Parser.Char(CharParsing)
import Papa
data Year =
Year {
_year1 ::
Digit
, _year2 ::
Digit
, _year3 ::
Digit
, _year4 ::
Digit
}
deriving (Eq, Ord, Show)
parseYear ::
(CharParsing p, Monad p) =>
p Year
parseYear =
Year <$> parsedigit <*> parsedigit <*> parsedigit <*> parsedigit
makeClassy ''Year