separate is_validLambda and is_properLambdaFn (the latter also needs to do role "name" and be immutable); fix ListADT::cons to produce valid lambdas