úΈ–portable experimental%Bryan O'Sullivan <bos@serpentine.com> lazy pattern lazy target string offsets of matches  lazy pattern strict target string offsets of matches strict pattern strict target string offsets of matches strict pattern lazy target string offsets of matches  JGiven our pattern, get all the prefixes of the pattern. For each of those L prefixes, find the longest prefix from the original pattern that is also a L suffix of the prefix segment being considered, and is not equal to it. The O argument given to overlap is the length of the prefix matched so far, and the P length of the longest prefix, which is a suffix and is not equal to it, is the  value overlap returns. ?If a given prefix has no possible overlap, it is mapped to -1. <Given a string representing a search pattern, this function > returns a function which represents, for each prefix of that E pattern, the maximally long prefix of the pattern which is a suffix # of the indicated pattern segment. +If there is no such prefix, 0 is returned. portable experimental%Bryan O'Sullivan <bos@serpentine.com>  lazy pattern lazy target string offsets of matches  lazy pattern strict target string offsets of matches strict pattern lazy target string offsets of matches strict pattern strict target string offsets of matches      stringsearch-0.2.1.1'Data.ByteString.Search.KnuthMorrisPratt!Data.ByteString.Search.BoyerMoorematchLLmatchLSmatchSSmatchSL matchSSs'overlap computeLookupmatchSSdrelease matchSSsdoccurs emptyOccurs suffLengths suffShifts