You can't declare a var with a type path that isn't known at compile-time. It's the var/<don't know>/F that's your problem. What you need to do is this instead:
var/mob/F = new usr.Type(src)
Assuming usr.Type is a type path like /mob/red or a string like "/mob/cow", this will work.
It's fine to use a variable type path as part of new(), but not as part of var/.../F.
return M.type
var/O = ReturnType(src)
var/O/F = new(src)
Try that?