There is a branch that builds Dask tasks for algorithms in one of two ways, depending on whether the return value is a registered concrete type, or a python type:
https://github.com/metagraph-dev/metagraph/blob/main/metagraph/core/dask/resolver.py#L215-L230
This doesn't seem to be necessary and will make visualization and analysis harder. The result should always be a Placeholder object.