generalised type signature of associateCompose