Haskell meets Evariste
Paulo R. Pereira, Jose N. Oliveira

TL;DR
This paper demonstrates how applying an easy-hard-split formal strategy improves the clarity and design of Haskell functions, enhancing documentation and reusability in functional programming.
Contribution
It introduces a general, informal strategy for improving software documentation and design in Haskell, applicable to program analysis and synthesis.
Findings
Haskell functions benefit from the easy-hard-split strategy
Improved clarity and conceptual design in documentation
Strategy is applicable to other functional programming languages
Abstract
Since its birth as a new scientific body of knowledge in the late 1950s, computer programming has become a fundamental skill needed in many other disciplines. However, programming is not easy, it is prone to errors and code re-use is key for productivity. This calls for high-quality documentation in software libraries, which is quite often not the case. Taking a few Haskell functions available from the Hackage repository as case-studies, and comparing their descriptions with similar functions in other languages, this paper shows how clarity and good conceptual design can be achieved by following a so-called easy-hard-split formal strategy that is quite general and productive, even if used informally. This strategy is easy to use in functional programming and can be applied to both program analysis and synthesis.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Software Engineering and Design Patterns · Software Engineering Research
