module.exports = function(grunt) {

  "use strict";

  grunt.initConfig({ 
  
    libFiles: [
      "src/**/*.purs",
      "bower_components/purescript-*/src/**/*.purs"
    ],
    
    clean: ["tmp", "output"],
  
    pscMake: {
      lib: {
        src: ["<%=libFiles%>"]
      },
      tests: {
        src: ["tests/Tests.purs", "<%=libFiles%>"]
      }
    },

    dotPsci: ["<%=libFiles%>"],
 
    copy: [
      {
        expand: true,
        cwd: "output",
        src: ["**"],
        dest: "tmp/node_modules/"
      }, {
        src: ["js/index.js"],
        dest: "tmp/index.js"
      }
    ],

    execute: {
      tests: {
        src: "tmp/index.js"
      }
    }      
  });

  grunt.loadNpmTasks("grunt-contrib-copy");
  grunt.loadNpmTasks("grunt-contrib-clean");
  grunt.loadNpmTasks("grunt-execute")
  grunt.loadNpmTasks("grunt-purescript");
 
  grunt.registerTask("test", ["pscMake:tests", "copy", "execute:tests"]);
  grunt.registerTask("make", ["pscMake:lib", "dotPsci"]);
  grunt.registerTask("default", ["clean", "make", "test"]);
};

@@ -66,20 +66,17 @@
 Config(%7B
- %0A  
+%0A
 %0A    lib
@@ -166,21 +166,17 @@
 %0A    %5D,%0A
-    
 %0A
+
     clea
@@ -197,19 +197,17 @@
 tput%22%5D,%0A
-  
 %0A
+
     pscM
@@ -380,18 +380,17 @@
 es%25%3E%22%5D,%0A
- 
 %0A
+
     copy
@@ -658,22 +658,16 @@
  %7D%0A    %7D
-      
 %0A  %7D);%0A%0A
@@ -792,16 +792,17 @@
 xecute%22)
+;
 %0A  grunt
@@ -836,17 +836,16 @@
 ript%22);%0A
- 
 %0A  grunt

Remove trailing whitespace, add missing semicolon.