Be more specific with lifetime in `Compile` trait