Error reporting should have a hierarchical / callback structure. We might be able to re-use nickel's blame mechanics (see `%with_message%`)