some haskell learnings