Template for flag-creation functions
rest f
: a flag that signals the end of flag processing. all remaining arguments
are passed to the f
rest f
: a flag that signals the end of flag processing. all remaining arguments
are passed to the f
lift t ~project
transforms a flag with accumulator type 'a
into a flag with a more informative accumulator type 'b
provided that project x
returns a pair consisting of
1. a 'a
-value extracted from the 'b
-value x
, and
2. a function for rebuilding a modified 'b
-value from
the modified 'a
-value resulting from processing the flag.
The intended use pattern for lift
is when 'b
is a record type
with a field foo
of type 'a
and project
is
fun r -> (r.foo, (fun foo' -> { r with foo = foo' }))