diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,7 @@
+2023-07-07
+        * Version bump (3.16). (#448)
+        * Move Copilot.Language.Stream.Arg to Copilot.Language.Spec. (#446)
+
 2023-05-07
         * Version bump (3.15). (#438)
         * Remove outdated comment about pretty-printer. (#428)
diff --git a/copilot-language.cabal b/copilot-language.cabal
--- a/copilot-language.cabal
+++ b/copilot-language.cabal
@@ -1,6 +1,6 @@
 cabal-version:       >=1.10
 name:                copilot-language
-version:             3.15
+version:             3.16
 synopsis:            A Haskell-embedded DSL for monitoring hard real-time
                      distributed systems.
 description:
@@ -42,9 +42,9 @@
                , data-reify            >= 0.6 && < 0.7
                , mtl                   >= 2.0 && < 3
 
-               , copilot-core          >= 3.15 && < 3.16
-               , copilot-interpreter   >= 3.15 && < 3.16
-               , copilot-theorem       >= 3.15 && < 3.16
+               , copilot-core          >= 3.16 && < 3.17
+               , copilot-interpreter   >= 3.16 && < 3.17
+               , copilot-theorem       >= 3.16 && < 3.17
 
   exposed-modules: Copilot.Language
                  , Copilot.Language.Operators.BitWise
diff --git a/src/Copilot/Language/Analyze.hs b/src/Copilot/Language/Analyze.hs
--- a/src/Copilot/Language/Analyze.hs
+++ b/src/Copilot/Language/Analyze.hs
@@ -14,7 +14,7 @@
 
 import Copilot.Core (DropIdx)
 import qualified Copilot.Core as C
-import Copilot.Language.Stream (Stream (..), Arg (..))
+import Copilot.Language.Stream (Stream (..))
 import Copilot.Language.Spec
 import Copilot.Language.Error (badUsage)
 
diff --git a/src/Copilot/Language/Reify.hs b/src/Copilot/Language/Reify.hs
--- a/src/Copilot/Language/Reify.hs
+++ b/src/Copilot/Language/Reify.hs
@@ -17,7 +17,7 @@
 import Copilot.Language.Analyze (analyze)
 import Copilot.Language.Error   (impossible)
 import Copilot.Language.Spec
-import Copilot.Language.Stream (Stream (..), Arg (..))
+import Copilot.Language.Stream (Stream (..))
 
 import Copilot.Theorem.Prove
 
diff --git a/src/Copilot/Language/Spec.hs b/src/Copilot/Language/Spec.hs
--- a/src/Copilot/Language/Spec.hs
+++ b/src/Copilot/Language/Spec.hs
@@ -22,6 +22,7 @@
   , Trigger (..)
   , trigger, triggers
   , arg
+  , Arg(..)
   , Property (..)
   , Prop (..)
   , prop, properties
@@ -198,3 +199,7 @@
 -- the current samples of the given streams.
 arg :: Typed a => Stream a -> Arg
 arg = Arg
+
+-- | Wrapper to use 'Stream's as arguments to triggers.
+data Arg where
+  Arg :: Typed a => Stream a -> Arg
diff --git a/src/Copilot/Language/Stream.hs b/src/Copilot/Language/Stream.hs
--- a/src/Copilot/Language/Stream.hs
+++ b/src/Copilot/Language/Stream.hs
@@ -9,7 +9,6 @@
 
 module Copilot.Language.Stream
   ( Stream (..)
-  , Arg (..)
   , Copilot.Language.Stream.ceiling
   , Copilot.Language.Stream.floor
   , Copilot.Language.Stream.atan2
@@ -47,10 +46,6 @@
   Op3         :: (Typed a, Typed b, Typed c, Typed d)
               => Core.Op3 a b c d -> Stream a -> Stream b -> Stream c -> Stream d
   Label       :: Typed a => String -> Stream a -> Stream a
-
--- | Wrapper to use 'Stream's as arguments to triggers.
-data Arg where
-  Arg :: Typed a => Stream a -> Arg
 
 -- | Dummy instance in order to make 'Stream' an instance of 'Num'.
 instance Show (Stream a) where
