1. new in this version
  2. build a web 2.0 app in happstack
  3. why happstack is cool
  4. getting started with happstack
  5. prerequisites
  6. cabal install me
  7. first shot at happstack
  8. url handling
  9. basic HTML inclusion
  10. templates
  11. stringtemplate basics
  12. debugging
  13. form data: get and post
  14. form data: file uploads
  15. cookies
  16. introduction to macid
  17. first steps with macid
  18. scaling with multimaster
  19. using macid safely
  20. macid dummy data
  21. changing the data model
  22. macid stress test
  23. limitations of macid
  24. foreign characters
  25. IxSets
  26. cron jobs
  27. thanks
  28. appendix (floundering in ghci)

Introduction to IxSet

There's another utility package included in the Happstack suite, happstack-ixset, which you might find useful

In a nutshell, the package provides a module Happstack.Data.IxSet, that defines a new data type which acts an awful lot like the old familiar Data.Map but allows you to easily select subsets based upon component data.

An example is included with this tutorial at IxSetExample.hs.

I suggest reading over the code included to supplement the haddock documentation for Happstack.Data.IxSet and playing with all of the values starting with "ex" to make sure you feel comfortable with the values they have and why.

I make no attempt to cover all of the combinators defined in Happstack.Data.IxSet, but I hope I cover enough of them to give you a good start.

A final note about IxSet is that if the contained type is an instance of Serialize, then the entire IxSet will be an instance of Serialize thus making it suitable for use with Happstack.State