diff --git a/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.analysis.mps b/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.analysis.mps
index b78a4719..72802572 100644
--- a/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.analysis.mps
+++ b/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.analysis.mps
@@ -1684,218 +1684,42 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1904,6 +1728,301 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/solutions/jetbrains.mps.lang.coderules.template/models/jetbrains.mps.lang.coderules.template.mps b/coderules/solutions/jetbrains.mps.lang.coderules.template/models/jetbrains.mps.lang.coderules.template.mps
index 2dfbb6ad..da4758b0 100644
--- a/coderules/solutions/jetbrains.mps.lang.coderules.template/models/jetbrains.mps.lang.coderules.template.mps
+++ b/coderules/solutions/jetbrains.mps.lang.coderules.template/models/jetbrains.mps.lang.coderules.template.mps
@@ -3,8 +3,8 @@
-
-
+
+
diff --git a/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ProcessingStateImpl.kt b/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ProcessingStateImpl.kt
index 5c8e11b1..a2698e22 100644
--- a/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ProcessingStateImpl.kt
+++ b/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ProcessingStateImpl.kt
@@ -237,8 +237,7 @@ internal class ProcessingStateImpl(private var dispatchingFront: Dispatcher.Disp
if (isFront() || !active.isPrincipal()) {
matches
} else {
- // FIXME this assertion fails in certain tests, fix and re-enable
-// assert( matches.all { ispec.isPrincipal(it.rule()) } )
+ assert( matches.all { ispec.isPrincipal(it.rule()) } )
execQueue.postponeFutureMatches(matches)
}
val currentMatches = execQueue.withPostponedMatches(active, newCurrentMatches)