Haskell: преобразование между типами классов

Для этих данных:

data A = A
data B = B

class C1 a where repr :: a -> String
instance C1 A where repr _ = "A"
instance C1 B where repr _ = "B"

class C2 a
instance C2 A

Есть ли способ реализовать функцию с этим типом?

conv :: (C1 a, C2 b) => a -> Maybe b

Должно вернутьсяJust . id для аргумента типа, который является экземпляромC2, а такжеNothing для любого другого типа.

repr является инъективным Я могу сменить классC2 но классC1 находится во внешней библиотеке.

Ответы на вопрос(2)

Ваш ответ на вопрос