Practice implementation of MIPS CPU simulator written in Haskell