fix up structure of the returned signal type
reinstate all tests in userdefined... but with correct semantics, yay