Routine from function issue

Here I am trying to have two unique nested routines derived from the ~func. However in this example only the first routine ‘a’ runs not the second why is that?

~func = ({	arg time=3, wrd = "this";loop{ time.wait; wrd.postln} } );

Routine( {var a = ~func, b = ~func;

	a.(9,"this is a").fork;
	b.(3,"this is b").fork;

} ).play

(
~func = { arg time = 3, wrd = "this";
	{
		loop {
			time.wait;
			wrd.postln
		}
	}
};

Routine {
	var a = ~func, b = ~func;
	a.(9,"this is a").fork;
	b.(3,"this is b").fork;
}.play;
)

hjh