See Problem 7.3
exr:gs-implementation
