Better error messages for simple situations.

Sample below.

Here's a tentatively short error message.
Could not obtain the following permission:
  x @ state_a
because all we have is:
  x @ state_b
Variable x is defined as follows.
File "tmp/test.mz", line 18, characters 6-8:

  let x = mk_a () in
      ^^