Control.Applicative.Lift
| Авторские права | (c) Ross Paterson 2010 |
|---|---|
| Лицензия | BSD-style (см. файл LICENSE) |
| Поддержка | ross@soi.city.ac.uk |
| Устойчивость | экспериментальная |
| Переносимость | переносимая |
| Safe Haskell | Безопасный |
| Язык | Haskell98 |
Содержание
Описание
Добавление нового типа чистого вычисления к аппликативному функтору.
Поднятие аппликативного выражения
data Lift f a Исходный код
Аппликативный функтор, образованный добавлением чистых вычислений к заданному аппликативному функтору.
Примеры реализации
| Functor f => Functor (Lift f) | |
| Applicative f => Applicative (Lift f) | Сочетание |
| Foldable f => Foldable (Lift f) | |
| Traversable f => Traversable (Lift f) | |
| Alternative f => Alternative (Lift f) | Сочетание |
| Show1 f => Show1 (Lift f) | |
unLift :: Applicative f => Lift f a -> f a Исходный код
Проекция на другой функтор.
mapLift :: (f a -> g a) -> Lift f a -> Lift g a Исходный код
Применение преобразования к другому вычислению.
Сбор ошибок
type Errors e = Lift (Constant e) Исходный код
Аппликативный функтор, собирающий моноид (например, списки) ошибок. Последовательность вычислений завершается неудачей, если хотя бы одно из ее составляющих завершается неудачей, но в отличие от монады, созданной с помощью ExceptT из Control.Monad.Trans.Except, эти вычисления продолжаются после ошибки, собирая все ошибки.
runErrors :: Errors e a -> Either e a Исходный код
Извлечение вычислений с накоплением ошибок.
failure :: Monoid e => e -> Errors e a Исходный код
Сообщить об ошибке.
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/transformers-0.4.2.0/Control-Applicative-Lift.html