What about using uintptr here? I think that will allow us to use *.Fd() directly instead of casting to int first