diff --git a/Hails/Web/REST.hs b/Hails/Web/REST.hs
--- a/Hails/Web/REST.hs
+++ b/Hails/Web/REST.hs
@@ -96,9 +96,9 @@
 
     routeMethod POST $ routeTop $ restCreate controller
 
-    routeMethod PUT $ restUpdate controller
+    routeMethod DELETE $ routeVar "id" $ restDelete controller
 
-    routeMethod DELETE $ restDelete controller
+    routeMethod PUT $ routeVar "id" $ restUpdate controller
 
 -- | Monad used to encode a REST controller incrementally.
 type RESTControllerM a = StateT RESTControllerState DC a
diff --git a/Hails/Web/Router.hs b/Hails/Web/Router.hs
--- a/Hails/Web/Router.hs
+++ b/Hails/Web/Router.hs
@@ -28,6 +28,8 @@
   ) where
 
 import           Prelude hiding (pi)
+import           Control.Monad
+import           Control.Applicative
 
 import           LIO
 import           LIO.DCLabel
@@ -144,6 +146,13 @@
       case resA of
         Nothing -> rtB pi eq conf req
         Just _ -> return resA) valB
+
+instance Functor RouteM where
+  fmap f x = pure f <*> x
+
+instance Applicative RouteM where
+  pure = return
+  (<*>) = ap
 
 instance Monoid Route where
   mempty = mroute $ const . const . const . const $ return Nothing
diff --git a/hails.cabal b/hails.cabal
--- a/hails.cabal
+++ b/hails.cabal
@@ -1,5 +1,5 @@
 Name:           hails
-Version:        0.11.1.3
+Version:        0.11.2.0
 build-type:     Simple
 License:        MIT
 License-File:   LICENSE
