Implementation of our command line parsing combinators
But the above is not a valid Haskell 98 data type!
Existential quantification
is needed for the type of
Ap
.
Indexed families of types
(aka
GADTs
) are needed for the type of
Many
data P a where ... Ap :: P (b->a) -> P b -> P a ... Many :: P a -> P [a] ...