arthurxavierx / purescript-comonad-ui-todos

Simple task management application for my bachelor thesis based on Phil Freeman's Comonads as spaces

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

purescript-comonad-ui-todos

Simple task management application inspired by TodoMVC; written for the first part of my bachelor thesis Comonads for User Interfaces based on Phil Freeman's Comonads as spaces.

This simple application demonstrates three types of UIs modelled with three different comonads, namely:

  • the Store comonad: models a general architecture where every component fully exposes its state for read and write operations;
  • the Moore i comonad: isomorphic to Cofree ((->) i) or Traced [i], this comonad models the Elm architecture where user component inputs are given by a type i;
  • the Cofree f comonad: models an object-oriented architecture similar to that of Halogen.

We have implemented local storage in the browser for saving tasks for all UI examples. In the Moore example, however, it is still unclear what could be the best method for applying effects when of a component action (as the component state is private). We have used an ad hoc approach by replicating a save function when of every user action.

Build instructions

In order to build this application one must have the PureScript compiler (version 0.11.7) installed, as well as the npm and bower tools for package management.

After installing the prerequisites, simply run

make

About

Simple task management application for my bachelor thesis based on Phil Freeman's Comonads as spaces

License:Other


Languages

Language:PureScript 90.7%Language:CSS 6.7%Language:HTML 1.4%Language:Makefile 1.2%