Add IsString instances.
authorJulien Moutinho <julm+symantic@autogeree.net>
Thu, 23 Mar 2017 23:30:31 +0000 (00:30 +0100)
committerJulien Moutinho <julm+symantic@autogeree.net>
Thu, 23 Mar 2017 23:30:31 +0000 (00:30 +0100)
symantic/Language/Symantic/Compiling/Term/Grammar.hs
symantic/Language/Symantic/Typing/Type.hs

index fc12aa483f3df79a74150b5d85a72c3fefe1f23f..37b32524577b1d14cfec855a81de79518667fe11 100644 (file)
@@ -15,6 +15,7 @@ import           Data.Map.Strict (Map)
 import qualified Data.Map.Strict as Map
 import Data.Proxy (Proxy(..))
 import Data.Semigroup (Semigroup(..))
+import Data.String (IsString(..))
 import Data.Text (Text)
 import qualified Data.Text as Text
 import Prelude hiding (mod, not, any)
@@ -25,6 +26,8 @@ import Language.Symantic.Typing
 -- * Type 'Term_Name'
 newtype Term_Name = Term_Name Text
  deriving (Eq, Ord, Show)
+instance IsString Term_Name where
+       fromString = Term_Name . fromString
 
 -- * Type 'ProTok'
 -- | Proto 'EToken'. It's almost like a free monad,
index bb386b43e723cc7b981c2cc04db1c4b2c082eb3e..22912c490a14bec9cdfa2195d3ed345532977f95 100644 (file)
@@ -12,6 +12,7 @@ import qualified Data.Char as Char
 import Data.Monoid ((<>))
 import Data.Proxy
 import Data.Maybe (fromMaybe, isJust)
+import Data.String (IsString(..))
 import Data.Text (Text)
 import qualified Data.Text as Text
 import Data.Type.Equality
@@ -131,6 +132,8 @@ type Token_Type = Type '[] ()
 -- * Type 'TyName'
 newtype TyName = TyName Text
  deriving (Eq, Ord, Show)
+instance IsString TyName where
+       fromString = TyName . fromString
 
 data instance TokenT meta ts (Proxy Token_Type)
  = Token_Type TyName [EToken meta ts]