[Haskell-beginners] How do ambigious types compile with Aeson