-- 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.3

-- | 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 GHC.Base.Applicative (Harp.Match.Match e)
instance GHC.Base.Functor (Harp.Match.Match e)
instance GHC.Base.Monad (Harp.Match.Match e)
