                 obj = new G()
                 (mro G).should.eql [G, D, B, F, C, E, A, Object]
                 obj.method().should.equal 'G>D>B>F>C>E>A'
+
 
         describe 'class methods', ->
 

            super
            @deriv = 'deriv'

    # Tests
    # -----

    describe 'mro', ->

        it 'throws an error when trying to linearize non-linearizable class hierarchy', ->
            expect (A, B, C) ->
                class A
                class B extends A
                class C extends multi A, B
            .to.throw(Error)

        it 'generates empty linearization for arbitrary object', ->
            (mro {}).should.eql []

                should.not.exist Map::__mro__
            if typeof Set isnt "undefined"
                should.not.exist Set::__mro__


        describe 'freezes class properties', ->
            # This is just a limitation of the approach and these
