   where
     S1.Generator.Element == S2.Generator.Element
 >(a1: S1, a2: S2,
-  isEquivalent: (S1.Generator.Element, S1.Generator.Element) -> Bool) -> Bool
+  @noescape isEquivalent: (S1.Generator.Element, S1.Generator.Element) -> Bool)
+  -> Bool
 {
   var g1 = a1.generate()
   var g2 = a2.generate()

  where
    S0.Generator.Element == S1.Generator.Element
>(s: S0, prefix: S1,
  isEquivalent: (S1.Generator.Element, S1.Generator.Element) -> Bool) -> Bool
{
  var prefixGenerator = prefix.generate()


/// the result for each pair of consecutive 
public func split<S: Sliceable, R:BooleanType>(
  elements: S, 
  @noescape isSeparator: S.Generator.Element -> R, 
  maxSplit: Int = Int.max,
  allowEmptySlices: Bool = false
  ) -> [S.SubSlice] {
