Simon wanted to know who the intended audience will be – (1) beginners, (2) experienced programmers without any Haskell experience, or (3) existing Haskell programmers. At the moment, I think the answer is (2). He suggested that we should emphasize deep principles of the language that show its conceptual elegance. Examples he mentioned include functors and lenses.
John had some advice drawn from his experience teaching Haskell to imperative programmers. They tend to ask the wrong type of questions. For instance, they might want to know about how to traverse a tree-like data structure with visited flags to indicate whether nodes have been processed yet. Basically, the problem is that they might try to implement imperative solutions in a functional paradigm – certainly possible, but messy and generally unnecessary.
Great things to bear in mind as we design our course materials!