Thing is the call graph is the following: 

@trail.stat(path) => stat => Index.new => stat

Every trail.stat call is uncached. We could cache that Index.new ... but it would change the way the API is designed.