Views, Program Transformations, and the Evolutivity Problem in a Functional Language
Julien Cohen (LINA), R\'emi Douence (LINA, INRIA - EMN)

TL;DR
This paper explores supporting multiple views of programs in a functional language, demonstrating automated transformations between views using Haskell Refactorer for the expression problem.
Contribution
It introduces automated view transformations in Haskell, addressing the tyranny of the dominant decomposition in functional programming.
Findings
Automated transformations between program views are feasible in Haskell.
The Haskell Refactorer can be adapted for view transformations.
Comparison with existing literature highlights advantages of the approach.
Abstract
We report on an experience to support multiple views of programs to solve the tyranny of the dominant decomposition in a functional setting. We consider two possible architectures in Haskell for the classical example of the expression problem. We show how the Haskell Refactorer can be used to transform one view into the other, and the other way back. That transformation is automated and we discuss how the Haskell Refactorer has been adapted to be able to support this automated transformation. Finally, we compare our implementation of views with some of the literature.
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
TopicsSoftware Engineering Research · Logic, programming, and type systems · Advanced Software Engineering Methodologies
