darcs-2.12.5: a distributed, interactive, smart revision control system

Safe HaskellNone
LanguageHaskell2010

Darcs.UI.Options

Synopsis

Documentation

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 OptSpec d f directly with OptDescr. Instead we (post-) compose it with (->) AbsolutePath. Modulo newtype noise, this is the same as

 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.