Angularjs breaks with coffeescript function expression

I'm working on integrating AngularJs into an example Nodejs application. My controller is as follows:

UsersCtrl = ($scope, $http) ->    
   $scope.newUser = {}
   $scope.users = [
     name: "aloman"
     email: "aloman@example.com"
   ]

which compiles into javascript:

// Generated by CoffeeScript 1.3.3
(function() {
  var UsersCtrl;

  UsersCtrl = function($scope, $http) {
    $scope.newUser = {}; 
    return $scope.users = [ 
      {   
        name: "aloman",
        email: "aloman@example.com"
      }   
    ];  
  };
}).call(this);

The code above breaks with console log:
Error: Argument 'UsersCtrl' is not a function, got undefined

However removing the anonymous function wrapped around the compiled javascript works fine. The working code is shown below.

var UsersCtrl;
Usersctrl = function($scope, $http) {
    $scope.newUser = {};
    $scope.users = [{
        name: "aloman",
        email: "aloman@example.com" 
    }];
}; 

Any reason why my compiled code isn't working. I have a feeling it has to do with Angular's scope injection. I'm using AngularJS 1.0.1

It would be best to use this syntax so you don't pollute the global scope:

angular.module('myApp').controller('MyController', ($scope) ->)

Despite that all current answers are right there is a 3rd option:

When you compile you CoffeeScript to JavaScript make sure you set the --bare option to the CoffeeScript compiler, which make him omit the function wrapper in the output.