Yield Prolog, unification and coroutines in Scala

Good day

How can I implement methods described in http://yieldprolog.sourceforge.net/ ?

What features of Scala can I use to make unification and logic inference more effective?

What tutorials should I read about using generator functions (how they are called in Scala?)
and using green threads for parallel inference?

Is it possible to do parallel unification and backtracking works not in deep but in a wide search?