Optparse-applicative takes an interesting approach to commandline parsing. A parser is data that captures the structure of applicative and monadic combinators so that you can inspect that structure and interpret it later. Modeling this in Swift is hard.
I want to be able to model something like this:
indirect enum Parser<T> {
case NilP(v: T?)
case AltP(p1: Parser<T>, p2: Parser<T>)
case BindP<I>(p: Parser<I>, f: (I) -> Parser<T>)
/* ... */