{-# LANGUAGE GADTs #-}
{-# OPTIONS_GHC -fno-do-lambda-eta-expansion -fno-warn-unused-imports #-}
module Text.Regex.Applicative.Types where
import Control.Applicative
newtype ThreadId = ThreadId Int
data Thread s r
= Thread
{ forall s r. Thread s r -> ThreadId
threadId_ :: ThreadId
, forall s r. Thread s r -> s -> [Thread s r]
_threadCont :: s -> [Thread s r]
}
| Accept r
threadId :: Thread s r -> Maybe ThreadId
threadId :: forall s r. Thread s r -> Maybe ThreadId
threadId Thread { threadId_ :: forall s r. Thread s r -> ThreadId
threadId_ = ThreadId
i } = ThreadId -> Maybe ThreadId
forall a. a -> Maybe a
Just ThreadId
i
threadId Thread s r
_ = Maybe ThreadId
forall a. Maybe a
Nothing
data Greediness = Greedy | NonGreedy
deriving (Int -> Greediness -> ShowS
[Greediness] -> ShowS
Greediness -> String
(Int -> Greediness -> ShowS)
-> (Greediness -> String)
-> ([Greediness] -> ShowS)
-> Show Greediness
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Greediness] -> ShowS
$cshowList :: [Greediness] -> ShowS
show :: Greediness -> String
$cshow :: Greediness -> String
showsPrec :: Int -> Greediness -> ShowS
$cshowsPrec :: Int -> Greediness -> ShowS
Show, ReadPrec [Greediness]
ReadPrec Greediness
Int -> ReadS Greediness
ReadS [Greediness]
(Int -> ReadS Greediness)
-> ReadS [Greediness]
-> ReadPrec Greediness
-> ReadPrec [Greediness]
-> Read Greediness
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Greediness]
$creadListPrec :: ReadPrec [Greediness]
readPrec :: ReadPrec Greediness
$creadPrec :: ReadPrec Greediness
readList :: ReadS [Greediness]
$creadList :: ReadS [Greediness]
readsPrec :: Int -> ReadS Greediness
$creadsPrec :: Int -> ReadS Greediness
Read, Greediness -> Greediness -> Bool
(Greediness -> Greediness -> Bool)
-> (Greediness -> Greediness -> Bool) -> Eq Greediness
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Greediness -> Greediness -> Bool
$c/= :: Greediness -> Greediness -> Bool
== :: Greediness -> Greediness -> Bool
$c== :: Greediness -> Greediness -> Bool
Eq, Eq Greediness
Eq Greediness
-> (Greediness -> Greediness -> Ordering)
-> (Greediness -> Greediness -> Bool)
-> (Greediness -> Greediness -> Bool)
-> (Greediness -> Greediness -> Bool)
-> (Greediness -> Greediness -> Bool)
-> (Greediness -> Greediness -> Greediness)
-> (Greediness -> Greediness -> Greediness)
-> Ord Greediness
Greediness -> Greediness -> Bool
Greediness -> Greediness -> Ordering
Greediness -> Greediness -> Greediness
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Greediness -> Greediness -> Greediness
$cmin :: Greediness -> Greediness -> Greediness
max :: Greediness -> Greediness -> Greediness
$cmax :: Greediness -> Greediness -> Greediness
>= :: Greediness -> Greediness -> Bool
$c>= :: Greediness -> Greediness -> Bool
> :: Greediness -> Greediness -> Bool
$c> :: Greediness -> Greediness -> Bool
<= :: Greediness -> Greediness -> Bool
$c<= :: Greediness -> Greediness -> Bool
< :: Greediness -> Greediness -> Bool
$c< :: Greediness -> Greediness -> Bool
compare :: Greediness -> Greediness -> Ordering
$ccompare :: Greediness -> Greediness -> Ordering
Ord, Int -> Greediness
Greediness -> Int
Greediness -> [Greediness]
Greediness -> Greediness
Greediness -> Greediness -> [Greediness]
Greediness -> Greediness -> Greediness -> [Greediness]
(Greediness -> Greediness)
-> (Greediness -> Greediness)
-> (Int -> Greediness)
-> (Greediness -> Int)
-> (Greediness -> [Greediness])
-> (Greediness -> Greediness -> [Greediness])
-> (Greediness -> Greediness -> [Greediness])
-> (Greediness -> Greediness -> Greediness -> [Greediness])
-> Enum Greediness
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: Greediness -> Greediness -> Greediness -> [Greediness]
$cenumFromThenTo :: Greediness -> Greediness -> Greediness -> [Greediness]
enumFromTo :: Greediness -> Greediness -> [Greediness]
$cenumFromTo :: Greediness -> Greediness -> [Greediness]
enumFromThen :: Greediness -> Greediness -> [Greediness]
$cenumFromThen :: Greediness -> Greediness -> [Greediness]
enumFrom :: Greediness -> [Greediness]
$cenumFrom :: Greediness -> [Greediness]
fromEnum :: Greediness -> Int
$cfromEnum :: Greediness -> Int
toEnum :: Int -> Greediness
$ctoEnum :: Int -> Greediness
pred :: Greediness -> Greediness
$cpred :: Greediness -> Greediness
succ :: Greediness -> Greediness
$csucc :: Greediness -> Greediness
Enum)
data RE s a where
Eps :: RE s ()
Symbol :: ThreadId -> (s -> Maybe a) -> RE s a
Alt :: RE s a -> RE s a -> RE s a
App :: RE s (a -> b) -> RE s a -> RE s b
Fmap :: (a -> b) -> RE s a -> RE s b
Fail :: RE s a
Rep :: Greediness
-> (b -> a -> b)
-> b
-> RE s a
-> RE s b
Void :: RE s a -> RE s ()