# Haskell/To do

See also: Category:Book:Haskell/Stubs

## Cleanups

* Haskell/Other data structures - tricky one. While the discussion on generalized mapping was used as a lead into Haskell/The Functor class a little ahead, the tone of the discussion (specially the parts about folds) seem to lead towards discussion of morphisms, which probably belong to the advanced track (possibly, as Apfelmus once suggested, to Haskell/Datatype algebra). It should also be noted that the catamorphism folds described here are not the same than the folds done with Data.Foldable, which might be confusing for a curious newbie. Finally, there is not a passing mention (not even as pointers to the practical track) of common data structure libraries such as Data.Sequence, Data.Map, Data.Array...
    After a few minor adjustments it now makes more sense within the context of the surrounding chapters. The chapters proposed above remain as necessary as ever though.--Duplode (discuss • contribs) 06:09, 10 May 2014 (UTC)
       Haskell/Libraries/Data structures primer is now part of the book.--Duplode (discuss • contribs) 06:04, 11 May 2014 (UTC)
* Haskell/Understanding arrows - general tidying. The old factory/robot metaphors need to go.
    Done
* Haskell/Applicative Functors - somewhat opaque and vague; does not properly exploit the parallels with functors and monads. A rewrite would be highly desirable.
    Done

## Stubs

* Haskell/Phantom types
* Haskell/CPS Can be improved, but certainly not a stub any more.--Duplode (discuss • contribs) 06:06, 10 May 2014 (UTC)
* Haskell/Laziness revisited
* Haskell/Polymorphism
* Strictness
* Haskell/Advanced type classes
* Haskell/Concurrency
* Haskell/Algorithm complexity
* Haskell/Mutable objects
* Haskell/Debugging
* Haskell/Web programming

## Unincorporated

* Haskell/StephensArrowTutorial - it is a shame that this has spent nearly three years without a proper place in the book. I propose replacing Haskell/Arrows with it. In fact, I intend to do it - but first I need to study arrows myself. Meanwhile, feel free to do it if you agree. --Duplode (discuss • contribs) 23:25, 6 May 2012 (UTC) Done!

## Old pages

* Beginning - hey! this page actually seems kinda complete... was it overlooked somehow?
* Preliminaries - remove?
* Template:Haskell
* Advanced monads - should be kept for historical purposes. There might be a few little bits not yet on the Understanding monads subpages that might be worth transferring, mainly in the State subsection and the external links.
* Monadic parser combinators - perennial stub. Feel free to work on this chapter and reintegrate it into the book if you see a place for it.
* Arrows - the old initial arrows chapter. At this stage, the arrow tutorial is better suited for that role. This page will stay here should anyone feel like developing it further.
* Hierarchical libraries/Lists - entirely redundant in its current form; limited potential for expansion.
* Haskell/Practical monads - this one is quite messy. The forward pointers to the advanced track (such as the concurrency stuff near the end) aren't too bad of a problem at this point of the book, but still the chapter feels disjointed. Perhaps we should combine some or all of the parsing stuff (the Parsec section derived from "Write yourself a Scheme", Haskell/Monadic parser combinators and Haskell/ParseExps) into a single page and move it to the practical track, leaving just a pointer in this chapter.
    Barring a full rewrite the book is probably better without it. The concurrency example is probably worth preserving in a more appropriate context.--Duplode (discuss • contribs) 01:16, 14 May 2014 (UTC)

## Viable but removed red links and stubs

* Haskell/State - Kowey's stub had the following headers:
** IORef - passing information around
** Passing information without IO
** Mixing State with IO
** Reader and Writer - not quite State
       Apples and oranges. Reader, and perhaps Writer, deserve the monad chapter treatment; all else should be used to fill the Mutable State stub.--Duplode (discuss • contribs) 06:14, 10 May 2014 (UTC)
* Haskell/Working with lists - this one was proposed by Apfelmus' as part of his plans for reorganization of the beginner modules. The idea was to introduce list comprehensions in Haskell Basics as an easy way of doing mapping and filtering without need for higher-order functions. Personal note: I removed the red link so that the reorganization warning can be finally dropped. This particular proposal of Apfelmus' makes sense, but I am not sure about how to pull it off while accounting for the implications for the surrounding chapters. Please do give it a try it if you see a way... --Duplode (discuss • contribs) 08:43, 1 May 2012 (UTC)