@evancz it seems that most Haskell projects put all modules under a common project namespace (eg, [mtl](https://github.com/ekmett/mtl/blob/master/mtl.cabal#L27:L47), [yesod-auth](https://github.com/yesodweb/yesod/blob/master/yesod-auth/yesod-auth.cabal#L55:L63)). To me that makes the exposed-modules seem a lot cleaner and may be friendlier to those debugging or using the exported functions. What do you think about starting all modules with `Elm`? Eg.,

```haskell
Elm.Language
Elm.InterfaceSerialization
```

If that seems reasonable to you, give me any suggestions you have and I'd be happy to try it out in a PR.