I think I am still using OOP way in haskell

Perhaps you’ll be happier with using Ocaml - functional and OO programming in the one language!