// Note: The maps are nested like with ThreadLocal (lookup thread first, then variable.)
sclass FiberLocal implements IVar {
  // internal
  Map flv() { ret currentFiber().fiberLocalValues; }
  
  bool isSet() { ret flv().containsKey(this); }
  
  public A get() {
    ret (A) flv().get(this);
  }
  
  public void set(A a) {
    mapPutOrRemove(flv(), this, a);
  }
}