summaryrefslogtreecommitdiff
path: root/src/Script
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2026-08-27 20:34:57 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2026-08-27 23:04:38 +0200
commit0cbbe31c5f16df73dcc3a73b37cac4a72948f3a6 (patch)
treef607a68d575ac670b9a637a967eabbe56f9257aa /src/Script
parentd8420a37ffe9e752816b071fced4a972ca1fad23 (diff)
Accept various builtin types in type expressions
Diffstat (limited to 'src/Script')
-rw-r--r--src/Script/Expr.hs5
-rw-r--r--src/Script/Expr/Class.hs14
2 files changed, 11 insertions, 8 deletions
diff --git a/src/Script/Expr.hs b/src/Script/Expr.hs
index 09b7c80..e6f945d 100644
--- a/src/Script/Expr.hs
+++ b/src/Script/Expr.hs
@@ -8,6 +8,7 @@ module Script.Expr (
FunctionType, DynamicType,
ExprType(..), SomeExpr(..),
+ SomePrimType(..),
TypeVar(..), SomeExprType(..), someExprType, textSomeExprType,
renameTypeVar, renameVarInType,
@@ -293,6 +294,8 @@ instance ExprType DynamicType where
data SomeExpr = forall a. ExprType a => SomeExpr (Expr a)
+data SomePrimType = forall a. ExprType a => SomePrimType (Proxy a)
+
newtype TypeVar = TypeVar Text
deriving (Eq, Ord)
@@ -569,7 +572,7 @@ data Regex = RegexCompiled Text RE.Regex
| RegexString Text
instance ExprType Regex where
- textExprType _ = T.pack "regex"
+ textExprType _ = T.pack "Regex"
textExprValue _ = T.pack "<regex>"
exprExpansionConvFrom = listToMaybe $ catMaybes
diff --git a/src/Script/Expr/Class.hs b/src/Script/Expr/Class.hs
index 5bf8a4b..1a6082a 100644
--- a/src/Script/Expr/Class.hs
+++ b/src/Script/Expr/Class.hs
@@ -57,7 +57,7 @@ instance ExprType () where
textExprValue () = "()"
instance ExprType Integer where
- textExprType _ = T.pack "integer"
+ textExprType _ = T.pack "Integer"
textExprValue x = T.pack (show x)
exprExpansionConvTo = listToMaybe $ catMaybes
@@ -67,7 +67,7 @@ instance ExprType Integer where
exprEnumerator _ = Just $ ExprEnumerator enumFromTo enumFromThenTo
instance ExprType Scientific where
- textExprType _ = T.pack "number"
+ textExprType _ = T.pack "Number"
textExprValue x = T.pack (show x)
exprExpansionConvTo = listToMaybe $ catMaybes
@@ -75,16 +75,16 @@ instance ExprType Scientific where
]
instance ExprType Bool where
- textExprType _ = T.pack "bool"
- textExprValue True = T.pack "true"
- textExprValue False = T.pack "false"
+ textExprType _ = T.pack "Bool"
+ textExprValue True = T.pack "True"
+ textExprValue False = T.pack "False"
instance ExprType Text where
- textExprType _ = T.pack "string"
+ textExprType _ = T.pack "String"
textExprValue x = T.pack (show x)
instance ExprType Void where
- textExprType _ = T.pack "void"
+ textExprType _ = T.pack "Void"
textExprValue _ = T.pack "<void>"
instance ExprType a => ExprType [ a ] where