Helpers for
optparse-applicativeto deal withData.Text.
Example
import qualified Data.Text as T import qualified Options.Applicative as Opt import qualified Options.Applicative.Text as OptT data Options = Options { text :: T.Text , textArg :: T.Text , textOpt :: T.Text } deriving (Eq, Show) optParser :: Opt.Parser Options optParser = Options <$> Opt.argument OptT.text ( Opt.metavar "TEXT" ) <*> OptT.textArgument ( Opt.metavar "TEXT2" ) <*> OptT.textOption ( Opt.long "textopt" )
Alternatives
You may want to consider using optparse-generic which has built-in support for Text and provides a very convient generic interface to optparse avoiding a lot of boilerplate.