A library to make C amenable to functional programming