pub fn solve_clause(
db_state: state.DbState,
clause: ast.BodyClause,
ctx: dict.Dict(String, fact.Value),
rules: List(ast.Rule),
as_of_tx: option.Option(Int),
as_of_valid: option.Option(Int),
nested_solve: fn(
solver_context.SolverContext,
List(ast.BodyClause),
List(dict.Dict(String, fact.Value)),
) -> #(
List(dict.Dict(String, fact.Value)),
option.Option(dict.Dict(String, List(internal.StorageChunk))),
),
solve_clause_with_derived: fn(
state.DbState,
ast.BodyClause,
dict.Dict(String, fact.Value),
set.Set(fact.Datom),
option.Option(Int),
option.Option(Int),
) -> #(
List(dict.Dict(String, fact.Value)),
option.Option(dict.Dict(String, List(internal.StorageChunk))),
),
) -> #(
List(dict.Dict(String, fact.Value)),
option.Option(dict.Dict(String, List(internal.StorageChunk))),
)