On Sun, Aug 1, 2010 at 2:53 AM, Stefan Holdermans <ste...@vectorfabrics.com> wrote: > Nicolas, > >> I would deeply in favor of renaming seq to unsafeSeq, and introduce a >> type class to reintroduce seq in a disciplined way. > > There is a well-documented [1] trade-off here: Often, calls to seq are > introduced late in a developing cycle; typically after you have discovered a > space leak and figured out how to resolve it. Then you introduce a call to > seq somewhere deep in a call chain. If seq were a class method, you would > know have to work your way upward in the call chain to update all type > signatures you had written there. Clearly, this is quite tedious. And then, > almost just as often, you find out that actually you did not quite figure out > how to resolve the space leak, because it's still there. So, you remove your > freshly introduced call to seq and, indeed, work your way to the call chain > again to remove all now superfluous class constraints from the type > signatures. (By the way, this is typically the sort of task, IDEs with > refactoring support excel at, but these are unfortunately not ubiquitous for > Haskell yet.)
That's a reasonable concern. I suppose that would be the reason for keeping unsafeSeq around if we do typeclassify seq. > More importantly, the type-class approach is flawed [2]. It assumes that all > seq-related constraints can be "read off from type variables", which is in > fact not the case. Could you provide an example (or a specific example or explanation in the paper) of what you mean by this? Luke > Cheers, > > Stefan > > [1] Paul Hudak, John Hughes, Simon Peyton Jones, and Philip Wadler. A > history of Haskell: Being lazy with class. In Barbara G. Ryder and > Brent Hailpern, editors, Proceedings of the Third ACM SIGPLAN > History of Programming Languages Conference (HOPL-III), San Diego, > California, USA, 9–10 June 2007, pages 1–55. ACM Press, 2007. > http://doi.acm.org/10.1145/1238844.1238856 > > [2] Daniel Seidel and Janis Voigtländer. Taming selective strictness. > In Stefan Fischer, Erik Maehle, and Rüdiger Reischuk, editors, > INFORMATIK 2009 – Im Focus das Leben, Beiträge der 39. Jahrestagung > der Gesellschaft für Informatik e.V. (GI), 28. September – 2. > Oktober, in Lübeck, volume 154 of Lecture Notes in Informatics, > pages 2916–2930. GI, 2009._______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe > _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe