reform-0.2.7.4: reform is a type-safe HTML form generation and validation library
Safe HaskellNone
LanguageHaskell98

Control.Applicative.Indexed

Description

This module provides a type-indexed / parameterized version of the Functor and Applicative classes.

Synopsis

type-indexed / parameterized classes

class IndexedFunctor f where Source #

a class for a 'type-indexed' or paramaterized functor

note: not sure what the most correct name is for this class, or if it exists in a well supported library already.

Methods

imap Source #

Arguments

:: (x -> y)

function to apply to first parameter

-> (a -> b)

function to apply to second parameter

-> f x a

indexed functor

-> f y b 

imap is similar to fmap

Instances

Instances details
Functor f => IndexedFunctor (WrappedApplicative f) Source # 
Instance details

Defined in Control.Applicative.Indexed

Methods

imap :: (x -> y) -> (a -> b) -> WrappedApplicative f x a -> WrappedApplicative f y b Source #

Monad m => IndexedFunctor (Form m input view error) Source # 
Instance details

Defined in Text.Reform.Core

Methods

imap :: (x -> y) -> (a -> b) -> Form m input view error x a -> Form m input view error y b Source #

class IndexedFunctor f => IndexedApplicative f where Source #

a class for a 'type-indexed' or paramaterized applicative functors

note: not sure what the most correct name is for this class, or if it exists in a well supported library already.

Minimal complete definition

ipure, (<<*>>)

Methods

ipure :: x -> a -> f x a Source #

similar to pure

(<<*>>) :: f (x -> y) (a -> b) -> f x a -> f y b infixl 4 Source #

similar to <*>

(*>>) :: f x a -> f y b -> f y b infixl 4 Source #

similar to *>

(<<*) :: f x a -> f y b -> f x a infixl 4 Source #

similar to <*

Instances

Instances details
Applicative f => IndexedApplicative (WrappedApplicative f) Source # 
Instance details

Defined in Control.Applicative.Indexed

(Monoid view, Monad m) => IndexedApplicative (Form m input error view) Source # 
Instance details

Defined in Text.Reform.Core

Methods

ipure :: x -> a -> Form m input error view x a Source #

(<<*>>) :: Form m input error view (x -> y) (a -> b) -> Form m input error view x a -> Form m input error view y b Source #

(*>>) :: Form m input error view x a -> Form m input error view y b -> Form m input error view y b Source #

(<<*) :: Form m input error view x a -> Form m input error view y b -> Form m input error view x a Source #

(<<$>>) :: IndexedFunctor f => (a -> b) -> f y a -> f y b infixl 4 Source #

similar to <$>. An alias for imap id

(<<**>>) :: IndexedApplicative f => f x a -> f (x -> y) (a -> b) -> f y b Source #

A variant of <<*>> with the arguments reversed.

liftIA :: IndexedApplicative f => (a -> b) -> (x -> y) -> f a x -> f b y Source #

Lift a function to actions. This function may be used as a value for imap in a IndexedFunctor instance.

liftIA2 :: IndexedApplicative f => (a -> b -> c) -> (x -> y -> z) -> f a x -> f b y -> f c z Source #

Lift a binary function to actions.

liftIA3 :: IndexedApplicative f => (a -> b -> c -> d) -> (w -> x -> y -> z) -> f a w -> f b x -> f c y -> f d z Source #

Lift a binary function to actions.

WrappedApplicative

newtype WrappedApplicative f index a Source #

a wrapper which lifts a value with an Applicative instance so that it can be used as an IndexedFunctor or IndexedApplicative

d :: WrappedApplicative Maybe y Char
d = WrappedApplicative (Just succ) <<*>> WrappedApplicative (Just 'c')

Constructors

WrappedApplicative 

Fields

Instances

Instances details
Applicative f => IndexedApplicative (WrappedApplicative f) Source # 
Instance details

Defined in Control.Applicative.Indexed

Functor f => IndexedFunctor (WrappedApplicative f) Source # 
Instance details

Defined in Control.Applicative.Indexed

Methods

imap :: (x -> y) -> (a -> b) -> WrappedApplicative f x a -> WrappedApplicative f y b Source #

Monad f => Monad (WrappedApplicative f index) Source # 
Instance details

Defined in Control.Applicative.Indexed

Methods

(>>=) :: WrappedApplicative f index a -> (a -> WrappedApplicative f index b) -> WrappedApplicative f index b

(>>) :: WrappedApplicative f index a -> WrappedApplicative f index b -> WrappedApplicative f index b

return :: a -> WrappedApplicative f index a

Functor f => Functor (WrappedApplicative f index) Source # 
Instance details

Defined in Control.Applicative.Indexed

Methods

fmap :: (a -> b) -> WrappedApplicative f index a -> WrappedApplicative f index b

(<$) :: a -> WrappedApplicative f index b -> WrappedApplicative f index a

Applicative f => Applicative (WrappedApplicative f index) Source # 
Instance details

Defined in Control.Applicative.Indexed

Methods

pure :: a -> WrappedApplicative f index a

(<*>) :: WrappedApplicative f index (a -> b) -> WrappedApplicative f index a -> WrappedApplicative f index b

liftA2 :: (a -> b -> c) -> WrappedApplicative f index a -> WrappedApplicative f index b -> WrappedApplicative f index c

(*>) :: WrappedApplicative f index a -> WrappedApplicative f index b -> WrappedApplicative f index b

(<*) :: WrappedApplicative f index a -> WrappedApplicative f index b -> WrappedApplicative f index a

Eq (f a) => Eq (WrappedApplicative f index a) Source # 
Instance details

Defined in Control.Applicative.Indexed

Methods

(==) :: WrappedApplicative f index a -> WrappedApplicative f index a -> Bool

(/=) :: WrappedApplicative f index a -> WrappedApplicative f index a -> Bool

Ord (f a) => Ord (WrappedApplicative f index a) Source # 
Instance details

Defined in Control.Applicative.Indexed

Methods

compare :: WrappedApplicative f index a -> WrappedApplicative f index a -> Ordering

(<) :: WrappedApplicative f index a -> WrappedApplicative f index a -> Bool

(<=) :: WrappedApplicative f index a -> WrappedApplicative f index a -> Bool

(>) :: WrappedApplicative f index a -> WrappedApplicative f index a -> Bool

(>=) :: WrappedApplicative f index a -> WrappedApplicative f index a -> Bool

max :: WrappedApplicative f index a -> WrappedApplicative f index a -> WrappedApplicative f index a

min :: WrappedApplicative f index a -> WrappedApplicative f index a -> WrappedApplicative f index a

Read (f a) => Read (WrappedApplicative f index a) Source # 
Instance details

Defined in Control.Applicative.Indexed

Methods

readsPrec :: Int -> ReadS (WrappedApplicative f index a)

readList :: ReadS [WrappedApplicative f index a]

readPrec :: ReadPrec (WrappedApplicative f index a)

readListPrec :: ReadPrec [WrappedApplicative f index a]

Show (f a) => Show (WrappedApplicative f index a) Source # 
Instance details

Defined in Control.Applicative.Indexed

Methods

showsPrec :: Int -> WrappedApplicative f index a -> ShowS

show :: WrappedApplicative f index a -> String

showList :: [WrappedApplicative f index a] -> ShowS