diff --git a/deps/ox/src/ox/std/typetraits.hpp b/deps/ox/src/ox/std/typetraits.hpp
index 0c67e2ee..50eb58e5 100644
--- a/deps/ox/src/ox/std/typetraits.hpp
+++ b/deps/ox/src/ox/std/typetraits.hpp
@@ -60,8 +60,13 @@ template<> struct is_integral<int16_t> : ox::true_type {};
 template<> struct is_integral<uint16_t>: ox::true_type {};
 template<> struct is_integral<int32_t> : ox::true_type {};
 template<> struct is_integral<uint32_t>: ox::true_type {};
-template<> struct is_integral<int64_t> : ox::true_type {};
-template<> struct is_integral<uint64_t>: ox::true_type {};
+
+// some of these need to be done with the actual language syntax because no one
+// can agree on what an (u)int64_t is...
+template<> struct is_integral<long>: ox::true_type {};
+template<> struct is_integral<long long>: ox::true_type {};
+template<> struct is_integral<unsigned long>: ox::true_type {};
+template<> struct is_integral<unsigned long long>: ox::true_type {};
 
 template<typename T>
 constexpr bool is_integral_v = ox::is_integral<T>::value;