Study notes and code on the various concepts taught in the COMP3141: Software System Design and Implementation course at UNSW. Includes markup notes of theoretical concepts and commented Haskell implementations of the concepts.

Note: if you are viewing these notes from my website, then the links to code below will trigger a download. If you want to instead read the code in the browser, you can do so from the GitHub repository

Property Based Testing

Notes on Property Based Testing

Data Invariants, Abstraction and Refinement

Notes on Data Invariants, Abstraction and Refinement

Functors, Applicatives and Monads

Notes on Functor, Applicative and Monad Laws

Curry Howard and Parametrecity

Notes on Curry Howard Correspondence and Parametricity (Free Theorems)

Random Haskell Code