{-# 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