///|
/// ofdx 入口 — 只做 IO 绑定
/// 业务逻辑在 dispatch(纯函数,返回 CliResponse)
fn main {
  let argv = @sys.get_cli_args()
  let args = if argv.length() > 1 { argv[1:] } else { [] }
  let response = dispatch(args[:])
  if !response.stdout.is_empty() {
    println(response.stdout)
  }
  if !response.stderr.is_empty() {
    println(response.stderr)
  }
  @sys.exit(response.exit_code)
}