This function first evaluates the argument term into whnf via
whnf and then projects the top-level signature to the desired
subsignature. Failure to do the projection is signalled as a
failure in the monad.