added first part of abstract list in Haskell