Distributive Laws In Programming Structures