{-# 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) import Horizon.Spec.Types.Policy (Policy) type HaskellPackage :: Type data HaskellPackage where MkHaskellPackage :: { source :: HaskellSource , modifiers :: Modifiers , policy :: [Policy] , flags :: [CabalFlag] } -> HaskellPackage deriving stock (Show, Eq, Generic) deriving anyclass (FromDhall, ToDhall) mkHaskellPackage :: HaskellSource -> HaskellPackage mkHaskellPackage x = MkHaskellPackage { source = x, flags = [], modifiers = defaultModifiers, policy = [] }