Я уже довольно давно использую Haskell. Чем больше я им пользуюсь, тем больше влюбляюсь в язык. Я просто не могу поверить, что провел почти 15 лет своей жизни, используя другие языки.
Однако мне медленно, но неуклонно надоедают стандартные библиотеки Haskell. Больше всего меня раздражают определения «недостаточно полиморфные» ( Prelude.map
, Control.Monad.forM_
и т. д.). У меня есть много файлов с исходным кодом на Haskell, первые строки которых выглядят так
{-# LANGUAGE NoMonomorphismRestriction #-}
module Whatever where
import Control.Monad.Error hiding (forM_, mapM_)
import Control.Monad.State hiding (forM_, mapM_)
import Data.Foldable (forM_, mapM_)
{- ... -}
. Чтобы избежать постоянного поиска определений, которые я должен скрыть, я хотел бы иметь один или небольшое количество файлов с исходным кодом, которые обертывают это импорт
шаблонов в управляемые единицы.
Итак...