Rekayasa berbasis tipe

Tipe sebagai alat rekayasa: smart constructor, phantom type, QuickCheck, dan unit test.

Modul ini menggunakan tipe sebagai alat rekayasa untuk mencegah bug sejak waktu kompilasi. Pembahasan mencakup smart constructor, phantom type, pengujian berbasis properti dengan QuickCheck, dan unit test dengan tasty serta HUnit. Pengujian berbasis properti menjadi keunggulan khas Haskell dalam memverifikasi program.