When we attach witnesses to programs we know the type that we're expecting and don't need the user to hint it. (At least, not since #160 which brought in a much-improved Value API.)
Probably still useful to allow hints, which can catch errors and help guide the compiler in more complex cases where it needs to shrink types or something. But in the majority of cases witnesses are things like fixed-size public keys or signatures where the type annotation doesn't provide any more information than the length of the hex string.