Эмулируйте "горящие мосты" на GHC 7.8

Существует ли простой способ эмулировать предложение о сжигании мостов (также называемое предложением складной / проходимой части GHC 7.10) на GHC 7.8 или более ранней версии?

Некоторые аспекты действительно трудно подражать. Это включает в себя изменение в иерархиях классов. Скорее всего, эту часть нельзя эмулировать.

Новые функции и замены функций могут быть просто импортированы из Data.Foldable и друзья. Тем не менее, такие функции, как length или же null недоступны с сигнатурами нового типа. Следующий фрагмент кода демонстрирует некоторые аспекты притворства горящих мостов:

import Prelude hiding (elem, foldr, length, maximum, null)
import Data.Foldable (Foldable, elem, foldMap, foldr, maximum, toList)
import Data.Traversable (Traversable, traverse)

length :: Foldable t => t a -> Int -- will become a method of Foldable
length = Data.Foldable.foldl' (\c _ -> c + 1) 0
null :: Foldable t => t a -> Bool -- will become a method of Foldable
null = foldr (\_ _ -> False) True

Есть ли пакет, который делает это более полным способом?

0 ответов

Другие вопросы по тегам