Okay SO. I wrote type checking for the internals of Outline; it's pretty horrific, but it prints nicer error messages. Go check it out! Before I write the rest of Outline I'm going to go refactor all the sets and gets to use it.