[Haskell] How to define gunfold on List?