{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DefaultSignatures #-}
module Data.Aviation.Aip.Aip_SUP_and_AIC(
Aip_SUP_and_AIC(..)
, AsAip_SUP_and_AIC(..)
, FoldAip_SUP_and_AIC(..)
, GetAip_SUP_and_AIC(..)
, SetAip_SUP_and_AIC(..)
, ManyAip_SUP_and_AIC(..)
, HasAip_SUP_and_AIC(..)
, IsAip_SUP_and_AIC(..)
) where
import Control.Category(id)
import Control.Applicative(pure, (<*>))
import Control.Lens hiding ((.=))
import Data.Aeson(FromJSON(parseJSON), ToJSON(toJSON), withObject, object, (.:), (.=))
import Data.Aviation.Aip.AipDate(AipDate)
import Data.Aviation.Aip.DocumentNumber(DocumentNumber)
import Data.Aviation.Aip.Href(Href, SetHref, FoldHref(_FoldHref), ManyHref(_ManyHref), GetHref, HasHref(href))
import Data.Aviation.Aip.Title(Title)
import Data.Eq(Eq)
import Data.Function(($))
import Data.Functor(fmap, (<$>))
import Data.Ord(Ord)
import Prelude(Show)
data Aip_SUP_and_AIC =
Aip_SUP_and_AIC
DocumentNumber
Href
Title
AipDate
AipDate
deriving (Eq, Ord, Show)
instance FromJSON Aip_SUP_and_AIC where
parseJSON =
withObject "Aip_SUP_and_AIC" $ \v ->
Aip_SUP_and_AIC <$>
v .: "docnum" <*>
v .: "href" <*>
v .: "title" <*>
v .: "pubdate" <*>
v .: "effdate"
instance ToJSON Aip_SUP_and_AIC where
toJSON (Aip_SUP_and_AIC docnum u title pubdate effdate) =
object ["docnum" .= docnum, "href" .= u, "title" .= title, "pubdate" .= pubdate, "effdate" .= effdate]
class ManyAip_SUP_and_AIC a => AsAip_SUP_and_AIC a where
_Aip_SUP_and_AIC ::
Prism' a Aip_SUP_and_AIC
default _Aip_SUP_and_AIC ::
IsAip_SUP_and_AIC a =>
Prism' a Aip_SUP_and_AIC
_Aip_SUP_and_AIC =
_IsAip_SUP_and_AIC
instance AsAip_SUP_and_AIC Aip_SUP_and_AIC where
_Aip_SUP_and_AIC =
id
class FoldAip_SUP_and_AIC a where
_FoldAip_SUP_and_AIC ::
Fold a Aip_SUP_and_AIC
instance FoldAip_SUP_and_AIC Aip_SUP_and_AIC where
_FoldAip_SUP_and_AIC =
id
class FoldAip_SUP_and_AIC a => GetAip_SUP_and_AIC a where
_GetAip_SUP_and_AIC ::
Getter a Aip_SUP_and_AIC
default _GetAip_SUP_and_AIC ::
HasAip_SUP_and_AIC a =>
Getter a Aip_SUP_and_AIC
_GetAip_SUP_and_AIC =
aip_SUP_and_AIC
instance GetAip_SUP_and_AIC Aip_SUP_and_AIC where
_GetAip_SUP_and_AIC =
id
class SetAip_SUP_and_AIC a where
_SetAip_SUP_and_AIC ::
Setter' a Aip_SUP_and_AIC
default _SetAip_SUP_and_AIC ::
ManyAip_SUP_and_AIC a =>
Setter' a Aip_SUP_and_AIC
_SetAip_SUP_and_AIC =
_ManyAip_SUP_and_AIC
instance SetAip_SUP_and_AIC Aip_SUP_and_AIC where
_SetAip_SUP_and_AIC =
id
class (FoldAip_SUP_and_AIC a, SetAip_SUP_and_AIC a) => ManyAip_SUP_and_AIC a where
_ManyAip_SUP_and_AIC ::
Traversal' a Aip_SUP_and_AIC
instance ManyAip_SUP_and_AIC Aip_SUP_and_AIC where
_ManyAip_SUP_and_AIC =
id
class (GetAip_SUP_and_AIC a, ManyAip_SUP_and_AIC a) => HasAip_SUP_and_AIC a where
aip_SUP_and_AIC ::
Lens' a Aip_SUP_and_AIC
default aip_SUP_and_AIC ::
IsAip_SUP_and_AIC a =>
Lens' a Aip_SUP_and_AIC
aip_SUP_and_AIC =
_IsAip_SUP_and_AIC
instance HasAip_SUP_and_AIC Aip_SUP_and_AIC where
aip_SUP_and_AIC =
id
class (HasAip_SUP_and_AIC a, AsAip_SUP_and_AIC a) => IsAip_SUP_and_AIC a where
_IsAip_SUP_and_AIC ::
Iso' a Aip_SUP_and_AIC
instance IsAip_SUP_and_AIC Aip_SUP_and_AIC where
_IsAip_SUP_and_AIC =
id
instance SetAip_SUP_and_AIC () where
instance FoldAip_SUP_and_AIC () where
_FoldAip_SUP_and_AIC =
_ManyAip_SUP_and_AIC
instance ManyAip_SUP_and_AIC () where
_ManyAip_SUP_and_AIC _ x =
pure x
instance SetHref Aip_SUP_and_AIC where
instance FoldHref Aip_SUP_and_AIC where
_FoldHref =
_ManyHref
instance ManyHref Aip_SUP_and_AIC where
_ManyHref f (Aip_SUP_and_AIC docnum u title pubdate effdate) =
Aip_SUP_and_AIC <$> pure docnum <*> f u <*> pure title <*> pure pubdate <*> pure effdate
instance GetHref Aip_SUP_and_AIC where
instance HasHref Aip_SUP_and_AIC where
href f (Aip_SUP_and_AIC docnum u title pubdate effdate) =
fmap (\u' -> Aip_SUP_and_AIC docnum u' title pubdate effdate) (f u)