Standard reduction for A in OCaml.
Some typos.
Reorganization and consistent.
Num -> Int