shrun-0.9: A utility program for running shell commands concurrently.
Safe HaskellNone
LanguageGHC2021

Shrun.Configuration.Data.ConfigPhase

Description

Higher-Kinded data with type families for "phased-data" approach.

Synopsis

Types

data ConfigPhase Source #

Data "phases" related to configuration.

Constructors

ConfigPhaseArgs

Args phase.

ConfigPhaseToml

Toml phase.

ConfigPhaseMerged

Merged args + toml phase.

ConfigPhaseEnv

Env created from MergedConfig

Type families

type family ConfigPhaseF (p :: ConfigPhase) a where ... Source #

General type family representing:

  • Args: Maybe w/ disable flag
  • Toml: Maybe
  • Merged: Definite

type family ConfigPhaseMaybeF (p :: ConfigPhase) a where ... Source #

General type family representing:

  • Args: Maybe w/ disable flag
  • Toml: Maybe
  • Merged: Maybe

type family SwitchF (p :: ConfigPhase) t where ... Source #

General type family representing a boolean switch for a type t that is isomorphic to Bool:

  • Args: WithDisabled () (isomorphic to Disabled | Bool)
  • Toml: Maybe Bool
  • Merged: t
  • Env: t