Add simple typing to untyped ML implementation

Changes from TAPL Ch 8 -> Ch 10.
Is this supposed to be short for "arrow"?