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

/// accumulated value initialized to `initial` and each element of
/// `sequence`, in turn.
public func reduce<S : SequenceType, U>(
  sequence: S, initial: U, combine: (U, S.Generator.Element)->U
) -> U {
  var result = initial
  for element in sequence {

/// Return `true` iff an element in `seq` satisfies `predicate`.
public func contains<
  S : SequenceType, L : BooleanType
>(seq: S, @noescape predicate: S.Generator.Element -> L) -> Bool {
  for a in seq {
    if predicate(a) {
      return true
