(use tinyclos c3 testeez) (testeez "c3" (test/equal "Michele Simionato's example 1" (begin (define O ) (define-class F (O) ()) (define-class E (O) ()) (define-class D (O) ()) (define-class C (D F) ()) (define-class B (D E) ()) (define-class A (B C) ()) (class-cpl A)) (list A B C D E F )) (test/equal "Michele Simionato's example 2" (begin (define O ) (define-class F (O) ()) (define-class E (O) ()) (define-class D (O) ()) (define-class C (D F) ()) (define-class B (E D) ()) (define-class A (B C) ()) (class-cpl A)) (list A B E C D F )) (test/equal "Pedroni's example" (begin (define O ) (define-class A(O) ()) (define-class B(O) ()) (define-class C(O) ()) (define-class D(O) ()) (define-class E(O) ()) (define-class K1(A B C) ()) (define-class K2(D B E) ()) (define-class K3(D A) ()) (define-class Z(K1 K2 K3) ()) (class-cpl Z)) (list Z K1 K2 K3 D A B C E )) )