Maintainable type classes for Haskell
Udržování typové třídy v Haskellu
diploma thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/72117Identifiers
Study Information System: 151863
Collections
- Kvalifikační práce [11196]
Author
Advisor
Referee
Křen, Tomáš
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Theoretical Computer Science
Department
Department of Theoretical Computer Science and Mathematical Logic
Date of defense
9. 9. 2014
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Excellent
Keywords (Czech)
Haskell, typové třídy, udržovatelnost, výchozí instance nadtřídKeywords (English)
Haskell, type classes, maintainability, default superclass instancesV této práci se zaměřujeme na dlouhodobý problém v systému typových tříd jazyka Haskell. Konkrétně se zabýváme možnostmi zpětně kompatibilních úprav v existujících hierarchiích tříd. V první části práce podáváme stručný přehled jazyka. Následující část shrnuje stávající navrhovaná řešení problému a rozebírá jejich vlastnosti. Na základě tohoto rozboru předkládáme náš vlastní návrh na jazykové rozšíření. V předposlední části uvádíme několik možných užití jazykového rozšíření a srovnáváme jej s ostatními řešeními. Součástí práce je také proof-of-concept implementace rozšíření pro kompilátor GHC, která je stručně popsána v poslední části. Powered by TCPDF (www.tcpdf.org)
In this thesis we address a long-term maintainability problem in Haskell type class system. In particular we study a possibility of backward-compatible changes in existing class hierarchies. In the first part of the thesis we give a brief overview of the language. The following part summarizes current proposed solutions to the problem and analyzes their properties. Based on this analysis we derive our own language extension proposal. In the penultimate chapter we present several possible applications of the language extension and compare the extension to other solutions. As a part of the thesis we also give a proof-of-concept implementation of the extension for the GHC compiler, which is briefly described in the last part of this thesis. Powered by TCPDF (www.tcpdf.org)