From c09440beb3616a4876d81452a162d65aa14bdb01 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Tue, 12 Dec 2017 10:43:52 +0100
Subject: [PATCH] drop not needed (Un)RankedTreeWrapper class

---
 alib2data/src/tree/RankedTreeBase.h           | 27 -------------------
 alib2data/src/tree/RankedTreeWrapper.h        | 26 ------------------
 alib2data/src/tree/TreeFeatures.h             |  2 --
 alib2data/src/tree/UnrankedTreeBase.h         | 27 -------------------
 alib2data/src/tree/UnrankedTreeWrapper.h      | 26 ------------------
 .../src/tree/ranked/PostfixRankedTree.cpp     |  4 +--
 alib2data/src/tree/ranked/PostfixRankedTree.h | 12 ++++-----
 .../PrefixRankedBarNonlinearPattern.cpp       |  4 +--
 .../ranked/PrefixRankedBarNonlinearPattern.h  | 12 ++++-----
 .../tree/ranked/PrefixRankedBarPattern.cpp    |  4 +--
 .../src/tree/ranked/PrefixRankedBarPattern.h  | 12 ++++-----
 .../src/tree/ranked/PrefixRankedBarTree.cpp   |  4 +--
 .../src/tree/ranked/PrefixRankedBarTree.h     | 12 ++++-----
 .../ranked/PrefixRankedNonlinearPattern.cpp   |  4 +--
 .../ranked/PrefixRankedNonlinearPattern.h     | 12 ++++-----
 .../src/tree/ranked/PrefixRankedPattern.cpp   |  4 +--
 .../src/tree/ranked/PrefixRankedPattern.h     | 12 ++++-----
 .../src/tree/ranked/PrefixRankedTree.cpp      |  4 +--
 alib2data/src/tree/ranked/PrefixRankedTree.h  | 12 ++++-----
 .../tree/ranked/RankedNonlinearPattern.cpp    |  4 +--
 .../src/tree/ranked/RankedNonlinearPattern.h  | 12 ++++-----
 alib2data/src/tree/ranked/RankedPattern.cpp   |  4 +--
 alib2data/src/tree/ranked/RankedPattern.h     | 12 ++++-----
 alib2data/src/tree/ranked/RankedTree.cpp      |  4 +--
 alib2data/src/tree/ranked/RankedTree.h        | 12 ++++-----
 alib2data/src/tree/unranked/PrefixBarTree.cpp |  4 +--
 alib2data/src/tree/unranked/PrefixBarTree.h   | 12 ++++-----
 .../unranked/UnrankedNonlinearPattern.cpp     |  4 +--
 .../tree/unranked/UnrankedNonlinearPattern.h  | 12 ++++-----
 .../src/tree/unranked/UnrankedPattern.cpp     |  4 +--
 alib2data/src/tree/unranked/UnrankedPattern.h | 12 ++++-----
 alib2data/src/tree/unranked/UnrankedTree.cpp  |  4 +--
 alib2data/src/tree/unranked/UnrankedTree.h    | 12 ++++-----
 33 files changed, 98 insertions(+), 234 deletions(-)
 delete mode 100644 alib2data/src/tree/RankedTreeBase.h
 delete mode 100644 alib2data/src/tree/RankedTreeWrapper.h
 delete mode 100644 alib2data/src/tree/UnrankedTreeBase.h
 delete mode 100644 alib2data/src/tree/UnrankedTreeWrapper.h

diff --git a/alib2data/src/tree/RankedTreeBase.h b/alib2data/src/tree/RankedTreeBase.h
deleted file mode 100644
index aff83a746d..0000000000
--- a/alib2data/src/tree/RankedTreeBase.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * RankedTreeBase.h
- *
- *  Created on: Nov 16, 2014
- *      Author: Stepan Plachy
- */
-
-#ifndef RANKED_TREE_BASE_H_
-#define RANKED_TREE_BASE_H_
-
-#include "TreeBase.h"
-#include <set>
-
-namespace tree {
-
-/**
- * Represents symbol in an alphabet.
- */
-class RankedTreeBase : public TreeBase {
-public:
-	virtual RankedTreeBase * clone ( ) const = 0;
-	virtual RankedTreeBase * plunder ( ) && = 0;
-};
-
-} /* namespace tree */
-
-#endif /* RANKED_TREE_BASE_H_ */
diff --git a/alib2data/src/tree/RankedTreeWrapper.h b/alib2data/src/tree/RankedTreeWrapper.h
deleted file mode 100644
index 3aeaa34ab5..0000000000
--- a/alib2data/src/tree/RankedTreeWrapper.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * RankedTreeWrapper.h
- *
- *  Created on: Nov 16, 2014
- *      Author: Stepan Plachy
- */
-
-#ifndef RANKED_TREE_WRAPPER_H_
-#define RANKED_TREE_WRAPPER_H_
-
-#include <base/WrapperBase.hpp>
-#include "RankedTreeBase.h"
-
-namespace tree {
-
-/**
- * Wrapper around tree.
- */
-class RankedTreeWrapper : public alib::WrapperBase < RankedTreeBase > {
-	using alib::WrapperBase < RankedTreeBase >::WrapperBase;
-
-};
-
-} /* namespace tree */
-
-#endif /* RANKED_TREE_WRAPPER_H- */
diff --git a/alib2data/src/tree/TreeFeatures.h b/alib2data/src/tree/TreeFeatures.h
index 2828aed74b..728068e4de 100644
--- a/alib2data/src/tree/TreeFeatures.h
+++ b/alib2data/src/tree/TreeFeatures.h
@@ -30,8 +30,6 @@ enum class FEATURES {
 };
 
 class Tree;
-class RankedTreeWrapper;
-class UnrankedTreeWrapper;
 class TreeBase;
 
 template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType >
