- haskell code commented