public static Locked <Child> GetChild(Locked <Parent> parent, ILockResolver resolver)
 {
     return(new Child(parent.Yield(), resolver).LockedObject);
 }
 public static Locked <Parent> GetParent(Locked <Root> root, ILockResolver resolver)
 {
     return(new Parent(root.Yield(), resolver).LockedObject);
 }
 public static Locked <Child> GetChild(Locked <Parent> parent)
 {
     return(new Child(parent.Yield()).LockedObject);
 }
 public static Locked <Parent> GetParent(Locked <Root> root)
 {
     return(new Parent(root.Yield()).LockedObject);
 }