Журнал изменений для версии 0.8 vector перечисляет следующие изменения с предупреждением:
Functor, Monad, Applicative, Alternative, Складные и проходимые экземпляры для векторов в штучной упаковке (ВНИМАНИЕ: они имеют тенденцию быть медленными и предоставляются только для полноты) .
Может кто-нибудь объяснить, почему это так ? Это просто обычная стоимость специализации классов типов или что-то более интересное?
Обновление: Глядя на некоторые конкретные экземпляры, можно увидеть, например:
instance Foldable.Foldable Vector where
{-# INLINE foldr #-}
foldr = foldr
и аналогично для других складок. Означает ли это, что сворачивание работает медленно для Vector
s в целом? Если нет, то что делает не-sp достаточно медленно, чтобы получить предупреждение?