code: func NewShardedCacheWithTTL(ttl time.Duration, f func() Cache) *ShardedTTL {
  	return &ShardedTTL{
  		cache:  NewShardedNoTS(f),
  		setAts: map[string]map[string]time.Time{},
  		ttl:    ttl,
  	}
  }
docs: // NewShardedCacheWithTTL creates a sharded cache system with TTL based on specified Cache constructor
  // Which everytime will return the true values about a cache hit
  // and never will leak memory
  // ttl is used for expiration of a key from cache