hunk.code_window: 	// no tags
   	state.tags = m.observable(m.asStructure([]));
   	// custom transform
   	TreeNode.prototype.transform = function(iter, memo) {
   		memo = memo || [];
   		if (!state.tags.length || intersection(state.tags, this.tags).length) memo.push(iter(this));
   		this.children.forEach(function(child) { child.transform(iter, memo); });
   		return memo;
   	}
   	// setup
   	var node = new TreeNode('root', {tags: m.observable(m.asStructure([1]))});
   	node.addChild(new TreeNode('root-child-1', {tags: m.observable(m.asStructure([2]))}));
  
hunk.labels: keep keep keep keep replace replace replace replace replace keep keep keep keep keep
hunk.after_edit: 	TreeNode.prototype.transform = function(iteratee, results) {
   		results = results || [];
   		if (!state.tags.length || intersection(state.tags, this.tags).length) results.push(iteratee(this));
   		this.children.forEach(function(child) { child.transform(iteratee, results); });
   		return results;
  
hunk.file_path: test/transform.js
hunk.type: replace
file: .tscache
  .settings
  .travis.yml
  coverage
  dist
  publish.js
  notes.md
  src/
  test/
  webpack.*.js
  tsconfig.json