From 8f88e4bf4b380e2f09d046fbef05fca452eae62c Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Sat, 20 May 2017 18:29:24 -0400 Subject: WIP - Added analysis and type-inference for records and tagged variants. - Extracted inference code to a separate module for better reuse. --- new-luxc/source/luxc/analyser.lux | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'new-luxc/source/luxc/analyser.lux') diff --git a/new-luxc/source/luxc/analyser.lux b/new-luxc/source/luxc/analyser.lux index d8f5abe9b..90140afb4 100644 --- a/new-luxc/source/luxc/analyser.lux +++ b/new-luxc/source/luxc/analyser.lux @@ -63,6 +63,9 @@ (^ (#;Tuple elems)) (&&struct;analyse-tuple analyse elems) + (^ (#;Record pairs)) + (&&struct;analyse-record analyse pairs) + (#;Symbol reference) (&&reference;analyse-reference reference) @@ -92,6 +95,10 @@ value))) (&&struct;analyse-variant analyse tag value) + (^ (#;Form (list [_ (#;Tag tag)] + value))) + (&&struct;analyse-tagged-variant analyse tag value) + (^ (#;Form (list& func args))) (do Monad [[funcT =func] (&&common;with-unknown-type -- cgit v1.2.3