I didn't expect this to compile, because it certainly looks to me like module (lfRg) has input value (def) of one bit, and (t_lfRg) treats it like it's three bits. But when I put this into EDA Playground ("https://www.edaplayground.com"), it works just fine; it compares (3'b010) with (3'b010) and returns a (1), just as if (lfRg)'s (def) was expected to be three bits. Does Verilog treat an input parameter as if it has the same number of bits as the input parameter before it, even though I didn't explicitly list the ([ 2:0]) for (def)?
But perhaps more to the point, if that answer is yes, and if I've declared an input parameter to be three bits long, how do I then specify after that an input parameter that is only one bit long?