test_class.declarator: five =Range.range(1,5)
test_class.original_string: Range<Integer> five =Range.range(1,5);
test_class.type: Range<Integer>
test_class.var_name: five
test_class.declarator: days = Range.range(Tuesday, Saturday, enums(Days.class))
test_class.original_string: Range<Days> days = Range.range(Tuesday, Saturday, enums(Days.class));
test_class.type: Range<Days>
test_class.var_name: days
test_class.file: cyclops/src/test/java/cyclops/data/RangeTest.java
test_class.identifier: RangeTest
test_case.body: @Test
      public void minusAll() throws Exception {
          Option<Tuple2<Range<Days>, Option<Range<Days>>>> toFriday = days.minusAll(Range.range(Friday, Sunday, enums(Days.class)));
  
          assertThat(toFriday.map(t2->t2._1().end).orElse(Monday),equalTo(Friday));
      }
test_case.class_method_signature: RangeTest.minusAll()
test_case.full_signature: @Test public void minusAll()
test_case.identifier: minusAll
test_case.invocations: minusAll range enums assertThat orElse map _1 equalTo
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void minusAll()
focal_class.declarator: serialVersionUID = 1L
focal_class.modifier: private static final
focal_class.original_string: private static final long serialVersionUID = 1L;
focal_class.type: long
focal_class.var_name: serialVersionUID
focal_class.declarator: start
focal_class.modifier: public final
focal_class.original_string: public final T start;
focal_class.type: T
focal_class.var_name: start
focal_class.declarator: end
focal_class.modifier: public final
focal_class.original_string: public final T end;
focal_class.type: T
focal_class.var_name: end
focal_class.declarator: enm
focal_class.modifier: private final
focal_class.original_string: private final Enumeration<T> enm;
focal_class.type: Enumeration<T>
focal_class.var_name: enm
focal_class.declarator: comp
focal_class.modifier: private final
focal_class.original_string: private final Ordering<? super T> comp;
focal_class.type: Ordering<? super T>
focal_class.var_name: comp
focal_class.file: cyclops/src/main/java/cyclops/data/Range.java
focal_class.identifier: Range
focal_class.interfaces: implements Iterable<T>, Higher<range,T>, Serializable
focal_class.class_method_signature: Range.range(T start, T end, Enumeration<T> enm, Comparator<? super T> comp)
focal_class.full_signature: public static Range<T> range(T start, T end, Enumeration<T> enm, Comparator<? super T> comp)
focal_class.identifier: range
focal_class.modifiers: public static
focal_class.parameters: (T start, T end, Enumeration<T> enm, Comparator<? super T> comp)
focal_class.return: Range<T>
focal_class.signature: Range<T> range(T start, T end, Enumeration<T> enm, Comparator<? super T> comp)
focal_class.class_method_signature: Range.range(T start, T end, Enumeration<T> enm)
focal_class.full_signature: public static Range<T> range(T start, T end, Enumeration<T> enm)
focal_class.identifier: range
focal_class.modifiers: public static
focal_class.parameters: (T start, T end, Enumeration<T> enm)
focal_class.return: Range<T>
focal_class.signature: Range<T> range(T start, T end, Enumeration<T> enm)
focal_class.class_method_signature: Range.range(int start,int end)
focal_class.full_signature: public static Range<Integer> range(int start,int end)
focal_class.identifier: range
focal_class.modifiers: public static
focal_class.parameters: (int start,int end)
focal_class.return: Range<Integer>
focal_class.signature: Range<Integer> range(int start,int end)
focal_class.class_method_signature: Range.enumeration()
focal_class.full_signature: public Enumeration<T> enumeration()
focal_class.identifier: enumeration
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Enumeration<T>
focal_class.signature: Enumeration<T> enumeration()
focal_class.class_method_signature: Range.startsBefore(Range<T> r)
focal_class.full_signature: public boolean startsBefore(Range<T> r)
focal_class.identifier: startsBefore
focal_class.modifiers: public
focal_class.parameters: (Range<T> r)
focal_class.return: boolean
focal_class.signature: boolean startsBefore(Range<T> r)
focal_class.class_method_signature: Range.endsAfter(Range<T> r)
focal_class.full_signature: public boolean endsAfter(Range<T> r)
focal_class.identifier: endsAfter
focal_class.modifiers: public
focal_class.parameters: (Range<T> r)
focal_class.return: boolean
focal_class.signature: boolean endsAfter(Range<T> r)
focal_class.class_method_signature: Range.map(Function<? super T,? extends R> fn, Enumeration<R> enm, Comparator<? super R> comp)
focal_class.full_signature: public Range<R> map(Function<? super T,? extends R> fn, Enumeration<R> enm, Comparator<? super R> comp)
focal_class.identifier: map
focal_class.modifiers: public
focal_class.parameters: (Function<? super T,? extends R> fn, Enumeration<R> enm, Comparator<? super R> comp)
focal_class.return: Range<R>
focal_class.signature: Range<R> map(Function<? super T,? extends R> fn, Enumeration<R> enm, Comparator<? super R> comp)
focal_class.class_method_signature: Range.ordering()
focal_class.full_signature: public Ordering<? super T> ordering()
focal_class.identifier: ordering
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Ordering<? super T>
focal_class.signature: Ordering<? super T> ordering()
focal_class.class_method_signature: Range.reverse()
focal_class.full_signature: public Range<T> reverse()
focal_class.identifier: reverse
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Range<T>
focal_class.signature: Range<T> reverse()
focal_class.class_method_signature: Range.contains(T value)
focal_class.full_signature: public boolean contains(T value)
focal_class.identifier: contains
focal_class.modifiers: public
focal_class.parameters: (T value)
focal_class.return: boolean
focal_class.signature: boolean contains(T value)
focal_class.class_method_signature: Range.contains(Range<T> compareTo)
focal_class.full_signature: public boolean contains(Range<T> compareTo)
focal_class.identifier: contains
focal_class.modifiers: public
focal_class.parameters: (Range<T> compareTo)
focal_class.return: boolean
focal_class.signature: boolean contains(Range<T> compareTo)
focal_class.class_method_signature: Range.plusAll(Range<T> range)
focal_class.full_signature: public Tuple2<Range<T>,Option<Range<T>>> plusAll(Range<T> range)
focal_class.identifier: plusAll
focal_class.modifiers: public
focal_class.parameters: (Range<T> range)
focal_class.return: Tuple2<Range<T>,Option<Range<T>>>
focal_class.signature: Tuple2<Range<T>,Option<Range<T>>> plusAll(Range<T> range)
focal_class.class_method_signature: Range.minusAll(Range<T> range)
focal_class.full_signature: public Option<Tuple2<Range<T>,Option<Range<T>>>> minusAll(Range<T> range)
focal_class.identifier: minusAll
focal_class.modifiers: public
focal_class.parameters: (Range<T> range)
focal_class.return: Option<Tuple2<Range<T>,Option<Range<T>>>>
focal_class.signature: Option<Tuple2<Range<T>,Option<Range<T>>>> minusAll(Range<T> range)
focal_class.class_method_signature: Range.intersection(Range<T> toMerge)
focal_class.full_signature: public Option<Range<T>> intersection(Range<T> toMerge)
focal_class.identifier: intersection
focal_class.modifiers: public
focal_class.parameters: (Range<T> toMerge)
focal_class.return: Option<Range<T>>
focal_class.signature: Option<Range<T>> intersection(Range<T> toMerge)
focal_class.class_method_signature: Range.stream()
focal_class.full_signature: public ReactiveSeq<T> stream()
focal_class.identifier: stream
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: ReactiveSeq<T>
focal_class.signature: ReactiveSeq<T> stream()
focal_class.class_method_signature: Range.lazySeq()
focal_class.full_signature: public LazySeq<T> lazySeq()
focal_class.identifier: lazySeq
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: LazySeq<T>
focal_class.signature: LazySeq<T> lazySeq()
focal_class.class_method_signature: Range.toString()
focal_class.full_signature: @Override public String toString()
focal_class.identifier: toString
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_class.class_method_signature: Range.allToString()
focal_class.full_signature: public String allToString()
focal_class.identifier: allToString
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String allToString()
focal_class.class_method_signature: Range.iterator()
focal_class.full_signature: @Override public Iterator<T> iterator()
focal_class.identifier: iterator
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Iterator<T>
focal_class.signature: Iterator<T> iterator()
focal_method.body: public Option<Tuple2<Range<T>,Option<Range<T>>>> minusAll(Range<T> range){
          //            |         |  <--range
          // |    |
          if (comp.isLessThan(end, range.start)) {
              return Option.some(tuple(this, Option.none()));
          }
          //                           |   |
          if(comp.isGreaterThanOrEqual(start,range.end)){
              return Option.some(tuple(this, Option.none()));
          }
          //                 | |
          if(range.contains(this)){
              return Option.none();
          }
          if(comp.isLessThanOrEqual(start,range.start)){
              if(comp.isLessThanOrEqual(end,range.end))
                  return Option.some(tuple(range(start,range.start,enm,comp), Option.none()));
              else
                  return Option.some(tuple(range(start,range.start,enm,comp), Option.some(range(range.end,end,enm,comp))));
          }
  
          //     |              |  <--range
          // |       |
          // |                            |
          //               |            |
          return Option.some(tuple(range(range.end,end,enm,comp), Option.none()));
  
      }
focal_method.class_method_signature: Range.minusAll(Range<T> range)
focal_method.full_signature: public Option<Tuple2<Range<T>,Option<Range<T>>>> minusAll(Range<T> range)
focal_method.identifier: minusAll
focal_method.invocations: isLessThan some tuple none isGreaterThanOrEqual some tuple none contains none isLessThanOrEqual isLessThanOrEqual some tuple range none some tuple range some range some tuple range none
focal_method.modifiers: public
focal_method.parameters: (Range<T> range)
focal_method.return: Option<Tuple2<Range<T>,Option<Range<T>>>>
focal_method.signature: Option<Tuple2<Range<T>,Option<Range<T>>>> minusAll(Range<T> range)