This is done by implementing the required functions for your custom type. Sadly I could not solve this by using the regular traits like `Add`, since I can't easily check if a different trait is implemented.