incremental-parser-0.5.1: Generic parser library capable of providing partial results from partial input.

Safe Haskell | Safe-Inferred
Language | Haskell2010

Control.Applicative.Monoid

Description

This module defines the `MonoidApplicative` and `MonoidAlternative` type classes. Their methods are specialized forms of the standard `Applicative` and `Alternative` class methods. Instances of these classes should override the default method implementations with more efficient ones.

# Documentation

class Applicative f => MonoidApplicative (f :: Type -> Type) where Source #

Minimal complete definition

Nothing

Methods

(+<*>) :: f (a -> a) -> f a -> f a infixl 4 Source #

A variant of the Applicative's `<*>` operator specialized for endomorphic functions.

(><) :: Semigroup a => f a -> f a -> f a infixl 5 Source #

Lifted and potentially optimized monoid `mappend` operation from the parameter type.

#### Instances

Instances details

Monoid s => MonoidApplicative (Parser t s) Source # | The `+<*>` operator is specialized to return incremental parsing results.
Instance details Defined in Text.ParserCombinators.Incremental Methods (+<*>) :: Parser t s (a -> a) -> Parser t s a -> Parser t s a Source # (><) :: Semigroup a => Parser t s a -> Parser t s a -> Parser t s a Source #

class (Alternative f, MonoidApplicative f) => MonoidAlternative (f :: Type -> Type) where Source #

Minimal complete definition

Nothing

Methods

moptional :: (Semigroup a, Monoid a) => f a -> f a Source #

Like `optional`, but restricted to `Monoid` results.

concatMany :: (Semigroup a, Monoid a) => f a -> f a Source #

Zero or more argument occurrences like `many`, but concatenated.

concatSome :: (Semigroup a, Monoid a) => f a -> f a Source #

One or more argument occurrences like `some`, but concatenated.

#### Instances

Instances details

(Alternative (Parser t s), Monoid s) => MonoidAlternative (Parser t s) Source # |
Instance details Defined in Text.ParserCombinators.Incremental Methods moptional :: (Semigroup a, Monoid a) => Parser t s a -> Parser t s a Source # concatMany :: (Semigroup a, Monoid a) => Parser t s a -> Parser t s a Source # concatSome :: (Semigroup a, Monoid a) => Parser t s a -> Parser t s a Source #