diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,12 @@
 Changelog for the `reactive-banana` package
 -------------------------------------------
 
+**version 0.8.1.0**
+
+* Module `Reactive.Banana.Switch` now adheres to the "Functor Applicative Monad Proposal" proposal][amp-proposal].
+
+  [amp-proposal]: https://wiki.haskell.org/Functor-Applicative-Monad_Proposal
+
 **version 0.8.0.4**
 
 * Just a reupload. The previous archive was broken.
diff --git a/reactive-banana.cabal b/reactive-banana.cabal
--- a/reactive-banana.cabal
+++ b/reactive-banana.cabal
@@ -1,5 +1,5 @@
 Name:                reactive-banana
-Version:             0.8.0.4
+Version:             0.8.1.0
 Synopsis:            Library for functional reactive programming (FRP).
 Description:
     Reactive-banana is a library for Functional Reactive Programming (FRP).
diff --git a/src/Reactive/Banana/Switch.hs b/src/Reactive/Banana/Switch.hs
--- a/src/Reactive/Banana/Switch.hs
+++ b/src/Reactive/Banana/Switch.hs
@@ -44,6 +44,15 @@
 -- | Value present at any/every moment in time.
 newtype AnyMoment f a = AnyMoment { now :: forall t. Moment t (f t a) }
 
+-- | Instance relying on the monad instance.
+instance Functor (AnyMoment Identity) where
+    fmap = liftM
+
+-- | Instance relying on the monad instance.
+instance Applicative (AnyMoment Identity) where
+    pure = return
+    (<*>) = ap
+
 instance Monad (AnyMoment Identity) where
     return x = AnyMoment $ return (Identity x)
     (AnyMoment m) >>= g = AnyMoment $ m >>= \(Identity x) -> now (g x)
@@ -54,6 +63,9 @@
 instance Applicative (AnyMoment Behavior) where
     pure x  = AnyMoment $ return $ pure x
     (AnyMoment f) <*> (AnyMoment x) = AnyMoment $ liftM2 (<*>) f x
+
+instance Functor (AnyMoment Event) where
+    fmap f (AnyMoment x) = AnyMoment (fmap (fmap f) x)
 
 anyMoment :: (forall t. Moment t (f t a)) -> AnyMoment f a
 anyMoment = AnyMoment
diff --git a/src/Reactive/Banana/Test/Plumbing.hs b/src/Reactive/Banana/Test/Plumbing.hs
--- a/src/Reactive/Banana/Test/Plumbing.hs
+++ b/src/Reactive/Banana/Test/Plumbing.hs
@@ -7,7 +7,7 @@
 module Reactive.Banana.Test.Plumbing where
 
 import Control.Applicative
-import Control.Monad (liftM)
+import Control.Monad (liftM, ap)
 import Control.Monad.Fix
 
 import qualified Reactive.Banana.Model as X
@@ -60,6 +60,9 @@
 instance Applicative Behavior where pure = pureB; (<*>) = applyB
 
 instance Functor Moment where fmap = liftM
+instance Applicative Moment where
+    pure  = return
+    (<*>) = ap
 instance Monad Moment where
     return a = M (return a) (return a)
     (M x y) >>= g = M (x >>= fstM . g) (y >>= sndM . g)
