Automatic testing of first order functions works fine. Testing higher order functions automatically is more troublesome, it is harder to generate the functions needed as argument automatically, and these generated functions cannot be shown when a counterexample is found. Nevertheless, higher order functions can contain errors and hence need to be tested. In this paper we present effective and efficient techniques to test higher order functions using intermediate data types. This data type mimics and controls the structure of the function to be generated. A simple additional function transforms this data structure to the function needed. Using the data types the test engineer can control the generation of functions and print them. We use a continuation based parser library as example. Automatic testing reveals errors is the published library that was used for a couple of years without problems.