Is it possible to implement custom inference in Turing?

I’m new to Turing, but I have quite a lot of experience in probabilistic programming. Particularly with models that can be expressed as factor graphs (e.g. Infer NET or ForneyLab.jl).

Turing looks really neat. Is it reasonably easy to implement custom inference based on existing algorithms? E.g. implement custom proposals, and reuse the rest of the machinery as one can do in e.g. Gen.jl? Furthermore, is this documented?

As far as I understand, Mamba.jl offers this too, but it’s limited to hierarchical models (i.e. it’s not Turing-complete).

Have you had a read of this tutorial: https://turing.ml/dev/docs/for-developers/how_turing_implements_abstractmcmc ?