///|
let global_id_count : Ref[Int] = Ref(0)
///|
struct Id(Int) derive(Eq, Hash, Compare)
///|
pub impl Show for Id with fn output(self, buf) {
Show::output(self.0, buf)
}
///|
fn next_id() -> Int {
let id = global_id_count.val
global_id_count.val += 1
id
}
///|
#doc(hidden)
pub fn Id::new(_ : @key.Key) -> Id {
next_id()
}
///|
struct InstId(Int) derive(Eq, Hash)
///|
#doc(hidden)
pub fn InstId::new(_ : @key.Key) -> InstId {
next_id()
}