diff --git a/src/ast_commands.cpp b/src/ast_commands.cpp
index a4a9e08..3af3ff0 100644
--- a/src/ast_commands.cpp
+++ b/src/ast_commands.cpp
@@ -7,33 +7,6 @@
 */
 #include "ast_commands.hpp"
 
-enum_::enum_() = default;
-
-enum_::enum_(const std::string& value)
-    : m_value(value)
-{
-}
-
-identityRef_::identityRef_() = default;
-
-identityRef_::identityRef_(const std::string& value)
-    : m_value(value)
-{
-}
-
-identityRef_::identityRef_(const std::string& module, const std::string& value)
-    : m_prefix(module_{module})
-    , m_value(value)
-{
-}
-
-binary_::binary_() = default;
-
-binary_::binary_(const std::string& value)
-    : m_value(value)
-{
-}
-
 bool set_::operator==(const set_& b) const
 {
     return this->m_path == b.m_path && this->m_data == b.m_data;
@@ -49,21 +22,6 @@
     return this->m_path == b.m_path && this->m_options == b.m_options;
 }
 
-bool identityRef_::operator==(const identityRef_& b) const
-{
-    return this->m_prefix == b.m_prefix && this->m_value == b.m_value;
-}
-
-bool binary_::operator==(const binary_& b) const
-{
-    return this->m_value == b.m_value;
-}
-
-bool enum_::operator==(const enum_& b) const
-{
-    return this->m_value == b.m_value;
-}
-
 bool create_::operator==(const create_& b) const
 {
     return this->m_path == b.m_path;
