Modified surface API to handle path clipping, now using a Free monad under the scene.