             (sexp-to-constructors constructors)))
             (sexp-to-type name)))
 
-(def sexp-to-function-definition (name-symbol rest range)
+(def sexp-to-function-name (name-symbol)
      (match name-symbol
             (Symbol name _)
-                (Result (FunctionDefinition name rest range))
+                (Result name))
             (List _ range)
-                (Error (MalformedFunctionNameError range))))
+                (Error (MalformedFunctionNameError range)))
+
+(def sexp-to-function-definition (name-symbol rest range)
+     (result-map (fn (name)
+                     (FunctionDefinition name Empty rest range))
+                 (sexp-to-function-name name-symbol)))
 
 (def sexp-to-definition' (kind name rest range)
      (match (type-definition? (symbol-name kind))

     (match definition
            (Result (TypeDefinition type constructors range))
                (type-definition-to-sexp type constructors range)
            (Result (FunctionDefinition name rest range))
                (function-definition-to-sexp name rest range)
            (Result (OptOut sexp range))
                (List sexp range)

(typ constructor   (SimpleConstructor   (list int32) range)
                   (ComplexConstructor  (list int32) (list type) range))
(typ definition    (TypeDefinition      type (list constructor) range)
                   (FunctionDefinition  (list int32) (list (list int32)) sexp range)
                   (OptOut              sexp))

(typ error         (MalformedDefinitionError range)
