The EditDistance trait provides methods to compute the distance between 2 sequences
An IncludeExcludeTag is defined with inclusion/exclusion patterns
This trait provides a keep function which will determine if a element T must be kept with regards to:
A tag with names.
specialization of the IncludedExcluded trait for string separated tags
A trait for anything that can be sized
tags the next element
Utility methods for scalaz Trees
Stateful class to create unique names.
This tag will always keep its tagged element.
Similar to the AlwaysTag this tag is keeping elements only if there is no included tags
Hopcroft-Karp (https://en.wikipedia.org/wiki/Hopcroft%E2%80%93Karp_algorithm) algorithm for finding the maximum matching in a bipartite graph
Topological sorting is used to define the order of execution of dependent specifications when they form an acyclic graph