| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Ouroboros.Consensus.Util.Args
Contents
Description
Utilities for arguments record with defaults
Useful for when you want to define a default value of an arguments record consisting of a mix of arguments with/without defaults.
The following code example explains it best:
data Args f = Args {
hasNoDefault :: HKD f Int
, hasDefault :: Bool
}
defaultArgs :: Incomplete Args
defaultArgs = Args {
hasNoDefault = noDefault
, hasDefault = False
}
theArgs :: Complete Args
theArgs = defaultArgs {
hasNoDefault = 0
}
useArgs :: Complete Args -> (Int, Bool)
useArgs (Args a b) = (a, b)Leaving out the hasNoDefault field from theArgs will result in a type
error.
Synopsis
- data Defaults (t ∷ k) = NoDefault
- type family HKD (f ∷ Type → Type) a where ...
- class MapHKD (f ∷ Type → Type) where
- type Complete (args ∷ (Type → Type) → k) = args Identity
- type Incomplete (args ∷ (Type → Type) → k) = args (Defaults ∷ Type → Type)
- noDefault ∷ ∀ {k} (t ∷ k). Defaults t
- data OverrideOrDefault a
- = Override !a
- | UseDefault
- provideDefault ∷ a → OverrideOrDefault a → a
Documentation
data Defaults (t ∷ k) Source #
Constructors
| NoDefault |
Types
data OverrideOrDefault a Source #
Constructors
| Override !a | |
| UseDefault |
Instances
| Functor OverrideOrDefault Source # | |
Defined in Ouroboros.Consensus.Util.Args Methods fmap ∷ (a → b) → OverrideOrDefault a → OverrideOrDefault b # (<$) ∷ a → OverrideOrDefault b → OverrideOrDefault a # | |
| Show a ⇒ Show (OverrideOrDefault a) Source # | |
Defined in Ouroboros.Consensus.Util.Args Methods showsPrec ∷ Int → OverrideOrDefault a → ShowS # show ∷ OverrideOrDefault a → String # showList ∷ [OverrideOrDefault a] → ShowS # | |
| Eq a ⇒ Eq (OverrideOrDefault a) Source # | |
Defined in Ouroboros.Consensus.Util.Args Methods (==) ∷ OverrideOrDefault a → OverrideOrDefault a → Bool # (/=) ∷ OverrideOrDefault a → OverrideOrDefault a → Bool # | |
provideDefault ∷ a → OverrideOrDefault a → a Source #