diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,11 @@
 # Revision history for rhine-gloss
 
+## 1.0
+
+* Removed schedules. See the [page about changes in version 1](/version1.md).
+* Introduced type alias `StochasticProcess`.
+* Added `whiteNoiseVarying`.
+
 ## 0.9
 
 * Add simple Poisson, Gamma and Bernoulli processes
diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -59,14 +59,14 @@
 
 -- | Harmonic oscillator with white noise
 prior1d ::
-  (MonadDistribution m, Diff td ~ Double) =>
+  (Diff td ~ Double) =>
   -- | Starting position
   Double ->
   -- | Starting velocity
   Double ->
-  BehaviourF m td Temperature Double
+  StochasticProcessF td Temperature Double
 prior1d initialPosition initialVelocity = feedback 0 $ proc (temperature, position') -> do
-  impulse <- arrM (normal 0) -< temperature
+  impulse <- whiteNoiseVarying -< temperature
   let acceleration = (-3) * position' + impulse
   -- Integral over roughly the last 100 seconds, dying off exponentially, as to model a small friction term
   velocity <- arr (+ initialVelocity) <<< decayIntegral 10 -< acceleration
@@ -88,11 +88,11 @@
 sensorNoiseTemperature = 1
 
 -- | A generative model of the sensor noise
-noise :: MonadDistribution m => Behaviour m td Pos
+noise :: StochasticProcess td Pos
 noise = whiteNoise sensorNoiseTemperature &&& whiteNoise sensorNoiseTemperature
 
 -- | A generative model of the sensor position, given the noise
-generativeModel :: (MonadDistribution m, Diff td ~ Double) => BehaviourF m td Pos Sensor
+generativeModel :: (Diff td ~ Double) => StochasticProcessF td Pos Sensor
 generativeModel = proc latent -> do
   noiseNow <- noise -< ()
   returnA -< latent ^+^ noiseNow
@@ -286,7 +286,7 @@
 mainSingleRate =
   void $
     sampleIO $
-      launchGlossThread glossSettings $
+      launchInGlossThread glossSettings $
         reactimateCl glossClock mainClSF
 
 -- ** Multi-rate: Simulation, inference, display at different rates
@@ -337,18 +337,18 @@
 mainRhineMultiRate =
   userTemperature
     @@ glossClockUTC GlossEventClockIO
-      >-- keepLast initialTemperature -@- glossConcurrently -->
+      >-- keepLast initialTemperature -->
         modelRhine
-        >-- keepLast (initialTemperature, (zeroVector, zeroVector)) -@- glossConcurrently -->
+        >-- keepLast (initialTemperature, (zeroVector, zeroVector)) -->
           inference
-            >-- keepLast Result {temperature = initialTemperature, measured = zeroVector, latent = zeroVector, particles = []} -@- glossConcurrently -->
+            >-- keepLast Result {temperature = initialTemperature, measured = zeroVector, latent = zeroVector, particles = []} -->
               visualisationRhine
 {- FOURMOLU_ENABLE -}
 
 mainMultiRate :: IO ()
 mainMultiRate =
   void $
-    launchGlossThread glossSettings $
+    launchInGlossThread glossSettings $
       flow mainRhineMultiRate
 
 -- * Utilities
diff --git a/rhine-bayes.cabal b/rhine-bayes.cabal
--- a/rhine-bayes.cabal
+++ b/rhine-bayes.cabal
@@ -1,5 +1,5 @@
 name:                rhine-bayes
-version:             0.9
+version:             1.0
 synopsis:            monad-bayes backend for Rhine
 description:
   This package provides a backend to the `monad-bayes` library,
@@ -23,7 +23,7 @@
 source-repository this
   type:     git
   location: git@github.com:turion/rhine.git
-  tag:      v0.9
+  tag:      v1.0
 
 library
   exposed-modules:
@@ -32,7 +32,7 @@
     Data.MonadicStreamFunction.Bayes
   build-depends:       base         >= 4.11 && < 4.18
                      , transformers >= 0.5
-                     , rhine        == 0.9
+                     , rhine        == 1.0
                      , dunai        ^>= 0.9
                      , log-domain   >= 0.12
                      , monad-bayes  >= 1.1.0
diff --git a/src/FRP/Rhine/Bayes.hs b/src/FRP/Rhine/Bayes.hs
--- a/src/FRP/Rhine/Bayes.hs
+++ b/src/FRP/Rhine/Bayes.hs
@@ -39,10 +39,20 @@
 
 -- * Short standard library of stochastic processes
 
+-- | A stochastic process is a behaviour that uses, as only effect, random sampling.
+type StochasticProcess time a = forall m. MonadDistribution m => Behaviour m time a
+
+-- | Like 'StochasticProcess', but with a live input.
+type StochasticProcessF time a b = forall m. MonadDistribution m => BehaviourF m time a b
+
 -- | White noise, that is, an independent normal distribution at every time step.
-whiteNoise :: MonadDistribution m => Double -> Behaviour m td Double
+whiteNoise :: Double -> StochasticProcess td Double
 whiteNoise sigma = constMCl $ normal 0 sigma
 
+-- | Like 'whiteNoise', that is, an independent normal distribution at every time step.
+whiteNoiseVarying :: StochasticProcessF td Double Double
+whiteNoiseVarying = arrMCl $ normal 0
+
 -- | Construct a Lévy process from the increment between time steps.
 levy ::
   (MonadDistribution m, VectorSpace v (Diff td)) =>
@@ -64,8 +74,8 @@
 -- | The Wiener process, also known as Brownian motion, with varying variance parameter.
 wienerVarying
   , brownianMotionVarying ::
-    (MonadDistribution m, Diff td ~ Double) =>
-    BehaviourF m td (Diff td) Double
+    (Diff td ~ Double) =>
+    StochasticProcessF td (Diff td) Double
 wienerVarying = proc timeScale -> do
   diffTime <- sinceLastS -< ()
   let stdDev = sqrt $ diffTime / timeScale
@@ -78,16 +88,16 @@
 
 -- | The 'wiener' process transformed to the Log domain, also called the geometric Wiener process.
 wienerLogDomain ::
-  (MonadDistribution m, Diff td ~ Double) =>
+  (Diff td ~ Double) =>
   -- | Time scale of variance
   Diff td ->
-  Behaviour m td (Log Double)
+  StochasticProcess td (Log Double)
 wienerLogDomain timescale = wiener timescale >>> arr Exp
 
 -- | See 'wienerLogDomain' and 'wienerVarying'.
 wienerVaryingLogDomain ::
-  (MonadDistribution m, Diff td ~ Double) =>
-  BehaviourF m td (Diff td) (Log Double)
+  (Diff td ~ Double) =>
+  StochasticProcessF td (Diff td) (Log Double)
 wienerVaryingLogDomain = wienerVarying >>> arr Exp
 
 {- | Inhomogeneous Poisson point process, as described in:
