Put type checker context in a monad.
Put type checker context in a monad.

There shouldn't be any functionality changes in this commit ...

Warning: I'm using some ML stle rebinding (that I expected would not
work) to bind a field value to it's name (similar to -XNamedFieldPuns,
but in a 'Reader', I guess).  E.g., I use

  ctx <- asks ctx

to store the 'ctx' field of the 'CheckR' reader state in the 'ctx'
variable.  I.e., the 'ctx' on each side refer to different things.
Maybe this is confusing?

spire/spire