Extending Types Without Modification: The Wrapper Pattern Journey