     expectStreamEvents(
       -> series(1, [1, 2]).skip(-1)
     [1, 2])
+  describe "works with synchronous source", ->
+    expectStreamEvents(
+      -> Bacon.fromArray([1, 2, 3]).skip(1)
+    [2, 3])
 
 describe "EventStream.skipWhile", ->
   describe "skips filter predicate holds true", ->

          throw "testing"
        s
      [])

describe "EventStream.takeWhile", ->
  describe "takes while predicate is true", ->

    expectPropertyEvents(
      -> series(1, [2]).toProperty(1).scan(null, add)
      [1, 3])
  describe "for synchronous source", ->
    describe "with Init value, starts with f(seed, init)", ->
      expectPropertyEvents(
        -> Bacon.fromArray([2,3]).toProperty(1).scan(0, add)
        [1, 3, 6])
    describe "without Init value, starts with seed", ->
      expectPropertyEvents(
        -> Bacon.fromArray([2,3]).toProperty().scan(0, add)
        [0, 2, 5])
    describe "works with synchronously responding empty source", ->
      expectPropertyEvents(
        -> Bacon.never().toProperty(1).scan(0, add)
        [1])

describe "EventStream.withStateMachine", ->
  describe "runs state machine on the stream", ->
