Only running over "docs/" directory since it will likely have the
largest postivie impact and cause fewest issues.
Typos will do simple find-and-replace when it detects a word not in it's
dictionary. It does not have any regard for formatting based on
surrounding context. Care must be taken not no merge variable names in
same scope etc.
Typos can be driven by Github Actions:
https://github.com/crate-ci/typos/blob/master/docs/github-action.md
Tool: https://github.com/crate-ci/typos
Re `cast` vs. `stringToNatOrZ` in the chapter 5 tip:
`cast` from `String` to `Nat` does work in Idris 2, version 0.6.0-a75161cb2, so the first sentence is not currently correct, and there is no change needed to make the code work.
In the Discord documentation channel, z_snail suggested changing the text to merely recommend changing `cast` to `stringToNatOrZ`. This PR proposes that change. I tried to change the text as little as possible, but I made some additional, strictly speaking unnecessary revisions, where I thought they would make the wording clearer given the essential changes. I added a missing period as well.
(If the `cast` from `String` to `Nat` is destined to be removed, perhaps this PR should be ignored.)
The instructions for the exercises at the end of section 5.3.4 list several file-handling functions needed for the exercises. They were in the Prelude, but now are in `System.File.Handle` and `System.File.ReadWrite`, and I added a note about that. (`import System.File` would work for the exercise code, but the docs aren't there, so I didn't mention that. I also didn't mention there a few other definitions, in other modules, that one needs to look up to understand the functions that the book lists. I think that figuring out that one needs to find those additional docs is supposed to be part of the exercise.)
readNumber_v2 should be readNumbers_v2. I also added a remark pointing to the corresponding function definition in the book, for people who prefer to type in the definitions themselves (like me) rather than using the source files in the repo.
There's another issue with the chapter 5 tips, but I'm not sure what the right fix is, so I'll submit an issue.
Can't export a type which refers to a private name. This has caught a
couple of visibility errors in the libraries, code and tests, so they've
been updated too.