I have watched a great talk "Making Impossible States Impossible" by Richard Feldman.
But I can't figure out how to make impossible wrong modes of pages.
Stright forward approach looks like following:
```elm
type ListView = ListView
type DetailsView = DetailsView
type PolymerElement = PolymerElement
type ElmElement = ElmElement
type Page
= BuildingList ListView PolymerElement
| BuildingDetails DetailsView PolymerElement
| BulbList ListView PolymerElement
...
| HorseDetails DetailsView ElmElement
```
But then I can't write a pattern to match only DetailViews to add the back button to the view.
Or match only PolymerElements to import Polymer element for specific page.
Is it possible to achieve without writing case...of of all pages multiple times in code?