diff --git a/.github/workflow/ci.yml b/.github/workflows/ci.yml
similarity index 100%
rename from .github/workflow/ci.yml
rename to .github/workflows/ci.yml
diff --git a/.gitignore b/.gitignore
index 711604d3f426c270728806cb697526a5b768f595..06fc7d9d0948f172a35dbe82a709b36287990687 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,5 +8,6 @@ project/metals.sbt
 .bsp
 .bloop
 target
+*.scala.semanticdb
 
 *.iml
diff --git a/src/main/scala/lisa/kernel/fol/CommonDefinitions.scala b/src/main/scala/lisa/kernel/fol/CommonDefinitions.scala
index c701d239bfcd346a57ea611231aee7626a8e1727..f1d01c420b8cd805aa678670f090442dabac2ed4 100644
--- a/src/main/scala/lisa/kernel/fol/CommonDefinitions.scala
+++ b/src/main/scala/lisa/kernel/fol/CommonDefinitions.scala
@@ -16,7 +16,7 @@ private[fol] trait CommonDefinitions {
   /**
    * An labelled node for tree-like structures.
    */
-  protected trait Label[A <: Label[A]] extends Ordered[A] {
+  protected trait Label {
     val id: String
   }
 
diff --git a/src/main/scala/lisa/kernel/fol/FormulaLabelDefinitions.scala b/src/main/scala/lisa/kernel/fol/FormulaLabelDefinitions.scala
index 1f40fb69ead8d53a7974fa87a5839441e554cf0b..28b6c86946953303643d4a45dc1e360dca7de3a0 100644
--- a/src/main/scala/lisa/kernel/fol/FormulaLabelDefinitions.scala
+++ b/src/main/scala/lisa/kernel/fol/FormulaLabelDefinitions.scala
@@ -10,7 +10,7 @@ private[fol] trait FormulaLabelDefinitions extends CommonDefinitions {
    * It similar as with terms; they denote the Predicates and logical connector themselves, and not the terms they help forming.
    * They label the nodes of a tree that defines a formula.
    */
-  sealed abstract class FormulaLabel extends Label[FormulaLabel] {
+  sealed abstract class FormulaLabel extends Label with Ordered[FormulaLabel] {
     def priority: Int = this match {
       case _: ConstantPredicateLabel => 1
       case _: SchematicPredicateLabel => 2
diff --git a/src/main/scala/lisa/kernel/fol/TermLabelDefinitions.scala b/src/main/scala/lisa/kernel/fol/TermLabelDefinitions.scala
index c08080f2119263af321ac2d9a3cb3b582ff7245b..4d36c24773ff392cd97dbf2036f8997856f52bc0 100644
--- a/src/main/scala/lisa/kernel/fol/TermLabelDefinitions.scala
+++ b/src/main/scala/lisa/kernel/fol/TermLabelDefinitions.scala
@@ -11,7 +11,7 @@ private[fol] trait TermLabelDefinitions extends CommonDefinitions {
    * For example, Powerset is not a term itself, it's a label for a node with a single child in a tree corresponding to a term.
    * In logical terms, those labels are essentially symbols of sme language.
    */
-  sealed abstract class TermLabel extends Label[TermLabel] {
+  sealed abstract class TermLabel extends Label with Ordered[TermLabel] {
     def priority: Int = this match {
       case _: VariableLabel => 1
       case _: ConstantFunctionLabel => 2