fixed code generation for more-than-two-dimensional product type data constructors... (the original code generated too few return statements...)
added strEq to prelude and headOption to list