
.type name <: symbol

.decl a(n:name)
.output a()
.decl b(n:name)
.output b()
.decl c(n:name)
.output c()

a("A").
a("B").

// this is not allowed (no stable solution)
b(X) :- a(X), !c(X).
c(X) :- a(X), !b(X).


// and also this
a(X) :- a(X), !a(X).
