Getting rid of TypeAnnotation
Added type param P for transformations to identify precise target type
Tangential stuff