A functional extension to C