diff --git a/tl_expected/include/tl_expected/expected.hpp b/tl_expected/include/tl_expected/expected.hpp
index ae90975..b04d6c7 100644
--- a/tl_expected/include/tl_expected/expected.hpp
+++ b/tl_expected/include/tl_expected/expected.hpp
@@ -13,6 +13,18 @@
// .
///
+// If the system header is available, redirect to it.
+// Otherwise, fall back to the vendored version with a deprecation warning.
+#if __has_include()
+#include
+#else
+#warning "tl_expected/expected.hpp is deprecated. Please install libexpected-dev and use instead."
+#warning "tl_expected/expected.hpp is deprecated. Use from libexpected-dev, or if the system header is not available."
+// If the system header is available, redirect to it.
+// Otherwise, fall back to the vendored version
+#if __has_include()
+#include
+#else
#ifndef TL_EXPECTED_HPP
#define TL_EXPECTED_HPP
@@ -2480,4 +2492,6 @@ void swap(expected &lhs,
}
} // namespace tl
-#endif
+#endif // TL_EXPECTED_HPP
+
+#endif // !defined(USE_VENDORED_TL_EXPECTED) && __has_include()
diff --git a/tl_expected/package.xml b/tl_expected/package.xml
index 07dac78..ef78d93 100644
--- a/tl_expected/package.xml
+++ b/tl_expected/package.xml
@@ -14,6 +14,8 @@
ament_cmake
+ libexpected-dev
+
ament_cmake