Then let's imagine there is a function that registers tasks globally, returning a handle that lets you call the task from other tasks.
It builds up a constraint for a Task type, but then has an extra type (TaskPointer), and then returns a TaskReference of TaskPointer. What does TaskPointer do?