diff --git a/alib2data/src/tree/UnrankedTreeBase.h b/alib2data/src/tree/UnrankedTreeBase.h
deleted file mode 100644
index f59ecf9bf4..0000000000
--- a/alib2data/src/tree/UnrankedTreeBase.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * UnrankedTreeBase.h
- *
- *  Created on: Nov 16, 2014
- *      Author: Jan Tranicek
- */
-
-#ifndef UNRANKED_TREE_BASE_H_
-#define UNRANKED_TREE_BASE_H_
-
-#include "TreeBase.h"
-#include <set>
-
-namespace tree {
-
-/**
- * Represents symbol in an alphabet.
- */
-class UnrankedTreeBase : public TreeBase {
-public:
-	virtual UnrankedTreeBase * clone ( ) const = 0;
-	virtual UnrankedTreeBase * plunder ( ) && = 0;
-};
-
-} /* namespace tree */
-
-#endif /* UNRANKED_TREE_BASE_H_ */
diff --git a/alib2data/src/tree/UnrankedTreeWrapper.h b/alib2data/src/tree/UnrankedTreeWrapper.h
deleted file mode 100644
index 37b09e246e..0000000000
--- a/alib2data/src/tree/UnrankedTreeWrapper.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * UnrankedTreeWrapper.h
- *
- *  Created on: Nov 16, 2014
- *      Author: Jan Travnicek
- */
-
-#ifndef UNRANKED_TREE_WRAPPER_H_
-#define UNRANKED_TREE_WRAPPER_H_
-
-#include <base/WrapperBase.hpp>
-#include "UnrankedTreeBase.h"
-
-namespace tree {
-
-/**
- * Wrapper around tree.
- */
-class UnrankedTreeWrapper : public alib::WrapperBase < UnrankedTreeBase > {
-	using alib::WrapperBase < UnrankedTreeBase >::WrapperBase;
-
-};
-
-} /* namespace tree */
-
-#endif /* UNRANKED_TREE_WRAPPER_H_ */
diff --git a/alib2data/src/tree/ranked/PostfixRankedTree.cpp b/alib2data/src/tree/ranked/PostfixRankedTree.cpp
index 26066a4e61..e3994aafc4 100644
--- a/alib2data/src/tree/ranked/PostfixRankedTree.cpp
+++ b/alib2data/src/tree/ranked/PostfixRankedTree.cpp
@@ -7,7 +7,6 @@
 
 #include "PostfixRankedTree.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::PostfixRankedTree
 static auto xmlRead = registration::XmlReaderRegister < tree::PostfixRankedTree < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PostfixRankedTree < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::RankedTreeWrapper, tree::PostfixRankedTree < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PostfixRankedTree < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PostfixRankedTree < > > ( );
 
 static auto PostfixRankedTreeFromRankedTree = registration::CastRegister < tree::PostfixRankedTree < >, tree::RankedTree < > > ( );
 
diff --git a/alib2data/src/tree/ranked/PostfixRankedTree.h b/alib2data/src/tree/ranked/PostfixRankedTree.h
index a5d1ae67d4..5442e0f32b 100644
--- a/alib2data/src/tree/ranked/PostfixRankedTree.h
+++ b/alib2data/src/tree/ranked/PostfixRankedTree.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include <tree/common/TreeNormalize.h>
@@ -39,7 +39,7 @@ class GeneralAlphabet;
  * as a tree of LinearStringElement.
  */
 template < class SymbolType, class RankType >
