descriptive-0.0.0: Self-describing consumers/parsers; forms, cmd-line args, JSON, etc.

Safe HaskellSafe-Inferred
LanguageHaskell98

Descriptive

Description

Descriptive parsers.

Synopsis

Documentation

data Description a Source

Description of a consumable thing.

Instances

data Bound Source

The bounds of a many-consumable thing.

Instances

data Consumer s d a Source

A consumer.

Constructors

Consumer 

Fields

consumerDesc :: s -> (Description d, s)
 
consumerParse :: s -> (Either (Description d) a, s)
 

Instances

consumer :: (s -> (Description d, s)) -> (s -> (Either (Description d) a, s)) -> Consumer s d a Source

Make a consumer.

wrap :: (s -> (t -> (Description d, t)) -> (Description d, s)) -> (s -> (t -> (Description d, t)) -> (t -> (Either (Description d) a, t)) -> (Either (Description d) b, s)) -> Consumer t d a -> Consumer s d b Source

Wrap a consumer with another consumer.

sequencing :: [Consumer d s a] -> Consumer d s [a] Source

Compose contiguous items into one sequence.

consume :: Consumer s d a -> s -> (Either (Description d) a, s) Source

Run a consumer.

describe :: Consumer s d a -> s -> (Description d, s) Source

Describe a consumer.