module Monad for a more functional treatment of errors (among others)
use the Error monad in parsing KB;
Monad.S also requires a map function