src/contracts: Fix contracts on virtual and generic type