def __init__ ( self, *types, **metadata ):
        if len( types ) == 0:
            self.init_fast_validator( 11, tuple, None, list )

            super( BaseTuple, self ).__init__( (), **metadata )

            return

        default_value = None

        if isinstance( types[0], tuple ):
            default_value, types = types[0], types[1:]
            if len( types ) == 0:
                types = [ Trait( element ) for element in default_value ]

        self.types = tuple( [ trait_from( type ) for type in types ] )
        self.init_fast_validator( 9, self.types )

        if default_value is None:
            default_value = tuple( [ type.default_value()[1]
                                     for type in self.types ] )

        super( BaseTuple, self ).__init__( default_value, **metadata )
Sample the next state given the previous time index
dataset/ETHPy150Open enthought/traits/traits/trait_types.py/BaseTuple.__init__--crossover with--dataset/ETHPy150Open HIPS/pgmult/pgmult/particle_lds.py/_CategoricalLikelihood.sample