hole found in parser... haskell is being lazy in a bad way again
most of the type checking works now