-class PostfixRankedTree final : public RankedTreeBase, public alib::Components < PostfixRankedTree < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet > {
+class PostfixRankedTree final : public TreeBase, public alib::Components < PostfixRankedTree < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet > {
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > m_Data;
 
 	static ext::vector < common::ranked_symbol < SymbolType, RankType > > toPostfixRanked ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & tree );
@@ -49,8 +49,8 @@ public:
 	explicit PostfixRankedTree ( ext::vector < common::ranked_symbol < SymbolType, RankType > > data );
 	explicit PostfixRankedTree ( const RankedTree < SymbolType, RankType > & tree );
 
-	virtual RankedTreeBase * clone ( ) const;
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * clone ( ) const;
+	virtual TreeBase * plunder ( ) &&;
 
 	const ext::set < common::ranked_symbol < SymbolType, RankType > > & getAlphabet ( ) const & {
 		return this->template accessComponent < GeneralAlphabet > ( ).get ( );
@@ -137,12 +137,12 @@ ext::vector < common::ranked_symbol < SymbolType, RankType > > PostfixRankedTree
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PostfixRankedTree < SymbolType, RankType >::clone ( ) const {
+TreeBase * PostfixRankedTree < SymbolType, RankType >::clone ( ) const {
 	return new PostfixRankedTree ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PostfixRankedTree < SymbolType, RankType >::plunder ( ) && {
+TreeBase * PostfixRankedTree < SymbolType, RankType >::plunder ( ) && {
 	return new PostfixRankedTree ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp
index b628224123..86b7f9febb 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp
@@ -7,7 +7,6 @@
 
 #include "PrefixRankedBarNonlinearPattern.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarNo
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarNonlinearPattern < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedBarNonlinearPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::RankedTreeWrapper, tree::PrefixRankedBarNonlinearPattern < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedBarNonlinearPattern < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedBarNonlinearPattern < > > ( );
 
 static auto PrefixRankedBarNonlinearPatternFromRankedTree = registration::CastRegister < tree::PrefixRankedBarNonlinearPattern < >, tree::RankedTree < > > ( );
 static auto PrefixRankedBarNonlinearPatternFromRankedPattern = registration::CastRegister < tree::PrefixRankedBarNonlinearPattern < >, tree::RankedPattern < > > ( );
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h
index 95825ddc30..8896c20767 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h
+++ b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include "../common/TreeAuxiliary.h"
@@ -48,7 +48,7 @@ class NonlinearAlphabet;
  * as a tree of LinearStringElement.
  */
 template < class SymbolType, class RankType >
-class PrefixRankedBarNonlinearPattern final : public RankedTreeBase, public alib::Components < PrefixRankedBarNonlinearPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet, BarSymbols >, common::ranked_symbol < SymbolType, RankType >, component::Value, std::tuple < SubtreeWildcard, VariablesBarSymbol > > {
+class PrefixRankedBarNonlinearPattern final : public TreeBase, public alib::Components < PrefixRankedBarNonlinearPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet, BarSymbols >, common::ranked_symbol < SymbolType, RankType >, component::Value, std::tuple < SubtreeWildcard, VariablesBarSymbol > > {
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > m_Data;
 
 	static ext::vector < common::ranked_symbol < SymbolType, RankType > > toPrefixRankedBar ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & node, const common::ranked_symbol < SymbolType, RankType > & subtreeWildcard, const ext::set < common::ranked_symbol < SymbolType, RankType > > & nonlinearVariables, const SymbolType & barBase, const common::ranked_symbol < SymbolType, RankType > & variablesBar );
@@ -66,8 +66,8 @@ public:
 	explicit PrefixRankedBarNonlinearPattern ( const RankedPattern < SymbolType, RankType > & tree );
 	explicit PrefixRankedBarNonlinearPattern ( const RankedNonlinearPattern < SymbolType, RankType > & tree );
 
-	virtual RankedTreeBase * clone ( ) const;
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * clone ( ) const;
+	virtual TreeBase * plunder ( ) &&;
 
 	const ext::set < common::ranked_symbol < SymbolType, RankType > > & getAlphabet ( ) const & {
 		return this->template accessComponent < GeneralAlphabet > ( ).get ( );
@@ -228,12 +228,12 @@ ext::vector < common::ranked_symbol < SymbolType, RankType > > PrefixRankedBarNo
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedBarNonlinearPattern < SymbolType, RankType >::clone ( ) const {
+TreeBase * PrefixRankedBarNonlinearPattern < SymbolType, RankType >::clone ( ) const {
 	return new PrefixRankedBarNonlinearPattern ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedBarNonlinearPattern < SymbolType, RankType >::plunder ( ) && {
+TreeBase * PrefixRankedBarNonlinearPattern < SymbolType, RankType >::plunder ( ) && {
 	return new PrefixRankedBarNonlinearPattern ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp
index 91db74cb26..16ba8a4ff8 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp
@@ -7,7 +7,6 @@
 
 #include "PrefixRankedBarPattern.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarPa
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarPattern < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedBarPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::RankedTreeWrapper, tree::PrefixRankedBarPattern < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedBarPattern < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedBarPattern < > > ( );
 
 static auto PrefixRankedBarPatternFromRankedPattern = registration::CastRegister < tree::PrefixRankedBarPattern < >, tree::RankedPattern < > > ( );
 static auto PrefixRankedBarPatternFromPrefixRankedBarTree = registration::CastRegister < tree::PrefixRankedBarPattern < >, tree::PrefixRankedBarTree < > > ( );
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarPattern.h b/alib2data/src/tree/ranked/PrefixRankedBarPattern.h
index 8a19925cee..d0883ec5ed 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarPattern.h
+++ b/alib2data/src/tree/ranked/PrefixRankedBarPattern.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include "../common/TreeAuxiliary.h"
@@ -47,7 +47,7 @@ class VariablesBarSymbol;
  * as a tree of LinearStringElement.
  */
 template < class SymbolType, class RankType >
-class PrefixRankedBarPattern final : public RankedTreeBase, public alib::Components < PrefixRankedBarPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, BarSymbols >, common::ranked_symbol < SymbolType, RankType >, component::Value, std::tuple < SubtreeWildcard, VariablesBarSymbol > > {
+class PrefixRankedBarPattern final : public TreeBase, public alib::Components < PrefixRankedBarPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, BarSymbols >, common::ranked_symbol < SymbolType, RankType >, component::Value, std::tuple < SubtreeWildcard, VariablesBarSymbol > > {
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > m_Data;
 
 	static ext::vector < common::ranked_symbol < SymbolType, RankType > > toPrefixRankedBar ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & node, const common::ranked_symbol < SymbolType, RankType > & subtreeWildcard, const SymbolType & barBase, const common::ranked_symbol < SymbolType, RankType > & variablesBar );
@@ -59,8 +59,8 @@ public:
 	explicit PrefixRankedBarPattern ( const PrefixRankedBarTree < SymbolType, RankType > & tree );
 	explicit PrefixRankedBarPattern ( const RankedPattern < SymbolType, RankType > & tree );
 
-	virtual RankedTreeBase * clone ( ) const;
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * clone ( ) const;
+	virtual TreeBase * plunder ( ) &&;
 
 	const ext::set < common::ranked_symbol < SymbolType, RankType > > & getAlphabet ( ) const & {
 		return this->template accessComponent < GeneralAlphabet > ( ).get ( );
@@ -186,12 +186,12 @@ ext::vector < common::ranked_symbol < SymbolType, RankType > > PrefixRankedBarPa
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedBarPattern < SymbolType, RankType >::clone ( ) const {
+TreeBase * PrefixRankedBarPattern < SymbolType, RankType >::clone ( ) const {
 	return new PrefixRankedBarPattern ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedBarPattern < SymbolType, RankType >::plunder ( ) && {
+TreeBase * PrefixRankedBarPattern < SymbolType, RankType >::plunder ( ) && {
 	return new PrefixRankedBarPattern ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp b/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp
index 1353de9931..593855a4aa 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp
@@ -7,7 +7,6 @@
 
 #include "PrefixRankedBarTree.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarTr
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarTree < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedBarTree < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::RankedTreeWrapper, tree::PrefixRankedBarTree < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedBarTree < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedBarTree < > > ( );
 
 static auto PrefixRankedBarTreeFromRankedTree = registration::CastRegister < tree::PrefixRankedBarTree < >, tree::RankedTree < > > ( );
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarTree.h b/alib2data/src/tree/ranked/PrefixRankedBarTree.h
index 267b8e09ef..6ea16a40f0 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarTree.h
+++ b/alib2data/src/tree/ranked/PrefixRankedBarTree.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include "../common/TreeAuxiliary.h"
@@ -43,7 +43,7 @@ class BarSymbols;
  * as a tree of LinearStringElement.
  */
 template < class SymbolType, class RankType >
-class PrefixRankedBarTree final : public RankedTreeBase, public alib::Components < PrefixRankedBarTree < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, BarSymbols > > {
+class PrefixRankedBarTree final : public TreeBase, public alib::Components < PrefixRankedBarTree < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, BarSymbols > > {
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > m_Data;
 
 	static ext::vector < common::ranked_symbol < SymbolType, RankType > > toPrefixRankedBar ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & node, const SymbolType & barBase );
@@ -54,8 +54,8 @@ public:
 	explicit PrefixRankedBarTree ( SymbolType barBase, const RankedTree < SymbolType, RankType > & tree );
 	explicit PrefixRankedBarTree ( const RankedTree < > & tree );
 
-	virtual RankedTreeBase * clone ( ) const;
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * clone ( ) const;
+	virtual TreeBase * plunder ( ) &&;
 
 	const ext::set < common::ranked_symbol < SymbolType, RankType > > & getAlphabet ( ) const & {
 		return this->template accessComponent < GeneralAlphabet > ( ).get ( );
@@ -157,12 +157,12 @@ ext::vector < common::ranked_symbol < SymbolType, RankType > > PrefixRankedBarTr
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedBarTree < SymbolType, RankType >::clone ( ) const {
+TreeBase * PrefixRankedBarTree < SymbolType, RankType >::clone ( ) const {
 	return new PrefixRankedBarTree ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedBarTree < SymbolType, RankType >::plunder ( ) && {
+TreeBase * PrefixRankedBarTree < SymbolType, RankType >::plunder ( ) && {
 	return new PrefixRankedBarTree ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp
index 3ac01a2e32..d3fc4b6690 100644
--- a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp
@@ -7,7 +7,6 @@
 
 #include "PrefixRankedNonlinearPattern.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedNonli
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedNonlinearPattern < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedNonlinearPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::RankedTreeWrapper, tree::PrefixRankedNonlinearPattern < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedNonlinearPattern < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedNonlinearPattern < > > ( );
 
 static auto PrefixRankedNonlinearPatternFromRankedTree = registration::CastRegister < tree::PrefixRankedNonlinearPattern < >, tree::RankedTree < > > ( );
 static auto PrefixRankedNonlinearPatternFromRankedPattern = registration::CastRegister < tree::PrefixRankedNonlinearPattern < >, tree::RankedPattern < > > ( );
diff --git a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h
index cfe5478263..20bb291a0a 100644
--- a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h
+++ b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include <tree/common/TreeNormalize.h>
@@ -43,7 +43,7 @@ class NonlinearAlphabet;
  * as a tree of LinearStringElement.
  */
 template < class SymbolType, class RankType >
-class PrefixRankedNonlinearPattern final : public RankedTreeBase, public alib::Components < PrefixRankedNonlinearPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet >, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > {
+class PrefixRankedNonlinearPattern final : public TreeBase, public alib::Components < PrefixRankedNonlinearPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet >, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > {
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > m_Data;
 
 	static ext::vector < common::ranked_symbol < SymbolType, RankType > > toPrefixRanked ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & tree );
@@ -58,8 +58,8 @@ public:
 	explicit PrefixRankedNonlinearPattern ( const RankedPattern < SymbolType, RankType > & tree );
 	explicit PrefixRankedNonlinearPattern ( const RankedNonlinearPattern < SymbolType, RankType > & tree );
 
-	virtual RankedTreeBase * clone ( ) const;
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * clone ( ) const;
+	virtual TreeBase * plunder ( ) &&;
 
 	const ext::set < common::ranked_symbol < SymbolType, RankType > > & getAlphabet ( ) const & {
 		return this->template accessComponent < GeneralAlphabet > ( ).get ( );
@@ -186,12 +186,12 @@ ext::vector < common::ranked_symbol < SymbolType, RankType > > PrefixRankedNonli
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedNonlinearPattern < SymbolType, RankType >::clone ( ) const {
+TreeBase * PrefixRankedNonlinearPattern < SymbolType, RankType >::clone ( ) const {
 	return new PrefixRankedNonlinearPattern ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedNonlinearPattern < SymbolType, RankType >::plunder ( ) && {
+TreeBase * PrefixRankedNonlinearPattern < SymbolType, RankType >::plunder ( ) && {
 	return new PrefixRankedNonlinearPattern ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedPattern.cpp
index 285815c5f5..c8f2f975d1 100644
--- a/alib2data/src/tree/ranked/PrefixRankedPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedPattern.cpp
@@ -7,7 +7,6 @@
 
 #include "PrefixRankedPattern.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedPatte
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedPattern < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::RankedTreeWrapper, tree::PrefixRankedPattern < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedPattern < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedPattern < > > ( );
 
 static auto PrefixRankedPatternFromRankedPattern = registration::CastRegister < tree::PrefixRankedPattern < >, tree::RankedPattern < > > ( );
 static auto PrefixRankedPatternFromPrefixRankedTree = registration::CastRegister < tree::PrefixRankedPattern < >, tree::PrefixRankedTree < > > ( );
diff --git a/alib2data/src/tree/ranked/PrefixRankedPattern.h b/alib2data/src/tree/ranked/PrefixRankedPattern.h
index b498e8bd38..a7a2e1fb63 100644
--- a/alib2data/src/tree/ranked/PrefixRankedPattern.h
+++ b/alib2data/src/tree/ranked/PrefixRankedPattern.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include <tree/common/TreeNormalize.h>
@@ -42,7 +42,7 @@ class SubtreeWildcard;
  * as a tree of LinearStringElement.
  */
 template < class SymbolType, class RankType >
-class PrefixRankedPattern final : public RankedTreeBase, public alib::Components < PrefixRankedPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > {
+class PrefixRankedPattern final : public TreeBase, public alib::Components < PrefixRankedPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > {
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > m_Data;
 
 	static ext::vector < common::ranked_symbol < SymbolType, RankType > > toPrefixRanked ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & tree );
@@ -53,8 +53,8 @@ public:
 	explicit PrefixRankedPattern ( const PrefixRankedTree < SymbolType, RankType > & tree );
 	explicit PrefixRankedPattern ( const RankedPattern < SymbolType, RankType > & tree );
 
-	virtual RankedTreeBase * clone ( ) const;
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * clone ( ) const;
+	virtual TreeBase * plunder ( ) &&;
 
 	const ext::set < common::ranked_symbol < SymbolType, RankType > > & getAlphabet ( ) const & {
 		return this->template accessComponent < GeneralAlphabet > ( ).get ( );
@@ -154,12 +154,12 @@ ext::vector < common::ranked_symbol < SymbolType, RankType > > PrefixRankedPatte
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedPattern < SymbolType, RankType >::clone ( ) const {
+TreeBase * PrefixRankedPattern < SymbolType, RankType >::clone ( ) const {
 	return new PrefixRankedPattern ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedPattern < SymbolType, RankType >::plunder ( ) && {
+TreeBase * PrefixRankedPattern < SymbolType, RankType >::plunder ( ) && {
 	return new PrefixRankedPattern ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedTree.cpp b/alib2data/src/tree/ranked/PrefixRankedTree.cpp
index 831b355cb6..84045e71f5 100644
--- a/alib2data/src/tree/ranked/PrefixRankedTree.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedTree.cpp
@@ -7,7 +7,6 @@
 
 #include "PrefixRankedTree.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedTree
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedTree < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedTree < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::RankedTreeWrapper, tree::PrefixRankedTree < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedTree < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixRankedTree < > > ( );
 
 static auto PrefixRankedTreeFromRankedTree = registration::CastRegister < tree::PrefixRankedTree < >, tree::RankedTree < > > ( );
 
diff --git a/alib2data/src/tree/ranked/PrefixRankedTree.h b/alib2data/src/tree/ranked/PrefixRankedTree.h
index 405bf32973..9b05269d64 100644
--- a/alib2data/src/tree/ranked/PrefixRankedTree.h
+++ b/alib2data/src/tree/ranked/PrefixRankedTree.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include <tree/common/TreeNormalize.h>
@@ -39,7 +39,7 @@ class GeneralAlphabet;
  * as a tree of LinearStringElement.
  */
 template < class SymbolType, class RankType >
-class PrefixRankedTree final : public RankedTreeBase, public alib::Components < PrefixRankedTree < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet > {
+class PrefixRankedTree final : public TreeBase, public alib::Components < PrefixRankedTree < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet > {
 	ext::vector < common::ranked_symbol < SymbolType, RankType > > m_Data;
 
 	static ext::vector < common::ranked_symbol < SymbolType, RankType > > toPrefixRanked ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & tree );
@@ -49,8 +49,8 @@ public:
 	explicit PrefixRankedTree ( ext::vector < common::ranked_symbol < SymbolType, RankType > > data );
 	explicit PrefixRankedTree ( const RankedTree < SymbolType, RankType > & tree );
 
-	virtual RankedTreeBase * clone ( ) const;
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * clone ( ) const;
+	virtual TreeBase * plunder ( ) &&;
 
 	const ext::set < common::ranked_symbol < SymbolType, RankType > > & getAlphabet ( ) const & {
 		return this->template accessComponent < GeneralAlphabet > ( ).get ( );
@@ -137,12 +137,12 @@ ext::vector < common::ranked_symbol < SymbolType, RankType > > PrefixRankedTree
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedTree < SymbolType, RankType >::clone ( ) const {
+TreeBase * PrefixRankedTree < SymbolType, RankType >::clone ( ) const {
 	return new PrefixRankedTree ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * PrefixRankedTree < SymbolType, RankType >::plunder ( ) && {
+TreeBase * PrefixRankedTree < SymbolType, RankType >::plunder ( ) && {
 	return new PrefixRankedTree ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp b/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp
index 66d23f38fb..2159dd4e64 100644
--- a/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp
+++ b/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp
@@ -7,7 +7,6 @@
 
 #include "RankedNonlinearPattern.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,7 +24,6 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::RankedNonlinearPa
 static auto xmlRead = registration::XmlReaderRegister < tree::RankedNonlinearPattern < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::RankedNonlinearPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::RankedTreeWrapper, tree::RankedNonlinearPattern < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::RankedNonlinearPattern < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::RankedNonlinearPattern < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/ranked/RankedNonlinearPattern.h b/alib2data/src/tree/ranked/RankedNonlinearPattern.h
index 76730b4b0f..d5914da587 100644
--- a/alib2data/src/tree/ranked/RankedNonlinearPattern.h
+++ b/alib2data/src/tree/ranked/RankedNonlinearPattern.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include "../common/TreeAuxiliary.h"
@@ -42,7 +42,7 @@ class NonlinearAlphabet;
  * as a pattern of RegExpElement.
  */
 template < class SymbolType, class RankType >
-class RankedNonlinearPattern final : public RankedTreeBase, public alib::Components < RankedNonlinearPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet >, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > {
+class RankedNonlinearPattern final : public TreeBase, public alib::Components < RankedNonlinearPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet >, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > {
 	ext::tree < common::ranked_symbol < SymbolType, RankType > > m_content;
 
 	void checkAlphabet ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & pattern ) const;
@@ -53,12 +53,12 @@ public:
 	/**
 	 * @copydoc ext::tree < common::ranked_symbol < SymbolType, RankType > >::clone() const
 	 */
-	virtual RankedTreeBase * clone ( ) const;
+	virtual TreeBase * clone ( ) const;
 
 	/**
 	 * @copydoc ext::tree < common::ranked_symbol < SymbolType, RankType > >::plunder() const
 	 */
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * plunder ( ) &&;
 
 	explicit RankedNonlinearPattern ( common::ranked_symbol < SymbolType, RankType > subtreeWildcard, ext::set < common::ranked_symbol < SymbolType, RankType > > nonlinearVariables, ext::set < common::ranked_symbol < SymbolType, RankType > > alphabet, ext::tree < common::ranked_symbol < SymbolType, RankType > > pattern );
 	explicit RankedNonlinearPattern ( common::ranked_symbol < SymbolType, RankType > subtreeWildcard, ext::set < common::ranked_symbol < SymbolType, RankType > > nonlinearVariables, ext::tree < common::ranked_symbol < SymbolType, RankType > > pattern );
@@ -165,12 +165,12 @@ RankedNonlinearPattern < SymbolType, RankType >::RankedNonlinearPattern ( const
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * RankedNonlinearPattern < SymbolType, RankType >::clone ( ) const {
+TreeBase * RankedNonlinearPattern < SymbolType, RankType >::clone ( ) const {
 	return new RankedNonlinearPattern ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * RankedNonlinearPattern < SymbolType, RankType >::plunder ( ) && {
+TreeBase * RankedNonlinearPattern < SymbolType, RankType >::plunder ( ) && {
 	return new RankedNonlinearPattern ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/RankedPattern.cpp b/alib2data/src/tree/ranked/RankedPattern.cpp
index ce25d87d6d..2a1a038cb9 100644
--- a/alib2data/src/tree/ranked/RankedPattern.cpp
+++ b/alib2data/src/tree/ranked/RankedPattern.cpp
@@ -7,7 +7,6 @@
 
 #include "RankedPattern.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::RankedPattern < >
 static auto xmlRead = registration::XmlReaderRegister < tree::RankedPattern < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::RankedPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::RankedTreeWrapper, tree::RankedPattern < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::RankedPattern < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::RankedPattern < > > ( );
 
 static auto RankedPatternFromUnrankedPattern = registration::CastRegister < tree::RankedPattern < >, tree::UnrankedPattern < > > ( );
 
diff --git a/alib2data/src/tree/ranked/RankedPattern.h b/alib2data/src/tree/ranked/RankedPattern.h
index 05a4133032..6022dcb07a 100644
--- a/alib2data/src/tree/ranked/RankedPattern.h
+++ b/alib2data/src/tree/ranked/RankedPattern.h
@@ -23,7 +23,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include "../common/TreeAuxiliary.h"
@@ -41,7 +41,7 @@ class SubtreeWildcard;
  * as a pattern of RegExpElement.
  */
 template < class SymbolType, class RankType >
-class RankedPattern final : public RankedTreeBase, public alib::Components < RankedPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > {
+class RankedPattern final : public TreeBase, public alib::Components < RankedPattern < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > {
 	ext::tree < common::ranked_symbol < SymbolType, RankType > > m_content;
 
 	void checkAlphabet ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & pattern ) const;
@@ -52,12 +52,12 @@ public:
 	/**
 	 * @copydoc ext::tree < common::ranked_symbol < SymbolType, RankType > >::clone() const
 	 */
-	virtual RankedTreeBase * clone ( ) const;
+	virtual TreeBase * clone ( ) const;
 
 	/**
 	 * @copydoc ext::tree < common::ranked_symbol < SymbolType, RankType > >::plunder() const
 	 */
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * plunder ( ) &&;
 
 	explicit RankedPattern ( common::ranked_symbol < SymbolType, RankType > subtreeWildcard, ext::set < common::ranked_symbol < SymbolType, RankType > > alphabet, ext::tree < common::ranked_symbol < SymbolType, RankType > > pattern );
 	explicit RankedPattern ( common::ranked_symbol < SymbolType, RankType > subtreeWildcard, ext::tree < common::ranked_symbol < SymbolType, RankType > > pattern );
@@ -151,12 +151,12 @@ RankedPattern < SymbolType, RankType >::RankedPattern ( const UnrankedPattern <
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * RankedPattern < SymbolType, RankType >::clone ( ) const {
+TreeBase * RankedPattern < SymbolType, RankType >::clone ( ) const {
 	return new RankedPattern ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * RankedPattern < SymbolType, RankType >::plunder ( ) && {
+TreeBase * RankedPattern < SymbolType, RankType >::plunder ( ) && {
 	return new RankedPattern ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/ranked/RankedTree.cpp b/alib2data/src/tree/ranked/RankedTree.cpp
index 1012c30e69..50170c7f68 100644
--- a/alib2data/src/tree/ranked/RankedTree.cpp
+++ b/alib2data/src/tree/ranked/RankedTree.cpp
@@ -7,7 +7,6 @@
 
 #include "RankedTree.h"
 #include <tree/Tree.h>
-#include <tree/RankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::RankedTree < > >
 static auto xmlRead = registration::XmlReaderRegister < tree::RankedTree < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::RankedTree < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::RankedTreeWrapper, tree::RankedTree < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::RankedTree < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::RankedTree < > > ( );
 
 static auto RankedTreeFromUnrankedTree = registration::CastRegister < tree::RankedTree < >, tree::UnrankedTree < > > ( );
 static auto RankedTreeFromPostfixRankedTree = registration::CastRegister < tree::RankedTree < >, tree::PostfixRankedTree < > > ( );
diff --git a/alib2data/src/tree/ranked/RankedTree.h b/alib2data/src/tree/ranked/RankedTree.h
index d51ab74874..e72d4ca697 100644
--- a/alib2data/src/tree/ranked/RankedTree.h
+++ b/alib2data/src/tree/ranked/RankedTree.h
@@ -22,7 +22,7 @@
 #include <alphabet/xml/RankedSymbol.h>
 
 #include "../TreeFeatures.h"
-#include "../RankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../TreeException.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
@@ -41,7 +41,7 @@ class GeneralAlphabet;
  * as a tree of RegExpElement.
  */
 template < class SymbolType, class RankType >
-class RankedTree final : public RankedTreeBase, public alib::Components < RankedTree < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet > {
+class RankedTree final : public TreeBase, public alib::Components < RankedTree < SymbolType, RankType >, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet > {
 	ext::tree < common::ranked_symbol < SymbolType, RankType > > m_content;
 
 	void checkAlphabet ( const ext::tree < common::ranked_symbol < SymbolType, RankType > > & pattern ) const;
@@ -52,12 +52,12 @@ public:
 	/**
 	 * @copydoc ext::tree < common::ranked_symbol < SymbolType, RankType > >::clone() const
 	 */
-	virtual RankedTreeBase * clone ( ) const;
+	virtual TreeBase * clone ( ) const;
 
 	/**
 	 * @copydoc ext::tree < common::ranked_symbol < SymbolType, RankType > >::plunder() const
 	 */
-	virtual RankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * plunder ( ) &&;
 
 	explicit RankedTree ( ext::set < common::ranked_symbol < SymbolType, RankType > > alphabet, ext::tree < common::ranked_symbol < SymbolType, RankType > > tree );
 	explicit RankedTree ( ext::tree < common::ranked_symbol < SymbolType, RankType > > tree );
@@ -149,12 +149,12 @@ RankedTree < SymbolType, RankType >::RankedTree ( const PostfixRankedTree < Symb
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * RankedTree < SymbolType, RankType >::clone ( ) const {
+TreeBase * RankedTree < SymbolType, RankType >::clone ( ) const {
 	return new RankedTree ( * this );
 }
 
 template < class SymbolType, class RankType >
-RankedTreeBase * RankedTree < SymbolType, RankType >::plunder ( ) && {
+TreeBase * RankedTree < SymbolType, RankType >::plunder ( ) && {
 	return new RankedTree ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/unranked/PrefixBarTree.cpp b/alib2data/src/tree/unranked/PrefixBarTree.cpp
index ae0d9fada2..52a0994743 100644
--- a/alib2data/src/tree/unranked/PrefixBarTree.cpp
+++ b/alib2data/src/tree/unranked/PrefixBarTree.cpp
@@ -7,7 +7,6 @@
 
 #include "PrefixBarTree.h"
 #include <tree/Tree.h>
-#include <tree/UnrankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixBarTree < >
 static auto xmlRead = registration::XmlReaderRegister < tree::PrefixBarTree < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixBarTree < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::UnrankedTreeWrapper, tree::PrefixBarTree < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixBarTree < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::PrefixBarTree < > > ( );
 
 static auto PrefixBarTreeFromUnrankedTree = registration::CastRegister < tree::PrefixBarTree < >, tree::UnrankedTree < > > ( );
 
diff --git a/alib2data/src/tree/unranked/PrefixBarTree.h b/alib2data/src/tree/unranked/PrefixBarTree.h
index 8fabd6ff29..5700078322 100644
--- a/alib2data/src/tree/unranked/PrefixBarTree.h
+++ b/alib2data/src/tree/unranked/PrefixBarTree.h
@@ -20,7 +20,7 @@
 #include <object/UniqueObject.h>
 
 #include "../TreeFeatures.h"
-#include "../UnrankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../TreeException.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
@@ -39,7 +39,7 @@ class BarSymbol;
  * Represents a tree in prefix bar notation.
  */
 template < class SymbolType >
-class PrefixBarTree final : public UnrankedTreeBase, public alib::Components < PrefixBarTree < SymbolType >, ext::set < SymbolType >, component::Set, GeneralAlphabet, SymbolType, component::Value, BarSymbol > {
+class PrefixBarTree final : public TreeBase, public alib::Components < PrefixBarTree < SymbolType >, ext::set < SymbolType >, component::Set, GeneralAlphabet, SymbolType, component::Value, BarSymbol > {
 	ext::vector < SymbolType > m_Data;
 
 	static ext::vector < SymbolType > toPrefixBar ( const ext::tree < SymbolType > & tree, const SymbolType & bar );
@@ -50,8 +50,8 @@ public:
 	explicit PrefixBarTree ( SymbolType bar, const UnrankedTree < SymbolType > & tree );
 	explicit PrefixBarTree ( const UnrankedTree < SymbolType > & tree );
 
-	virtual UnrankedTreeBase * clone ( ) const;
-	virtual UnrankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * clone ( ) const;
+	virtual TreeBase * plunder ( ) &&;
 
 	const ext::set < SymbolType > & getAlphabet ( ) const & {
 		return this->template accessComponent < GeneralAlphabet > ( ).get ( );
@@ -153,12 +153,12 @@ ext::vector < SymbolType > PrefixBarTree < SymbolType >::toPrefixBar ( const ext
 }
 
 template < class SymbolType >
-UnrankedTreeBase * PrefixBarTree < SymbolType >::clone ( ) const {
+TreeBase * PrefixBarTree < SymbolType >::clone ( ) const {
 	return new PrefixBarTree ( * this );
 }
 
 template < class SymbolType >
-UnrankedTreeBase * PrefixBarTree < SymbolType >::plunder ( ) && {
+TreeBase * PrefixBarTree < SymbolType >::plunder ( ) && {
 	return new PrefixBarTree ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp
index ddc1ed920f..93e31027f8 100644
--- a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp
+++ b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp
@@ -7,7 +7,6 @@
 
 #include "UnrankedNonlinearPattern.h"
 #include <tree/Tree.h>
-#include <tree/UnrankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,7 +24,6 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::UnrankedNonlinear
 static auto xmlRead = registration::XmlReaderRegister < tree::UnrankedNonlinearPattern < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::UnrankedNonlinearPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::UnrankedTreeWrapper, tree::UnrankedNonlinearPattern < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::UnrankedNonlinearPattern < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::UnrankedNonlinearPattern < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h
index fda1bdc99b..e9c6f8aacc 100644
--- a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h
+++ b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h
@@ -21,7 +21,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../UnrankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include "../common/TreeAuxiliary.h"
@@ -40,7 +40,7 @@ class NonlinearAlphabet;
  * as a pattern of RegExpElement.
  */
 template < class SymbolType >
-class UnrankedNonlinearPattern final : public UnrankedTreeBase, public alib::Components < UnrankedNonlinearPattern < SymbolType >, ext::set < SymbolType >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet >, SymbolType, component::Value, SubtreeWildcard > {
+class UnrankedNonlinearPattern final : public TreeBase, public alib::Components < UnrankedNonlinearPattern < SymbolType >, ext::set < SymbolType >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet >, SymbolType, component::Value, SubtreeWildcard > {
 	ext::tree < SymbolType > m_content;
 
 	void checkAlphabet ( const ext::tree < SymbolType > & pattern ) const;
@@ -49,12 +49,12 @@ public:
 	/**
 	 * @copydoc ext::tree < SymbolType >::clone() const
 	 */
-	virtual UnrankedTreeBase * clone ( ) const;
+	virtual TreeBase * clone ( ) const;
 
 	/**
 	 * @copydoc ext::tree < SymbolType >::plunder() const
 	 */
-	virtual UnrankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * plunder ( ) &&;
 
 	explicit UnrankedNonlinearPattern ( SymbolType subtreeWildcard, ext::set < SymbolType > nonlinearVariables, ext::set < SymbolType > alphabet, ext::tree < SymbolType > pattern );
 	explicit UnrankedNonlinearPattern ( SymbolType subtreeWildcard, ext::set < SymbolType > nonlinearVariables, ext::tree < SymbolType > pattern );
@@ -168,12 +168,12 @@ UnrankedNonlinearPattern < SymbolType >::UnrankedNonlinearPattern ( const Ranked
 }
 
 template < class SymbolType >
-UnrankedTreeBase * UnrankedNonlinearPattern < SymbolType >::clone ( ) const {
+TreeBase * UnrankedNonlinearPattern < SymbolType >::clone ( ) const {
 	return new UnrankedNonlinearPattern ( * this );
 }
 
 template < class SymbolType >
-UnrankedTreeBase * UnrankedNonlinearPattern < SymbolType >::plunder ( ) && {
+TreeBase * UnrankedNonlinearPattern < SymbolType >::plunder ( ) && {
 	return new UnrankedNonlinearPattern ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/unranked/UnrankedPattern.cpp b/alib2data/src/tree/unranked/UnrankedPattern.cpp
index 5481748d7d..bf3d35728e 100644
--- a/alib2data/src/tree/unranked/UnrankedPattern.cpp
+++ b/alib2data/src/tree/unranked/UnrankedPattern.cpp
@@ -7,7 +7,6 @@
 
 #include "UnrankedPattern.h"
 #include <tree/Tree.h>
-#include <tree/UnrankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::UnrankedPattern <
 static auto xmlRead = registration::XmlReaderRegister < tree::UnrankedPattern < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::UnrankedPattern < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::UnrankedTreeWrapper, tree::UnrankedPattern < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::UnrankedPattern < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::UnrankedPattern < > > ( );
 
 static auto UnrankedPatternFromRankedPattern = registration::CastRegister < tree::UnrankedPattern < >, tree::RankedPattern < > > ( );
 
diff --git a/alib2data/src/tree/unranked/UnrankedPattern.h b/alib2data/src/tree/unranked/UnrankedPattern.h
index 0b09a1ca63..6998077b6c 100644
--- a/alib2data/src/tree/unranked/UnrankedPattern.h
+++ b/alib2data/src/tree/unranked/UnrankedPattern.h
@@ -21,7 +21,7 @@
 
 #include "../TreeFeatures.h"
 #include "../TreeException.h"
-#include "../UnrankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
 #include "../common/TreeAuxiliary.h"
@@ -39,7 +39,7 @@ class SubtreeWildcard;
  * as a pattern of RegExpElement.
  */
 template < class SymbolType >
-class UnrankedPattern final : public UnrankedTreeBase, public alib::Components < UnrankedPattern < SymbolType >, ext::set < SymbolType >, component::Set, GeneralAlphabet, SymbolType, component::Value, SubtreeWildcard > {
+class UnrankedPattern final : public TreeBase, public alib::Components < UnrankedPattern < SymbolType >, ext::set < SymbolType >, component::Set, GeneralAlphabet, SymbolType, component::Value, SubtreeWildcard > {
 	ext::tree < SymbolType > m_content;
 
 	void checkAlphabet ( const ext::tree < SymbolType > & pattern ) const;
@@ -48,12 +48,12 @@ public:
 	/**
 	 * @copydoc UnrankedNode::clone() const
 	 */
-	virtual UnrankedTreeBase * clone ( ) const;
+	virtual TreeBase * clone ( ) const;
 
 	/**
 	 * @copydoc UnrankedNode::plunder() const
 	 */
-	virtual UnrankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * plunder ( ) &&;
 
 	explicit UnrankedPattern ( SymbolType subtreeWildcard, ext::set < SymbolType > alphabet, ext::tree < SymbolType > pattern );
 	explicit UnrankedPattern ( SymbolType subtreeWildcard, ext::tree < SymbolType > pattern );
@@ -148,12 +148,12 @@ UnrankedPattern < SymbolType >::UnrankedPattern ( const RankedPattern < SymbolTy
 }
 
 template < class SymbolType >
-UnrankedTreeBase * UnrankedPattern < SymbolType >::clone ( ) const {
+TreeBase * UnrankedPattern < SymbolType >::clone ( ) const {
 	return new UnrankedPattern ( * this );
 }
 
 template < class SymbolType >
-UnrankedTreeBase * UnrankedPattern < SymbolType >::plunder ( ) && {
+TreeBase * UnrankedPattern < SymbolType >::plunder ( ) && {
 	return new UnrankedPattern ( std::move ( * this ) );
 }
 
diff --git a/alib2data/src/tree/unranked/UnrankedTree.cpp b/alib2data/src/tree/unranked/UnrankedTree.cpp
index 0a3d53b20d..246dd7d2cf 100644
--- a/alib2data/src/tree/unranked/UnrankedTree.cpp
+++ b/alib2data/src/tree/unranked/UnrankedTree.cpp
@@ -7,7 +7,6 @@
 
 #include "UnrankedTree.h"
 #include <tree/Tree.h>
-#include <tree/UnrankedTreeWrapper.h>
 #include <object/Object.h>
 
 #include <registration/ValuePrinterRegistration.hpp>
@@ -25,8 +24,7 @@ static auto xmlWrite = registration::XmlWriterRegister < tree::UnrankedTree < >
 static auto xmlRead = registration::XmlReaderRegister < tree::UnrankedTree < > > ( );
 
 static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::UnrankedTree < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::UnrankedTreeWrapper, tree::UnrankedTree < > > ( );
-static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::UnrankedTree < > > ( );
+static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, tree::UnrankedTree < > > ( );
 
 static auto UnrankedTreeFromRankedTree = registration::CastRegister < tree::UnrankedTree < >, tree::RankedTree < > > ( );
 
diff --git a/alib2data/src/tree/unranked/UnrankedTree.h b/alib2data/src/tree/unranked/UnrankedTree.h
index c24fb26620..56ea7ee0b2 100644
--- a/alib2data/src/tree/unranked/UnrankedTree.h
+++ b/alib2data/src/tree/unranked/UnrankedTree.h
@@ -20,7 +20,7 @@
 #include <object/UniqueObject.h>
 
 #include "../TreeFeatures.h"
-#include "../UnrankedTreeBase.h"
+#include "../TreeBase.h"
 #include "../TreeException.h"
 #include "../common/TreeFromXMLParser.h"
 #include "../common/TreeToXMLComposer.h"
@@ -38,7 +38,7 @@ class GeneralAlphabet;
  * as a tree of RegExpElement.
  */
 template < class SymbolType >
-class UnrankedTree final : public UnrankedTreeBase, public alib::Components < UnrankedTree < SymbolType >, ext::set < SymbolType >, component::Set, GeneralAlphabet > {
+class UnrankedTree final : public TreeBase, public alib::Components < UnrankedTree < SymbolType >, ext::set < SymbolType >, component::Set, GeneralAlphabet > {
 	ext::tree < SymbolType > m_content;
 
 	void checkAlphabet ( const ext::tree < SymbolType > & pattern ) const;
@@ -47,12 +47,12 @@ public:
 	/**
 	 * @copydoc UnrankedNode::clone() const
 	 */
-	virtual UnrankedTreeBase * clone ( ) const;
+	virtual TreeBase * clone ( ) const;
 
 	/**
 	 * @copydoc UnrankedNode::plunder() const
 	 */
-	virtual UnrankedTreeBase * plunder ( ) &&;
+	virtual TreeBase * plunder ( ) &&;
 
 	explicit UnrankedTree ( ext::set < SymbolType > alphabet, ext::tree < SymbolType > tree );
 	explicit UnrankedTree ( ext::tree < SymbolType > tree );
@@ -139,12 +139,12 @@ UnrankedTree < SymbolType >::UnrankedTree ( const RankedTree < SymbolType, RankT
 }
 
 template < class SymbolType >
-UnrankedTreeBase * UnrankedTree < SymbolType >::clone ( ) const {
+TreeBase * UnrankedTree < SymbolType >::clone ( ) const {
 	return new UnrankedTree ( * this );
 }
 
 template < class SymbolType >
-UnrankedTreeBase * UnrankedTree < SymbolType >::plunder ( ) && {
+TreeBase * UnrankedTree < SymbolType >::plunder ( ) && {
 	return new UnrankedTree ( std::move ( * this ) );
 }
 
-- 
GitLab