It may be helpful to distinguish teaching/preaching (a) programming in Haskell from (b) *functional* programming (in Haskell or otherwise).  Each focus is present in the conversation.  Perhaps IO helps the former and hinders the latter.    - Conal