@@ -1,4 +1,5 @@
11{-# LANGUAGE TypeFamilies #-}
2+{-# LANGUAGE ConstraintKinds #-}
23{-# LANGUAGE MultiParamTypeClasses #-}
34{- |
45Module : Data.Syntax.Char
@@ -14,6 +15,7 @@ Common combinators that work with sequences of chars.
1415-}
1516module Data.Syntax.Char (
1617 SyntaxChar(..),
18+ SyntaxText,
1719 signed,
1820 spaces,
1921 spaces_,
@@ -28,6 +30,7 @@ import Data.Scientific (Scientific)
2830import Data.SemiIsoFunctor
2931import Data.Syntax
3032import Data.Syntax.Combinator
33+import Data.Text (Text)
3134
3235-- | Syntax constrainted to sequences of chars.
3336--
@@ -42,6 +45,9 @@ class (Syntax syn seq, Element seq ~ Char) => SyntaxChar syn seq where
4245
4346 {-# MINIMAL decimal, scientific #-}
4447
48+-- | An useful synonym for SyntaxChars with Text sequences.
49+type SyntaxText syn = SyntaxChar syn Text
50+
4551-- | A number with an optional leading '+' or '-' sign character.
4652signed :: (Real a, SyntaxChar syn seq) => syn a -> syn a
4753signed n = _Negative /$/ char '-' */ n