#[derive(Debug)] struct Node<'a> { label: i32, next: Option<&'a Node<'a>>, } fn main () { let mut n = Node { label: 1, next: None }; unsafe { let raw = &mut n as *mut Node; (*raw).next = Some(&n); } println!("{}", n.label); println!("{}", n.next.unwrap().label); println!("{}", n.next.unwrap().next.unwrap().label); }