projects
uu-tc-error
-
a simple novel list based parser combinator library with great error messages, solving a “hard” [Leijen and Meijer, section 2.4] problem. this is achieved by adding a
Writer [ParseError]
effect resulting in the representation oftype Parser a = Text -> ([(a, Text)], [ParseError])
. after parsing, errors are sorted by their position in descending order. - illiterate programming
-
a different take on literate programming in haskell
- bachelor thesis on Checked Exceptions in Haskell
-
the repository happens to be a usage example of illiterate programming.
- cabal template
-
the
cabal init
default template slightly adjusted to my personal preferences including a custom prelude - talk on a paper on avoiding partial functions in haskell
-
…with slides, code repository, and blog post
- G-machine compiler and emulator
-
compiler and emulator of a G-machine in haskell loosely based on Implementing functional languages: a tutorial by simon peyton jones and david lester. this is a teaching aid for a practical bachelor course loosely based on the mentioned book. my friend zhu yang and i built it using GHCJS in this repository. we created a test suite for student submissions too. this repository contains an uglier version of the same teaching aid too, which i had built on my own before.
- parser combinator library
-
draft of a parser combinator haskell library with better error information than any library i know. look at the tests for some examples.
- secret hitler game clone
-
multiplayer online turn based game clone of secret hitler built with a friend using GHC and GHCJS
- prepared basketball game plans with music based timing
-
…using javascript and GHCJS as explained in the blog post
- playing with fire game clone
-
multiplayer online real time game clone in Flow, which is like typescript but better.
- gui tic tac toe project skeleton
-
gui tic tac toe project skeleton that beginners new to the web technologies can extend to get to know typescript without worrying about the tooling nor the web technologies
- linear programming
-
the big M method and the simplex algorithm for node.js. provides a logging option to help students learn the algorithm. here is an example output.
- vaccine scheduling university project in rust
-
part of the vaccine scheduling university project in rust as specified here.
open source contributions
- Flow: copy type of produce for produceWithPatches with adjustments inspired by the TypeScript types
- fix test for singleton maps
- -auto-all -> -fprof-auto
- option to replace the command marker “$>” with an alternative for single line commands
- Allow adding dev tools to shell
- Fix
cl-multiple-value-bind
and hencepurescript-pursuit
- fix typing mistake in interpreter
- Fix
readFile
leaking file descriptors in the presence of asynchronous exceptions - Dispose of Unnecessary OVERLAPPING Pragmas and Deprecated OverlappingInstances Extension