 (def sexp-to-type (type)
      (match type
             (List (Cons (Symbol name _) parameters) range)
-                (sexp-to-complex-or-function-type name
-                                                  parameters
-                                                  range)
+                (sexp-to-complex-or-function-type name parameters range)
             (Symbol name range)
                 (Result (SimpleType name range))
             (List _ range)

(def sexp-to-function-body (range rest)
     (match rest
            (Cons (List arguments _) (Cons expression Empty))
                    (Result (Pair arguments expression))
            _
                    (Error (MalformedExpressionError range)))) 
 
(def sexp-to-lambda (rest range)
     (result-flatmap (fn (body)


(def symbol-to-string (symbol)
     (match symbol
            (Symbol name _)
                (Result name)
            (List _ range)
                (Error  (MalformedSymbolError range))))

(typ type          (SimpleType           (list int32) range)
                   (ComplexType          (list int32) (list type) range)
