Safe Haskell | None |
---|---|
Language | Haskell2010 |
Example of tree regular expressions over
a family of regular data types.
Click on Source
to view the code.
- data Ty
- data Bis f ix where
- type FixOne = Fix Bis One
- type FixTwo = Fix Bis Two
- pattern (~) Ty t One => NilOne :: Fix Ty Bis t
- pattern (~) Ty t One => ConsOne Int (Fix Ty Bis Two) :: Fix Ty Bis t
- pattern (~) Ty t Two => NilTwo :: Fix Ty Bis t
- pattern (~) Ty t Two => ConsTwo Char (Fix Ty Bis One) :: Fix Ty Bis t
- aBis1 :: FixOne
- aBis2 :: FixOne
- rBis1 :: Regex (Wrap Char) Bis One
- rBis2 :: Regex c Bis One
- rBis3 :: Regex c Bis One
- rBis4 :: Regex c Bis One
- rBis5 :: Regex c Bis One
- cBis1 :: Wrap Integer One -> Regex (Wrap Integer) Bis One
- eBis1 :: FixOne -> [FixOne]
- eBis2 :: FixOne -> [FixOne]
- grammar1 :: IndexIndependentGrammar (Wrap Integer) Bis () String
Data type definition
Generic1m Ty Bis | Implementation of |
SingI Ty Two | |
SingI Ty One | |
ArbitraryM Ty (Fix Ty Bis) | |
ShowM Ty (Fix Ty Bis) | |
Eq (Sing Ty a) | |
Show (Fix Ty Bis Two) | |
Show (Fix Ty Bis One) | |
data Sing Ty where | |
type Rep1m Ty Bis = (:++:) Ty (Tag1m Ty (U1m (Ty -> *) Ty) One) ((:++:) Ty (Tag1m Ty ((:**:) (Ty -> *) Ty (K1m * (Ty -> *) Ty () Int) (Par1m Ty Two)) One) ((:++:) Ty (Tag1m Ty (U1m (Ty -> *) Ty) Two) (Tag1m Ty ((:**:) (Ty -> *) Ty (K1m * (Ty -> *) Ty () Char) (Par1m Ty One)) Two))) |
NilOne' :: Bis f One | |
ConsOne' :: Int -> f Two -> Bis f One | |
NilTwo' :: Bis f Two | |
ConsTwo' :: Char -> f One -> Bis f Two |
Generic1m Ty Bis | Implementation of |
ArbitraryM Ty (Fix Ty Bis) | |
ShowM Ty (Fix Ty Bis) | |
Show (Fix Ty Bis Two) | |
Show (Fix Ty Bis One) | |
type Rep1m Ty Bis = (:++:) Ty (Tag1m Ty (U1m (Ty -> *) Ty) One) ((:++:) Ty (Tag1m Ty ((:**:) (Ty -> *) Ty (K1m * (Ty -> *) Ty () Int) (Par1m Ty Two)) One) ((:++:) Ty (Tag1m Ty (U1m (Ty -> *) Ty) Two) (Tag1m Ty ((:**:) (Ty -> *) Ty (K1m * (Ty -> *) Ty () Char) (Par1m Ty One)) Two))) |