diff --git a/src/utils/labeled_tuple.hpp b/src/utils/labeled_tuple.hpp
index 062b908..7c05a58 100644
--- a/src/utils/labeled_tuple.hpp
+++ b/src/utils/labeled_tuple.hpp
@@ -110,8 +110,8 @@
     static U& ref();
 
     template <class U>
-    static std::true_type
-        check(decltype(utils::to_json(ref<nlohmann::json>(), ref<const U>()))*);
+    static std::true_type check(decltype(utils::to_json(ref<nlohmann::json>(),
+                                                        ref<const U>()))*);
 
     template <class>
     static std::false_type check(...);
@@ -205,11 +205,15 @@
 
     bool operator==(const LabeledTuple& other) const
     {
-        return std::apply([&](auto&&... x) {
-            return std::apply([&](auto&&... y) {
-                return (true && ... && detail::eq(x, y));
-            }, value);
-        }, other.value);
+        return std::apply(
+            [&](auto&&... x) {
+                return std::apply(
+                    [&](auto&&... y) {
+                        return (true && ... && detail::eq(x, y));
+                    },
+                    value);
+            },
+            other.value);
     }
 
     bool operator<(const LabeledTuple& other) const
