{-# LANGUAGE DeriveAnyClass #-} module Horizon.Spec.Types.HaskellPackage ( HaskellPackage(MkHaskellPackage) , source , modifiers , flags , mkHaskellPackage ) where import Data.Kind (Type) import Dhall (FromDhall, Generic, ToDhall) import Horizon.Spec.Types.CabalFlag (CabalFlag) import Horizon.Spec.Types.HaskellSource (HaskellSource) import Horizon.Spec.Types.Modifiers (Modifiers, defaultModifiers) type HaskellPackage :: Type data HaskellPackage where MkHaskellPackage :: { HaskellPackage -> HaskellSource source :: HaskellSource , HaskellPackage -> Modifiers modifiers :: Modifiers , HaskellPackage -> [CabalFlag] flags :: [CabalFlag] } -> HaskellPackage deriving stock (Int -> HaskellPackage -> ShowS [HaskellPackage] -> ShowS HaskellPackage -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [HaskellPackage] -> ShowS $cshowList :: [HaskellPackage] -> ShowS show :: HaskellPackage -> String $cshow :: HaskellPackage -> String showsPrec :: Int -> HaskellPackage -> ShowS $cshowsPrec :: Int -> HaskellPackage -> ShowS Show, HaskellPackage -> HaskellPackage -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: HaskellPackage -> HaskellPackage -> Bool $c/= :: HaskellPackage -> HaskellPackage -> Bool == :: HaskellPackage -> HaskellPackage -> Bool $c== :: HaskellPackage -> HaskellPackage -> Bool Eq, forall x. Rep HaskellPackage x -> HaskellPackage forall x. HaskellPackage -> Rep HaskellPackage x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep HaskellPackage x -> HaskellPackage $cfrom :: forall x. HaskellPackage -> Rep HaskellPackage x Generic) deriving anyclass (InputNormalizer -> Decoder HaskellPackage forall a. (InputNormalizer -> Decoder a) -> FromDhall a autoWith :: InputNormalizer -> Decoder HaskellPackage $cautoWith :: InputNormalizer -> Decoder HaskellPackage FromDhall, InputNormalizer -> Encoder HaskellPackage forall a. (InputNormalizer -> Encoder a) -> ToDhall a injectWith :: InputNormalizer -> Encoder HaskellPackage $cinjectWith :: InputNormalizer -> Encoder HaskellPackage ToDhall) mkHaskellPackage :: HaskellSource -> HaskellPackage mkHaskellPackage :: HaskellSource -> HaskellPackage mkHaskellPackage HaskellSource x = MkHaskellPackage { $sel:source:MkHaskellPackage :: HaskellSource source = HaskellSource x, $sel:flags:MkHaskellPackage :: [CabalFlag] flags = [], $sel:modifiers:MkHaskellPackage :: Modifiers modifiers = Modifiers defaultModifiers }