Compose generics

Since using casting, why not just use the following code:
```java
return ((Transformer<T, R>) transformer).call(this);
```