[Haskell-beginners] heterogeneous containers and static typing