First solution + Made Haskell branch