COMP4801
Final Year Project
FYP24006
Lai Yat Kit
Project Member
Dr. Bruno Oliveira
Project Supervisor
(Due: Jan 26, 2025)
(Due: Apr 21, 2025)
Haskell is one of the most well-known general-purpose purely functional programming languages. Despite being a fairly exotic language, many applications have been developed in Haskell by its very passionate community.
To develop native desktop graphical user interfaces in Haskell, it is often necessary to utilize third-party libraries.
There are several open-source Haskell libraries created for this purpose, each offering different GUI widget toolkits and employing different GUI programming paradigms.
Programmers shall freely pick one that satisfies their needs.
However, if one hopes to gain from the numerous benefits of designing software with functional programming principles, they might prefer to use a Haskell native desktop GUI library equipped with functional reactive programming as its GUI programming paradigm, complete with a widget toolkit built in pure-Haskell, as opposed to using a typical Haskell library that employs an imperative programming paradigm and is built on top of an external widget toolkit, such as GTK or Qt.
Yet currently, such a Haskell library does not exist.
This problem thus motivates the existence of this project. The project aims to develop an implementation for such a library, named RGX, with OpenGL & SDL to render its graphics, and Reflex as its functional reactive programming library.
Once the library is completed, the project will demonstrate its capabilities by building a Syncthing front-end application, named RGXSyncthing.