use strict profunctorial newtype composition