summaryrefslogtreecommitdiff
path: root/miralib/manual/19
diff options
context:
space:
mode:
Diffstat (limited to 'miralib/manual/19')
-rw-r--r--miralib/manual/1918
1 files changed, 18 insertions, 0 deletions
diff --git a/miralib/manual/19 b/miralib/manual/19
new file mode 100644
index 0000000..b3cb620
--- /dev/null
+++ b/miralib/manual/19
@@ -0,0 +1,18 @@
+_T_y_p_e_ _s_y_n_o_n_y_m_ _d_e_c_l_a_r_a_t_i_o_n_s
+
+These permit the user to introduce a new name for an already existing
+type, e.g.
+ string == [char]
+type synonyms are entirely transparent to the typechecker (it best to
+think of them as being just macros). For obvious reasons, recursive type
+synonyms are not permitted.
+
+It is also possible to introduce a synonym for a type forming operator,
+by introducing generic type variable as parameters of the definition,
+e.g.
+ invt * ** == (*->**)->(**->*)
+
+So within a script containing the above two `==' definitions, the type
+`invt num string' will be shorthand for
+ (num->[char])->([char]->num)
+