     assert nil? Sample.impl_for(self)
     assert nil? Sample.impl_for(hd(:erlang.ports))
     assert nil? Sample.impl_for(make_ref)
+    assert nil? Sample.impl_for(Range[])
 
     assert Sample.impl_for(Foo[]) ==
            Sample.ProtocolTest.Foo


  test :protocol_callback do
    assert get_callbacks(Sample, :blank, 1) ==
      [{:type, 9, :fun, [{:type, 9, :product, [{:type, 9, :t, []}]}, {:type, 9, :boolean, []}]}]

    assert get_callbacks(Prioritized, :blank, 1) ==
      [{:type, 17, :fun, [{:type, 17, :product, [{:type, 17, :t, []}]}, {:type, 17, :term, []}]}]
  end

  test :prioritization do
    assert Sample.__protocol__(:prioritize) ==
           [Record, Tuple, Atom, List, BitString, Number, Function, PID, Port, Reference]

    assert Prioritized.__protocol__(:prioritize) ==
           [List, Record, Tuple, Atom, BitString, Number, Function, PID, Port, Reference, Any]


  compile.(
    defprotocol Sample do
      @prioritize [Range]
      @type t :: any
      @doc "Blank"
      @spec blank(t) :: boolean
