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

Safe HaskellNone




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).