aboutsummaryrefslogtreecommitdiff
path: root/sucl/absmodule.dcl
diff options
context:
space:
mode:
Diffstat (limited to 'sucl/absmodule.dcl')
-rw-r--r--sucl/absmodule.dcl13
1 files changed, 13 insertions, 0 deletions
diff --git a/sucl/absmodule.dcl b/sucl/absmodule.dcl
new file mode 100644
index 0000000..4b22b79
--- /dev/null
+++ b/sucl/absmodule.dcl
@@ -0,0 +1,13 @@
+definition module absmodule
+
+from rule import Rule
+
+:: Module sym pvar tsym tvar
+ = { exportedtypesymbols :: [tsym] // Exported type symbols (from DCL)
+ , typealias :: [(tsym,Rule tsym tvar)] // Alias types
+ , typeconstructors :: [(tsym,[sym])] // All constructor symbols of each declared algebraic type
+ , exportedsymbols :: [sym] // Exported function/constructor symbols
+ , aliases :: [(sym,Rule sym pvar)] // Macros
+ , typerules :: [(sym,Rule tsym tvar,[Bool])] // Info from type rules (actual type and argument strictnesses)
+ , rules :: [(sym,[Rule sym pvar])] // Rewrite rules of each symbol, absent if imported
+ }