Minor fix in type inference for case expressions

Something like this:

f pred x = case pred x of {
    True  -> 1;
    False -> 0;
};

was getting typed as (a -> b) -> a -> Int instead of (a -> Bool) -> a -> Int.
Just needed to propagate the substitution generated when unifying the type
of the scrutinee (pred x, above) with the type of the alternative's pattern's
return type (True or False, above)