summaryrefslogtreecommitdiff
path: root/doc/transfer-reference.txt
diff options
context:
space:
mode:
authorbringert <bringert@cs.chalmers.se>2005-12-07 09:46:21 +0000
committerbringert <bringert@cs.chalmers.se>2005-12-07 09:46:21 +0000
commit06c3d3e004425ba0e24b88217343b4146885f096 (patch)
tree4ffd6b1ff28ecfcba2d2afead3ed4f0b099a0deb /doc/transfer-reference.txt
parent67395b24d90c1cdd43393077de455ff6f5850ac0 (diff)
Transfer reference: added metavariable section and implementation status section.
Diffstat (limited to 'doc/transfer-reference.txt')
-rw-r--r--doc/transfer-reference.txt32
1 files changed, 25 insertions, 7 deletions
diff --git a/doc/transfer-reference.txt b/doc/transfer-reference.txt
index dd16e2d39..a7d534363 100644
--- a/doc/transfer-reference.txt
+++ b/doc/transfer-reference.txt
@@ -2,7 +2,6 @@ Transfer language reference
Author: Björn Bringert <bringert@cs.chalmers.se>
Last update: %%date(%c)
-
% NOTE: this is a txt2tags file.
% Create an html file from this file using:
% txt2tags transfer.txt
@@ -11,10 +10,6 @@ Last update: %%date(%c)
%!options(html): --toc
-
-
-
-
This document describes the features of the Transfer language.
See the [Transfer tutorial transfer-tutorial.html]
for an example of a Transfer program, and how to compile and use
@@ -23,6 +18,16 @@ Transfer programs.
Transfer is a dependently typed functional programming language
with eager evaluation.
+== Current implementation status ==
+
+**Not all features of the Transfer language have been implemented yet**. The most
+important missing piece is the type checker. This means that there are almost
+no checks done on Transfer programs before they are run. It also means that
+the values of metavariables are not inferred. Thus metavariables cannot
+be used where their values matter. For example, dictionaries for overlaoded
+functions must be given explicitly, not as metavariables.
+
+
== Layout syntax==
Transfer uses layout syntax, where the indentation of a piece of code
@@ -401,9 +406,22 @@ String literals can be used as patterns.
Integer literals can be used as patterns.
-== Meta variables ==
+== Metavariables ==
+
+Metavariable are written as questions marks:
+
+```
+?
+```
+
+A metavariable is a way to the the Transfer type checker that:
+"you should be able to figure out what this should be,
+I can't be bothered to tell you".
+
+Metavariables can be used to avoid having to give type variables
+and dictionaries explicitly.
-== Type classes ==
+== Overloaded functions / Type classes ==
== Operators ==