In case anybody else nedds it, I found a "solution" here...

https://github.com/dagit/nehe-tuts/blob/master/lesson06.hs

So I guess I can continue my tinkering and understanding of how more talented Haskell hackers do their thing...