pub fn new(e: &mut Elaborator) -> Compiler {
    Compiler {
      keywords: e.env.make_keywords(),
      names: Compiler::make_names(&mut e.env),
      mir: Default::default(),
      init: Default::default(),
      predef: PredefMap::new(|_, s| e.env.get_atom(s.as_bytes())),
      prefix: "_mmc_".into(),
    }
  }
/// Create a new [`Compiler`] object. This mutates the elaborator because
/// it needs to allocate atoms for MMC keywords.
Create a new [`Compiler`] object. This mutates the elaborator because
it needs to allocate atoms for MMC keywords.
Create a new [ ` Compiler ` ] object . This mutates the elaborator because it needs to allocate atoms for MMC keywords .
pub fn new(e: &mut Elaborator) -> Compiler {
    Compiler {
      keywords: e.env.make_keywords(),
      names: Compiler::make_names(&mut e.env),
      mir: Default::default(),
      init: Default::default(),
      predef: PredefMap::new(|_, s| e.env.get_atom(s.as_bytes())),
      prefix: "_mmc_".into(),
    }
  }
pub fn new ( e : & mut Elaborator ) -> Compiler { Compiler { keywords : e . env . make_keywords ( ) , names : Compiler :: make_names ( & mut e . env ) , mir : Default :: default ( ) , init : Default :: default ( ) , predef : PredefMap :: new ( | _ , s | e . env . get_atom ( s . as_bytes ( ) ) ) , prefix : " " . into ( ) , } }
Create a new [`Compiler`] object.
Create a new [ ` Compiler ` ] object .
e
&mut Elaborator
e
&mut Elaborator