free-5.1.10: Monads for free
Copyright (C) 2012 Edward Kmett
License BSD-style (see the file LICENSE)
Maintainer Edward Kmett <ekmett@gmail.com>
Stability provisional
Portability GADTs, Rank2Types
Safe Haskell Safe
Language Haskell2010

Control.Alternative.Free.Final

Description

Final encoding of free Alternative functors.

Synopsis

Documentation

newtype Alt f a Source #

The free Alternative for any f .

Constructors

Alt

Fields

Instances

Instances details
Functor ( Alt f) Source #
Instance details

Defined in Control.Alternative.Free.Final

Methods

fmap :: (a -> b) -> Alt f a -> Alt f b Source #

(<$) :: a -> Alt f b -> Alt f a Source #

Applicative ( Alt f) Source #
Instance details

Defined in Control.Alternative.Free.Final

Alternative ( Alt f) Source #
Instance details

Defined in Control.Alternative.Free.Final

Alt ( Alt f) Source #
Instance details

Defined in Control.Alternative.Free.Final

Apply ( Alt f) Source #
Instance details

Defined in Control.Alternative.Free.Final

Methods

(<.>) :: Alt f (a -> b) -> Alt f a -> Alt f b Source #

(.>) :: Alt f a -> Alt f b -> Alt f b Source #

(<.) :: Alt f a -> Alt f b -> Alt f a Source #

liftF2 :: (a -> b -> c) -> Alt f a -> Alt f b -> Alt f c Source #

Semigroup ( Alt f a) Source #
Instance details

Defined in Control.Alternative.Free.Final

Monoid ( Alt f a) Source #
Instance details

Defined in Control.Alternative.Free.Final

runAlt :: forall f g a. Alternative g => ( forall x. f x -> g x) -> Alt f a -> g a Source #

Given a natural transformation from f to g , this gives a canonical monoidal natural transformation from Alt f to g .

liftAlt :: f a -> Alt f a Source #

A version of lift that can be used with f .

hoistAlt :: ( forall a. f a -> g a) -> Alt f b -> Alt g b Source #

Given a natural transformation from f to g this gives a monoidal natural transformation from Alt f to Alt g .