diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,7 @@
+2022-01-07
+        * Version bump (3.7). (#287)
+        * Bring back externF. (#261)
+
 2021-11-07
         * Version bump (3.6). (#264)
         * Replace uses of copilot-core's error reporting functions. (#267)
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.6
+version:             3.7
 synopsis:            A Haskell-embedded DSL for monitoring hard real-time
                      distributed systems.
 description:
@@ -40,8 +40,8 @@
                , data-reify      >= 0.6 && < 0.7
                , mtl             >= 2.0 && < 3
 
-               , copilot-core    >= 3.6 && < 3.7
-               , copilot-theorem >= 3.6 && < 3.7
+               , copilot-core    >= 3.7 && < 3.8
+               , copilot-theorem >= 3.7 && < 3.8
 
   exposed-modules: Copilot
                  , Copilot.Language
diff --git a/src/Copilot/Language/Operators/Extern.hs b/src/Copilot/Language/Operators/Extern.hs
--- a/src/Copilot/Language/Operators/Extern.hs
+++ b/src/Copilot/Language/Operators/Extern.hs
@@ -17,6 +17,7 @@
   , externI16
   , externI32
   , externI64
+  , externF
   , externD
   ) where
 
@@ -110,6 +111,13 @@
           -> Maybe [Int64] -- ^ Values to be used exclusively for testing/simulation.
           -> Stream Int64
 externI64 = extern
+
+-- | Create a stream carrying values of type Float, populated by an external
+-- global variable.
+externF :: String        -- ^ Name of the global variable to make accessible.
+        -> Maybe [Float] -- ^ Values to be used exclusively for testing/simulation.
+        -> Stream Float
+externF = extern
 
 -- | Create a stream carrying values of type Double, populated by an external
 -- global variable.
