Self

zio.blocks.schema.comptime.Allows.Self
sealed abstract class Self extends Structural

Recursive self-reference. When used inside a grammar expression, Self refers back to the entire enclosing Allows[…, S] constraint, allowing the grammar to describe recursive data structures.

Mutual recursion between two or more distinct types is a compile-time error.

Non-recursive types satisfy Self-containing grammars without issue: since the Self position is never reached, the constraint is vacuously satisfied.

Attributes

Source
Allows.scala
Graph
Supertypes
class Structural
class Object
trait Matchable
class Any
In this article