A small piece of the haskell type class hierarchy ported to dart.