pub opaque type Token(value)
pub fn name(token: Token(value)) -> String
pub fn new(name: String) -> Token(value)