[Haskell] How to implement A-lists and P-lists in Haskell (cont.)