let sast_to_cast_func (func : Sast.func_def) : cfunc =
    let name = match func.host, func.builtin with
        | _, true -> func.uid
        | None, _ -> get_fname func
        | Some(host), _ -> get_rname func in
    {   returns = opt_tname func.returns;
        name = name;
        formals = List.map get_vdef func.formals;
        body = cstmtlist func.name func.body;
        builtin = func.builtin;
        inklass = func.inklass;
        static  = func.static;
    }