module StringRewriting.Generator (
    Generator,
    generator,
    numGenerator,
    GWord,
  ) where

newtype Generator = G { Generator -> Int
numGenerator :: Int }
    deriving (Generator -> Generator -> Bool
(Generator -> Generator -> Bool)
-> (Generator -> Generator -> Bool) -> Eq Generator
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Generator -> Generator -> Bool
$c/= :: Generator -> Generator -> Bool
== :: Generator -> Generator -> Bool
$c== :: Generator -> Generator -> Bool
Eq, Eq Generator
Eq Generator
-> (Generator -> Generator -> Ordering)
-> (Generator -> Generator -> Bool)
-> (Generator -> Generator -> Bool)
-> (Generator -> Generator -> Bool)
-> (Generator -> Generator -> Bool)
-> (Generator -> Generator -> Generator)
-> (Generator -> Generator -> Generator)
-> Ord Generator
Generator -> Generator -> Bool
Generator -> Generator -> Ordering
Generator -> Generator -> Generator
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 :: Generator -> Generator -> Generator
$cmin :: Generator -> Generator -> Generator
max :: Generator -> Generator -> Generator
$cmax :: Generator -> Generator -> Generator
>= :: Generator -> Generator -> Bool
$c>= :: Generator -> Generator -> Bool
> :: Generator -> Generator -> Bool
$c> :: Generator -> Generator -> Bool
<= :: Generator -> Generator -> Bool
$c<= :: Generator -> Generator -> Bool
< :: Generator -> Generator -> Bool
$c< :: Generator -> Generator -> Bool
compare :: Generator -> Generator -> Ordering
$ccompare :: Generator -> Generator -> Ordering
$cp1Ord :: Eq Generator
Ord)

generator :: Int -> Generator
generator :: Int -> Generator
generator = Int -> Generator
G

type GWord = [Generator]