Создание Vector.Generic экземпляра Functor (и других классов типов

Я столкнулся с проблемой, пытаясь сделать Vector.Generic.Vector экземпляром других классов типов (в моем случае - Functor).

Я мог бы довольствоваться добавлением экземпляра Functor в Vector.Unboxed.Vector, но я не смог разобраться с синтаксисом и для этого. Лучше всего было попробовать что-то вроде:

instance (U.Unbox a, U.Unbox b) => Functor U.Vector where
    fmap = U.map

Но компилятор (справедливо) жаловался, что 'a' и 'b' нигде не стоят после '=>'. Могу ли я вообще сделать такое определение для Functor, поскольку оно предполагает больше ограничений на типы, которые разрешено принимать fmap?

Большинство вещей, которые я нашел в SO, были слишком продвинутыми для меня, так что, пожалуйста, будьте мягче :-)

5
задан Uri Barenholz 27 October 2011 в 16:17
поделиться