Simple task management application for my bachelor thesis based on Phil Freeman's Comonads as spaces
Switch branches/tags
Nothing to show
Clone or download
Latest commit f66e9ad Sep 4, 2018


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