# Haskell projects

## Parsing Library

A parsing library similar to parsec

## Equation Solver

Simplifies mathematical expressions into standard form polynomials and finds their roots to solve equations

## Unit Checker

Checks the units of simple physics expressions and equations.

## Freer Effects

An implementation of the paper “Freer Monads, More Extensible Effects”. This is an effect system which is an alternative to monad transformer stacks. Effects compose nicely and are described independently of their interpretation/semantics. This was my first time doing type level programming, and it was really cool! I made a type-aligned sequence, which represents a composition of functions as a tree in a type-safe way, and an open union, which is like `Either`

, but can have any number of alternative types, not just 2. It was a really cool project, and gave me deep insight into free monads and how powerful they can be!

## Solitaire

solitaire playable in the terminal