Now, obviously you're throwing away the second parameter passed in here, but if it's an empty class (therefore has no state) of the exact same type (so no "state" embedded in the type different from F,) then that should be safe to do, right?