let build_map_track_errors builder alist =
    match List.fold_left builder (StringMap.empty, []) alist with
        | (value, []) -> Left(value)
        | (_, errors) -> Right(errors)