Designing a MIPS CPU in Hardcaml (12 part series)