in reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/RuleMatchImpl.kt [36:49]
override fun <V : Any> variable(meta: MetaLogical<V>): Logical<V> {
if (meta2logical.containsKey(meta)) return meta2logical[meta] as Logical<V>
val logical = subst[meta]?.let { value ->
when (value) {
is Logical<*> -> value
is LogicalOwner -> value.logical()
else -> LogicalImpl(meta, value as V)
}
} ?: meta.logical()
meta2logical[meta] = logical
return logical as Logical<V>
}