Problem
Currently, precompile structs are defined as actual keepers, which makes them unusable in extended keepers or modified modules.
Closing criteria
Redefining the keeper of a precompile struct as an interface.
Problem details
If you define an interface for the functions used in the module, like types in other modules of cosmos-sdk, and the Precompile struct has the interface keeper, the extensibility of the module will increase.