switched to monadic implementation, w00t
lots of work adapting and grokking grabmueller's algorithm w implementation. it's probably better than mine tho :/
lots of work done to build up/understand HM, still a ways to go though...
random code cosmetics
third (fourth?) round of type checking shows promise in latest steps