I downloaded the RTClib library from https://github.com/adafruit/RTClib. In every provided example, #include <Wire.h> is written immediately above #include "RTClib.h" at the top of the sketch.
Why is this necessary? I know the RTClib library requires the functionality of the Wire library but, if this is the case, why can't I just #include <Wire.h> at the top of RTClib.h? I have tried the latter, even using just the following sketch, but my sketch failed to compile.
RTClib.h:
// Code by JeeLabs http://news.jeelabs.org/code/
// Released to the public domain! Enjoy!
#ifndef _RTCLIB_H_
#define _RTCLIB_H_
#include <Wire.h>
...
#endif // _RTCLIB_H_
Sketch:
#include "RTClib.h"
void setup() {}
void loop() {}