@@ -1,4 +1,5 @@
1{-# LANGUAGE TypeFamilies #-}
1{-# LANGUAGE TypeFamilies #-}
2+{-# LANGUAGE ConstraintKinds #-}
2{-# LANGUAGE MultiParamTypeClasses #-}
3{-# LANGUAGE MultiParamTypeClasses #-}
4Module : Data.Syntax.Char
5Module : Data.Syntax.Char
@@ -14,6 +15,7 @@ Common combinators that work with sequences of chars.
15module Data.Syntax.Char (
16module Data.Syntax.Char (
16 SyntaxChar(..),
17 SyntaxChar(..),
@@ -28,6 +30,7 @@ import Data.Scientific (Scientific)
28import Data.SemiIsoFunctor
30import Data.SemiIsoFunctor
29import Data.Syntax
31import Data.Syntax
30import Data.Syntax.Combinator
32import Data.Syntax.Combinator
33+import Data.Text (Text)
32-- | Syntax constrainted to sequences of chars.
35-- | Syntax constrainted to sequences of chars.
@@ -42,6 +45,9 @@ class (Syntax syn seq, Element seq ~ Char) => SyntaxChar syn seq where
43 {-# MINIMAL decimal, scientific #-}
46 {-# MINIMAL decimal, scientific #-}
48+-- | An useful synonym for SyntaxChars with Text sequences.
49+type SyntaxText syn = SyntaxChar syn Text
45-- | A number with an optional leading '+' or '-' sign character.
51-- | A number with an optional leading '+' or '-' sign character.
46signed :: (Real a, SyntaxChar syn seq) => syn a -> syn a
52signed :: (Real a, SyntaxChar syn seq) => syn a -> syn a
47signed n = _Negative /$/ char '-' */ n
53signed n = _Negative /$/ char '-' */ n