{"ast_node_type":"function","tokens":[{"end":96,"kind":"keyword","start":0,"text":"pub"}]}
    pub fn peel_derives_with_predicate(&self) -> (&Self, Option<ty::PolyTraitPredicate<'tcx>>) {
    /// derived obligations.
        let mut base_cause = self;