Sorry, I’ve made a mistake. intZ here is not a theano.op. It’s a tensor variable since it has already been evaluated by (x,y).
In fact, it won’t give an error in the step defining M, but would return errors while sampling the model, if x and y are RVs.