The duplicated file is c10/util/variant.h vs /usr/include/arrow/vendored/variant.hpp
I think they both twisted from boost lib.
MPARK_LIB_HPP is defined in c10/util/variant.h first, so the code block for MPARK_LIB_HPP won’t be included from /usr/include/arrow/vendored/variant.hpp. That’s why you have so many lib is not declared.
I think probably separate into 2 parts is the correct way given this situation.