-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | HaRP allows pattern-matching with regular expressions
--
-- HaRP, or Haskell Regular Patterns, is a Haskell extension that extends
-- the normal pattern matching facility with the power of regular
-- expressions. This expressive power is highly useful in a wide range of
-- areas, including text parsing and XML processing. Regular expression
-- patterns in HaRP work over ordinary Haskell lists ([]) of arbitrary
-- type. We have implemented HaRP as a pre-processor to ordinary Haskell.
--
-- For details on usage, please see the website.
@package harp
@version 0.4
-- | Functions that simulate the behavior of regular patterns using a Match
-- monad for parsing lists.
module Harp.Match
-- | The Match monad
data Match e a
runMatch :: Match e a -> [e] -> Maybe a
baseMatch :: (a -> Maybe b) -> Match a (a, b)
manyMatch :: Match e a -> Match e [a]
gManyMatch :: Match e a -> Match e [a]
foldComp :: [[a] -> [a]] -> ([a] -> [a])
unzip0 :: [()] -> ()
unzip1 :: [a] -> [a]
unzip2 :: [(a, b)] -> ([a], [b])
-- | The unzip3 function takes a list of triples and returns three
-- lists, analogous to unzip.
unzip3 :: [(a, b, c)] -> ([a], [b], [c])
-- | The unzip4 function takes a list of quadruples and returns four
-- lists, analogous to unzip.
unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
-- | The unzip5 function takes a list of five-tuples and returns
-- five lists, analogous to unzip.
unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
-- | The unzip6 function takes a list of six-tuples and returns six
-- lists, analogous to unzip.
unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
-- | The unzip7 function takes a list of seven-tuples and returns
-- seven lists, analogous to unzip.
unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
(+++) :: Match e a -> Match e a -> Match e a
instance Monad (Match e)