Im just starting out with purescript and would like to implement a generic show for my Type → Type for all values that implement show. What im trying is this:

```
data Sentiment a = Ask a | Bid a
instance showSentiment :: Show (Sentiment a) where
show :: forall (a :: Type). Show a => Sentiment a -> String
show (Bid a) = "Bid " <> show a
show (Ask a) = "Ask " <> show a
```

However this does not compile:

```
No type class instance was found for
Data.Show.Show a1
while checking that type forall (a :: Type). Show a => Sentiment a -> String
is at least as general as type t0 -> String
while checking that expression \$1 ->
case $1 of
(Bid a) -> (...) (...)
(Ask a) -> (...) (...)
has type t0 -> String
in value declaration showSentimentRecord
where a1 is a rigid type variable
bound at (line 0, column 0 - line 0, column 0)
t0 is an unknown type
```

My questions is now why is this not compiling and is it possible to have a show for my `Sentiment`

type that works for all `Int`

, `Number`

any `Record`

etc?