def traverse(self): n = 3 l = LazyList(map(Just, range(n))) target = LazyList(List.wrap(range(n))) (l.sequence(Maybe) / _.drain).should.contain(target.drain)