diff --git a/purescript.cabal b/purescript.cabal
--- a/purescript.cabal
+++ b/purescript.cabal
@@ -1,5 +1,5 @@
 name: purescript
-version: 0.2.1
+version: 0.2.1.1
 cabal-version: >=1.8
 build-type: Simple
 license: MIT
diff --git a/src/Language/PureScript/CaseDeclarations.hs b/src/Language/PureScript/CaseDeclarations.hs
--- a/src/Language/PureScript/CaseDeclarations.hs
+++ b/src/Language/PureScript/CaseDeclarations.hs
@@ -39,6 +39,9 @@
   unless (all ((== map length bs) . map length . fst) tuples) $
       throwError $ "Argument list lengths differ in declaration " ++ show ident
   return [makeCaseDeclaration ident tuples]
+toDecls [ModuleDeclaration name decls] = do
+  desugared <- desugarCases decls
+  return [ModuleDeclaration name desugared]
 toDecls ds = return ds
 
 toTuple :: Declaration -> ([[Binder]], (Maybe Guard, Value))
