Combinators for Algebraic Structures