Trait moniker::BoundTerm[][src]

pub trait BoundTerm<N> {
    fn term_eq(&self, other: &Self) -> bool;
fn close_term(&mut self, state: ScopeState, binders: &[Binder<N>]);
fn open_term(&mut self, state: ScopeState, binders: &[Binder<N>]);
fn visit_vars(
        &self,
        on_var: &mut impl FnMut(&Var<N>)
    );
fn visit_mut_vars(
        &mut self,
        on_var: &mut impl FnMut(&mut Var<N>)
    ); fn free_vars(&self) -> HashSet<FreeVar<N>>
    where
        N: Eq + Hash + Clone
, { ... } }

Terms that may contain variables that can be bound by patterns

Required Methods

Alpha equivalence in a term context

Provided Methods

Returns the set of free variables in this term

Implementations on Foreign Types

impl<N> BoundTerm<N> for ()
[src]

impl<N> BoundTerm<N> for String
[src]

impl<N> BoundTerm<N> for str
[src]

impl<N> BoundTerm<N> for char
[src]

impl<N> BoundTerm<N> for bool
[src]

impl<N> BoundTerm<N> for u8
[src]

impl<N> BoundTerm<N> for u16
[src]

impl<N> BoundTerm<N> for u32
[src]

impl<N> BoundTerm<N> for u64
[src]

impl<N> BoundTerm<N> for usize
[src]

impl<N> BoundTerm<N> for i8
[src]

impl<N> BoundTerm<N> for i16
[src]

impl<N> BoundTerm<N> for i32
[src]

impl<N> BoundTerm<N> for i64
[src]

impl<N> BoundTerm<N> for isize
[src]

impl<N> BoundTerm<N> for f32
[src]

impl<N> BoundTerm<N> for f64
[src]

impl<N> BoundTerm<N> for ByteIndex
[src]

impl<N> BoundTerm<N> for ByteOffset
[src]

impl<N> BoundTerm<N> for ColumnIndex
[src]

impl<N> BoundTerm<N> for ColumnNumber
[src]

impl<N> BoundTerm<N> for ColumnOffset
[src]

impl<N> BoundTerm<N> for LineIndex
[src]

impl<N> BoundTerm<N> for LineNumber
[src]

impl<N> BoundTerm<N> for LineOffset
[src]

impl<N, T> BoundTerm<N> for Span<T>
[src]

impl<N, T> BoundTerm<N> for Option<T> where
    T: BoundTerm<N>, 
[src]

impl<N, T> BoundTerm<N> for Box<T> where
    T: BoundTerm<N>, 
[src]

impl<N, T> BoundTerm<N> for Rc<T> where
    T: BoundTerm<N> + Clone
[src]

impl<N, T> BoundTerm<N> for Arc<T> where
    T: BoundTerm<N> + Clone
[src]

impl<N, T1, T2> BoundTerm<N> for (T1, T2) where
    T1: BoundTerm<N>,
    T2: BoundTerm<N>, 
[src]

impl<N, T1, T2, T3> BoundTerm<N> for (T1, T2, T3) where
    T1: BoundTerm<N>,
    T2: BoundTerm<N>,
    T3: BoundTerm<N>, 
[src]

impl<N, T> BoundTerm<N> for [T] where
    T: BoundTerm<N>, 
[src]

impl<N, T> BoundTerm<N> for Vec<T> where
    T: BoundTerm<N>, 
[src]

Implementors