How to import data from modules in Haskell

It took me a while to figure this out – I probably just overlooked it all the time – but I finally understood how import for data works. Importing stuff in Haskell is easy and mostly straigtforward. ```haskell import Mod -- imports all from a module import Mox (foo, bar) -- imports foor and bar from that module import qualified Mod -- imports all with Mod as mandatory namespace import Mod as Foo -- imports all with Foo as optional(!) namespace (you can reach everything in Mod also without the namespace) ``` But if you have the following definition in `Mod`, how can you export/import the data given (`Red`, `Green` & `Blue`)? ```haskell module Mod where data Colors = Red | Green | Blue ``` Just use this: ```haskell -- in Mod itself module Mod (Color(..)) where data Colors = Red | Green | Blue ``` ```haskell import Mod (Color(..)) x = Color.Red ``` If you know it, it becomes easy, but somehow it was not apparent when checking out the [import wiki page](https://wiki.haskell.org/Import).