code: func NewARC(size int) (*ARCCache, error) {
  	// Create the sub LRUs
  	b1, err := simplelru.NewLRU(size, nil)
  	if err != nil {
  		return nil, err
  	}
  	b2, err := simplelru.NewLRU(size, nil)
  	if err != nil {
  		return nil, err
  	}
  	t1, err := simplelru.NewLRU(size, nil)
  	if err != nil {
  		return nil, err
  	}
  	t2, err := simplelru.NewLRU(size, nil)
  	if err != nil {
  		return nil, err
  	}
  
  	// Initialize the ARC
  	c := &ARCCache{
  		size: size,
  		p:    0,
  		t1:   t1,
  		b1:   b1,
  		t2:   t2,
  		b2:   b2,
  	}
  	return c, nil
  }
docs: // NewARC creates an ARC of the given size