class B {
    b = "world";

    Boo() {
       return this.b+"?";
    }
  }

export class A extends B {
  a = "hello"

  Aoo(space=" ") {
     return this.a+space;
  }

  toString() {
     return this.Aoo()+this.Boo(); 
  }
}

// A mix-in class
function Mix(base: any) {
   return class Mix extends base {
      m = 5;

      toString() {
         return (this.Aoo()+this.Boo()+"\n").repeat(this.m); 
      } 
   }
}

// A mix-in class
function Mixx(base: any) {
   return class Mixx extends base {
      constructor() {
         super();
         this.a = "*"+this.a+"*"
      }
   }
}

let MixA = Mix(A);

let MixxA = Mixx(MixA);

let a = new MixxA();

export const mixx_text = a.toString();

