{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE DefaultSignatures #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
module Data.Aviation.Aip.Aip_SUP_and_AICs(
Aip_SUP_and_AICs(..)
, AsAip_SUP_and_AICs(..)
, FoldAip_SUP_and_AICs(..)
, GetAip_SUP_and_AICs(..)
, SetAip_SUP_and_AICs(..)
, ManyAip_SUP_and_AICs(..)
, HasAip_SUP_and_AICs(..)
, IsAip_SUP_and_AICs(..)
) where
import Control.Category((.), id)
import Control.Applicative(pure)
import Control.Lens
import Data.Aeson(FromJSON(parseJSON), ToJSON(toJSON), withArray)
import Data.Aviation.Aip.Href(SetHref, FoldHref, ManyHref(_ManyHref), FoldHref(_FoldHref))
import Data.Aviation.Aip.Aip_SUP_and_AIC(Aip_SUP_and_AIC)
import Data.Eq(Eq)
import Data.Foldable(toList)
import Data.Function(($))
import Data.Functor((<$>))
import Data.Int(Int)
import Data.Monoid(Monoid(mappend, mempty))
import Data.Ord(Ord)
import Data.Semigroup(Semigroup((<>)))
import Prelude(Show)
newtype Aip_SUP_and_AICs =
Aip_SUP_and_AICs
[Aip_SUP_and_AIC]
deriving (Eq, Ord, Show)
instance Semigroup Aip_SUP_and_AICs where
Aip_SUP_and_AICs x <> Aip_SUP_and_AICs y =
Aip_SUP_and_AICs (x <> y)
instance Monoid Aip_SUP_and_AICs where
mappend =
(<>)
mempty =
Aip_SUP_and_AICs mempty
instance FromJSON Aip_SUP_and_AICs where
parseJSON =
withArray "Aip_SUP_and_AICs" $ \v ->
Aip_SUP_and_AICs <$> traverse parseJSON (toList v)
instance ToJSON Aip_SUP_and_AICs where
toJSON (Aip_SUP_and_AICs x) =
toJSON x
instance Wrapped Aip_SUP_and_AICs where
type Unwrapped Aip_SUP_and_AICs =
[Aip_SUP_and_AIC]
_Wrapped' =
iso (\(Aip_SUP_and_AICs x) -> x) Aip_SUP_and_AICs
instance Aip_SUP_and_AICs ~ x =>
Rewrapped Aip_SUP_and_AICs x
instance Cons Aip_SUP_and_AICs Aip_SUP_and_AICs Aip_SUP_and_AIC Aip_SUP_and_AIC where
_Cons =
_Wrapped . _Cons . seconding (from _Wrapped)
instance Snoc Aip_SUP_and_AICs Aip_SUP_and_AICs Aip_SUP_and_AIC Aip_SUP_and_AIC where
_Snoc =
_Wrapped . _Snoc . firsting (from _Wrapped)
instance Each Aip_SUP_and_AICs Aip_SUP_and_AICs Aip_SUP_and_AIC Aip_SUP_and_AIC where
each =
_Wrapped . each
instance Reversing Aip_SUP_and_AICs where
reversing =
_Wrapped %~ reversing
instance Plated Aip_SUP_and_AICs where
plate =
_Wrapped . plate . from _Wrapped
type instance IxValue Aip_SUP_and_AICs = Aip_SUP_and_AIC
type instance Index Aip_SUP_and_AICs = Int
instance Ixed Aip_SUP_and_AICs where
ix i =
_Wrapped . ix i
class ManyAip_SUP_and_AICs a => AsAip_SUP_and_AICs a where
_Aip_SUP_and_AICs ::
Prism' a Aip_SUP_and_AICs
default _Aip_SUP_and_AICs ::
IsAip_SUP_and_AICs a =>
Prism' a Aip_SUP_and_AICs
_Aip_SUP_and_AICs =
_IsAip_SUP_and_AICs
instance AsAip_SUP_and_AICs Aip_SUP_and_AICs where
_Aip_SUP_and_AICs =
id
class FoldAip_SUP_and_AICs a where
_FoldAip_SUP_and_AICs ::
Fold a Aip_SUP_and_AICs
instance FoldAip_SUP_and_AICs Aip_SUP_and_AICs where
_FoldAip_SUP_and_AICs =
id
class FoldAip_SUP_and_AICs a => GetAip_SUP_and_AICs a where
_GetAip_SUP_and_AICs ::
Getter a Aip_SUP_and_AICs
default _GetAip_SUP_and_AICs ::
HasAip_SUP_and_AICs a =>
Getter a Aip_SUP_and_AICs
_GetAip_SUP_and_AICs =
aip_SUP_and_AICs
instance GetAip_SUP_and_AICs Aip_SUP_and_AICs where
_GetAip_SUP_and_AICs =
id
class SetAip_SUP_and_AICs a where
_SetAip_SUP_and_AICs ::
Setter' a Aip_SUP_and_AICs
default _SetAip_SUP_and_AICs ::
ManyAip_SUP_and_AICs a =>
Setter' a Aip_SUP_and_AICs
_SetAip_SUP_and_AICs =
_ManyAip_SUP_and_AICs
instance SetAip_SUP_and_AICs Aip_SUP_and_AICs where
_SetAip_SUP_and_AICs =
id
class (FoldAip_SUP_and_AICs a, SetAip_SUP_and_AICs a) => ManyAip_SUP_and_AICs a where
_ManyAip_SUP_and_AICs ::
Traversal' a Aip_SUP_and_AICs
instance ManyAip_SUP_and_AICs Aip_SUP_and_AICs where
_ManyAip_SUP_and_AICs =
id
class (GetAip_SUP_and_AICs a, ManyAip_SUP_and_AICs a) => HasAip_SUP_and_AICs a where
aip_SUP_and_AICs ::
Lens' a Aip_SUP_and_AICs
default aip_SUP_and_AICs ::
IsAip_SUP_and_AICs a =>
Lens' a Aip_SUP_and_AICs
aip_SUP_and_AICs =
_IsAip_SUP_and_AICs
instance HasAip_SUP_and_AICs Aip_SUP_and_AICs where
aip_SUP_and_AICs =
id
class (HasAip_SUP_and_AICs a, AsAip_SUP_and_AICs a) => IsAip_SUP_and_AICs a where
_IsAip_SUP_and_AICs ::
Iso' a Aip_SUP_and_AICs
instance IsAip_SUP_and_AICs Aip_SUP_and_AICs where
_IsAip_SUP_and_AICs =
id
instance SetAip_SUP_and_AICs () where
instance FoldAip_SUP_and_AICs () where
_FoldAip_SUP_and_AICs =
_ManyAip_SUP_and_AICs
instance ManyAip_SUP_and_AICs () where
_ManyAip_SUP_and_AICs _ x =
pure x
instance SetHref Aip_SUP_and_AICs where
instance FoldHref Aip_SUP_and_AICs where
_FoldHref =
_ManyHref
instance ManyHref Aip_SUP_and_AICs where
_ManyHref =
_Wrapped . traverse . _ManyHref