diff --git a/pymbolic/typing.py b/pymbolic/typing.py
new file mode 100644
index 0000000000000000000000000000000000000000..49d1ac6cc0f8636183cd6730ab8cee5cfdabec4c
--- /dev/null
+++ b/pymbolic/typing.py
@@ -0,0 +1,14 @@
+from pymbolic.primitives import Expression
+from numbers import Number
+from typing import Union
+
+try:
+    import numpy as np
+except ImportError:
+    BoolT = bool
+else:
+    BoolT = Union[bool, np.bool_]
+
+
+ScalarT = Union[Number, int, BoolT, float]
+ExpressionT = Union[ScalarT, Expression]