Add canvas type -- fix up tag funtions I copy pasted -- this is where template haskell would rule
Add keyboard events -- refactor event sources in prep for keypress events
implemented drop repeats and did a shit ton of whitespace trimming now that I have show-trailing-whitespace-t as a setq-defulat