GitXplorerGitXplorer
r

ui-effects

public
30 stars
1 forks
7 issues

Commits

List of commits on branch master.
Unverified
ac834077ac5129a4a348ab10f3d5a445e62ebde4

Rename compile* to encode*.

rrobrix committed 7 years ago
Unverified
2b5f4c1184cabf30096cc0c027494f7521292dd9

Compile a table of glyphs into bytes.

rrobrix committed 7 years ago
Unverified
39e4212d4333427d4d84d7677a82ab8a56b27a64

Produce bytes in a list.

rrobrix committed 7 years ago
Unverified
6694c163c4f3d0206e118f88532320883d88b33d

unitsPerEm returns Word16.

rrobrix committed 7 years ago
Unverified
54ba224c14dd26abc0e57bc3c520061eaf504298

Leave ascent/descent as Int16.

rrobrix committed 7 years ago
Unverified
cfa9ae9d8998f32fd12f1d6d906c53a31230ccfa

Rename compileGlyph to compileGlyphPaths.

rrobrix committed 7 years ago

README

The README file for this repository.

UI effects

An experiment exploring a UI programming model inspired by algebraic effects.

Languages

An algebraic effect system such as Oleg Kiselyov’s presentation might model individual effects as the combination of a functor and a handler function which performs the actions represented in the datatype. In like fashion, the current work represents each aspect of UI programming—layouts, drawings, interactions, etc.—as a functor with an associated function to perform its actions.

Where we start to diverge is to think of these functors as being languages instead of effects, and of their corresponding functions as interpreters instead of handlers.

To be precise, each language is an embedded DSL. Each functor has associated “smart” constructors which wrap a single, nonrecursive value up into a recursive structure, and the result is an idiomatic Haskell API presenting the facilities offered by the language in question.