syntax_data: {"ast_node_type":"other","tokens":[{"end":37,"kind":"keyword","start":0,"text":"pub"}]}
source_snippet: pub trait Elaboratable<I: Interner> {
context_before: /// Describes how to elaborate an obligation into a sub-obligation.
context_after:     fn predicate(&self) -> I::Predicate;