code: func (s *CacheOnStorage) Get(key interface{}) (interface{}, error) {
  	if item, err := s.cache.Get(key); err != nil {
  		return nil, err
  	} else if item != nil {
  		return item, nil
  	}
  
  	item, err := s.storage.Get(key)
  	if err != nil {
  		return nil, err
  	}
  
  	if err := s.cache.Set(item); err != nil {
  		// XXX: Maybe make this a non error
  		return nil, err
  	}
  	return item, nil
  }
docs: // See Storage for documentation.