common-cli: CLI framework

Why use boxed type?