title: What is the difference between `Range#include?` and `Range#cover?`?
body: <p><strong>Edit</strong> Fixed following toro2k's comment.</p>
  
  <p><code>Range#include?</code> and <code>Range#cover?</code> seem to be different as seen in the source code <a href="http://www.ruby-doc.org/core-2.1.0/Range.html#method-i-cover-3F" rel="noreferrer">1</a>, <a href="http://www.ruby-doc.org/core-2.1.0/Range.html#method-i-cover-3F" rel="noreferrer">2</a>, and they are different in efficiency.</p>
  
  <pre><code>t = Time.now
  500000.times do
      ("a".."z").include?("g")
  end
  puts Time.now - t    # =&gt; 0.504382493
  
  t = Time.now
  500000.times do
      ("a".."z").cover?("g")
  end
  puts Time.now - t    # =&gt; 0.454867868
  </code></pre>
  
  <p>Looking at the source code, <code>Range#include?</code> seems to be more complex than <code>Range#cover?</code>. Why can't <code>Range#include?</code> be simply an alias of <code>Range#cover?</code> What is their difference?</p>