///
//// type MixinCtor = new () => A & B & { constructor: MixinCtor };
//// function merge(a: { prototype: A }, b: { prototype: B }): MixinCtor {
//// let merged = function() { }
//// Object.assign(merged.prototype, a.prototype, b.prototype);
//// return >merged;
//// }
////
//// class TreeNode {
//// value: any;
//// }
////
//// abstract class LeftSideNode extends TreeNode {
//// abstract right(): TreeNode;
//// left(): TreeNode {
//// return null;
//// }
//// }
////
//// abstract class RightSideNode extends TreeNode {
//// abstract left(): TreeNode;
//// right(): TreeNode {
//// return null;
//// };
//// }
////
//// var obj = new (merge(LeftSideNode, RightSideNode))();
//// obj./**/
verify.completions({ marker: "", exact: ["right", "left", "value", "constructor"] });