Promoted list/tuple members can be of any type

You can have any type as member of promoted list or tuple, not only other promoted types.

But currently only other promoted constructors are allowed. Following example is valid haskell (GHC).
```haskell
    data Foo a = Foo
    x :: Foo '[ a -> b, False, "blah", b]
    x = undefined
```