Write you a Haskell (Advanced Topic with implementation tutorial and source code)