Abstraction of the Graph structure implemented in Haskell. Hopefully done right