structopt
Instead of using `clap` directly
miette
This gives us errors with annotated context like this: ``` Error: × type error: Unknown variable 'x' ╭─[isle_examples/let.isle:24:1] 24 │ (Lower (B.B z)) 25 │ (A.Add x y)) · ┬ · ╰── Unknown variable 'x' ╰──── ```