Maintainer | bastiaan.heeren@ou.nl |
---|---|

Stability | provisional |

Portability | portable (depends on ghc) |

Safe Haskell | None |

Language | Haskell98 |

This module defines extra combinators.

## Synopsis

- permute :: (Choice a, Sequence a) => [a] -> a
- many :: (Sequence a, Fix a, Choice a) => a -> a
- many1 :: (Sequence a, Fix a, Choice a) => a -> a
- replicate :: Sequence a => Int -> a -> a
- option :: (Choice a, Sequence a) => a -> a
- try :: (Choice a, Sequence a) => a -> a
- repeat :: (Sequence a, Fix a, Choice a) => a -> a
- repeat1 :: (Sequence a, Fix a, Choice a) => a -> a
- exhaustive :: (Sequence a, Fix a, Choice a) => [a] -> a
- atomic :: AtomicSymbol a => Process a -> Process a
- (<%>) :: (AtomicSymbol a, LabelSymbol a) => Process a -> Process a -> Process a
- interleave :: (AtomicSymbol a, LabelSymbol a) => [Process a] -> Process a
- (<@>) :: AtomicSymbol a => Process a -> Process a -> Process a
- (!*>) :: AtomicSymbol a => Process a -> Process a -> Process a
- inits :: AtomicSymbol a => Process a -> Process a
- filterP :: (a -> Bool) -> Process a -> Process a
- hide :: (a -> Bool) -> Process a -> Process a

# General combinators

option :: (Choice a, Sequence a) => a -> a Source #

Apply a certain strategy or do nothing (non-greedy)

try :: (Choice a, Sequence a) => a -> a Source #

Apply a certain strategy if this is possible (greedy version of `option`

)

repeat :: (Sequence a, Fix a, Choice a) => a -> a Source #

Repeat a strategy zero or more times (greedy version of `many`

)

repeat1 :: (Sequence a, Fix a, Choice a) => a -> a Source #

Apply a certain strategy at least once (greedy version of `many1`

)

exhaustive :: (Sequence a, Fix a, Choice a) => [a] -> a Source #

Apply the strategies from the list exhaustively (until this is no longer possible)

# Process-specific combinators

(<%>) :: (AtomicSymbol a, LabelSymbol a) => Process a -> Process a -> Process a Source #

interleave :: (AtomicSymbol a, LabelSymbol a) => [Process a] -> Process a Source #