Preserve non-function types when defunctionalising patterns.
Preserve non-function types when defunctionalising patterns.

This feels hacky and ad-hoc, but is necessary because we don't
properly preserve sizes when generating calls to lifted functions.
The defunctionaliser is really creaking now.

diku-dk/futhark,diku-dk/futhark,diku-dk/futhark,HIPERFIT/futhark,diku-dk/futhark,diku-dk/futhark,HIPERFIT/futhark,HIPERFIT/futhark