clause

open fun clause(function: S.() -> Any): Clause

Runs function with a newScope as its receiver and coerces its result to a Clause: returned as-is if it already is a Clause (e.g. a Rule), or wrapped into a Fact via factOf if it is a plain Struct.

Throws

if function's result is neither a Clause nor a Struct.