/// Gather type definitions mentioned in actor, return the non-recursive type names in topological order.
/// Recursive types can appear in any order.
Gather type definitions mentioned in actor, return the non-recursive type names in topological order.
Recursive types can appear in any order.
Gather type definitions mentioned in actor return the non - recursive type names in topological order . Recursive types can appear in any order .
pub fn chase_actor<'a>(env: &'a TypeEnv, actor: &'a Type) -> Result<Vec<&'a str>> {
    let mut seen = BTreeSet::new();
    let mut res = Vec::new();
    chase_type(&mut seen, &mut res, env, actor)?;
    Ok(res)
}
pub fn chase_actor < ' a > ( env : & ' a TypeEnv , actor : & ' a Type ) -> Result < Vec < & ' a str > > { let mut seen = BTreeSet :: new ( ) ; let mut res = Vec :: new ( ) ; chase_type ( & mut seen , & mut res , env , actor ) ? ; Ok ( res ) }
Gather type definitions mentioned in actor, return the non-recursive type names in topological order.
Gather type definitions mentioned in actor return the non - recursive type names in topological order .
env
&'a TypeEnv
actor
&'a Type