Safe Haskell | None |
---|---|
Language | Haskell2010 |
- module Darcs.UI.Options.Core
- module Darcs.UI.Options.Markdown
- type DarcsOption = OptSpec DarcsOptDescr Flag
- type PrimDarcsOption v = forall a. PrimOptSpec DarcsOptDescr Flag a v
- type DarcsOptDescr = Compose OptDescr ((->) AbsolutePath)
- optDescr :: AbsolutePath -> DarcsOptDescr f -> OptDescr f
Documentation
module Darcs.UI.Options.Core
module Darcs.UI.Options.Markdown
type DarcsOption = OptSpec DarcsOptDescr Flag Source
DarcsOption
instantiates the first two type parameters of OptSpec
to
what we need in darcs. The first parameter is instantiated to
The flag type is instantiate to Flag
.
type PrimDarcsOption v = forall a. PrimOptSpec DarcsOptDescr Flag a v Source
This is PrimOptSpec
instantiated with 'DarcsOptDescr and Flag
.
type DarcsOptDescr = Compose OptDescr ((->) AbsolutePath) Source
We do not instantiate the d
in
directly with
OptSpec
d fOptDescr
. Instead we (post-) compose it with (->)
. Modulo newtype noise, this is the same asAbsolutePath
type 'DarcsOptDescr f =OptDescr
(AbsolutePath
-> f)
This is so we can pass a directory relative to which an option argument is interpreted (if it has the form of a relative path).
optDescr :: AbsolutePath -> DarcsOptDescr f -> OptDescr f Source
The instance Functor OptDescr
was introduced only in base-4.7.0.0, which is
why we implement it here manually.