Listas Haskell de tipos de dados

Esta é provavelmente outra questão fácil de Haskell. Se eu tiver alguns tipos de dados "aninhados", como neste código de exemplo:

<code>data Place = Country
           | State
           | City String
           deriving Show

data State = California
           | NewYork
           deriving Show

data Country = USA
             | Canada
             deriving Show
</code>

Posso criar legalmente uma lista como [EUA, Canadá] do tipo [País] ou [Califórnia, Nova York] do tipo [Estado] ou [Cidade "a", Cidade "b"] do tipo [Local].

O que devo fazer para criar uma lista como [USA, NewYork]? NewYork é um Estado que é um Lugar, e EUA é um País que é um Lugar, mas ghci vê EUA então assume que eu estou fazendo uma lista de Countrys (e NewYork é um Estado, então a lista falha).

Eu acho que eu preciso de alguma maneira para lançar um país ou estado para um lugar, mas estou em uma perda de como conseguir isso.

Eu estou tentando evitar jogar os dados contidos dentro do estado e do país no tipo de lugar, o que eu sei que faria funcionar, mas eu tenho uma quantidade decente de dados reais que eu prefiro não misturar assim.

questionAnswers(3)

yourAnswerToTheQuestion