anchor.diff:      overlapping_blocks => blocks(),
       count => non_neg_integer(),
       skip_local => boolean()}.
  +% Definition of blocks sequence list - see get_overlapping_blocks_sequence/2 funstion doc
  +-type blocks_sequences() :: [{ConsistentBlocksRange :: blocks(), OverlappingBlocks :: blocks()}].
  +-type getting_sequence_block_result() :: #{
  +    action := finish | start_new_sequence,
  +    remaining_blocks_to_split := blocks(),
  +    blocks_to_split_sequence := blocks(),
  +    existing_blocks_overlapping_with_sequenc := blocks()
  +}.
   
   -export_type([block/0, blocks/0, blocks_tree/0, stored_blocks/0, get_doc_opts/0]).
   
  
positive.code:             Location#file_location{blocks = lists:sublist(Blocks, Num)}}};
          Error ->
              Error
      end.
negative.code:     set_blocks/2, set_final_blocks/2, update_blocks/2, clear_blocks/2]).
  %% Blocks API
  -export([get_location_size/2, get_blocks_range/1, get_blocks_range/2]).
  
  %% Max hole in sequence - see get_overlapping_blocks_sequence/2 function doc
  -define(MAX_HOLE, application:get_env(?APP_NAME, overlapping_seqiences_max_hole, 5)).
  
  %%%===================================================================
  %%% Location getters/setters
  