COMP3141: Software System Design and Implementation
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
- State Monad implementation
- Maybe Monad implementation
- ZipList Applicative implementation
- Combinatorial List Monad implementation
- Tuple Applicative implementation
- Stack Monad implementation
Generalised Algebraic Data Types and Other Type Related stuff
Curry Howard and Parametrecity
Notes on Curry Howard Correspondence and Parametricity (Free Theorems)