God I hate the term \"code smell\", but I can\'t think of anything more accurate.
I\'m designing a high-level language & compiler to Whitespace in my spare time
Well, don't use monads. The power of functional programming is function purity and their reuse. There's this paper a professor of mine once wrote and he's one of the guys who helped build Haskell.
The paper is called "Why functional programming matters", I suggest you read through it. It's a good read.