
I've been arguing that sequences should be treated differently from other data structures, since they can be handled by a Haskell 98 class, and they exhibit greater variety, so the class is more useful. One way to get there is to take Edison, remove the module-based overloading and add default definitions to the class. I don't think default definitions are quite as useless as Chris suggests: often there is a most common default; in some other cases there is a choice, but you have a family of methods that will all decide the same way, so you can delegate to one member of the family. And defaults make it easier to get started with a new instance. To have something concrete to discuss, I've placed a structure based on Edison at docs: http://www.soi.city.ac.uk/~ross/seq/ code: http://www.soi.city.ac.uk/~ross/seq.tar.gz