Los lenguajes de programación modernos poseen características que aumentan considerablemente su poder expresivo. Este poder expresivo permite la internalización de las estructuras matemáticas que sustentan la semántica de los lenguajes. Dichas estructuras proveen abstracciones que facilitan distintos aspectos del desarrollo de software, como ser modularidad, optimización, seguridad y verificación. Nos proponemos investigar las propiedades y aplicaciones de estructuras tales como mónadas, arrows, y functores aplicativos.