pub trait OnFreeFn<N> { fn call( &self, state: ScopeState, free_var: &FreeVar<N> ) -> Option<BoundVar<N>>; }