diff --git a/horizon.dhall b/horizon.dhall
index f2fb9fa10439ab867cb0e547919cbab2cded95eb..2b8cc19cc953a5d0b317a6dd18c8a206f008877c 100644
--- a/horizon.dhall
+++ b/horizon.dhall
@@ -828,6 +828,7 @@ let packages =
       , retry = H.callHackage "retry" "0.9.3.0"
       , rope-utf16-splay = H.callHackage "rope-utf16-splay" "0.4.0.0"
       , row-types = H.callHackage "row-types" "1.0.1.2"
+      , rvar = H.callHackage "rvar" "0.3.0.1"
       , RSA = H.callHackage "RSA" "2.4.1"
       , safe-coloured-text-layout =
           H.callHackage "safe-coloured-text-layout" "0.0.0.0"
diff --git a/initial-packages.nix b/initial-packages.nix
index 7e64116cb3b3ce2f23a9b5abcce8716ca76649ef..2ab73f9cc6d1929e6246accbd963be3503bfa308 100644
--- a/initial-packages.nix
+++ b/initial-packages.nix
@@ -1361,6 +1361,8 @@ self: with pkgs.haskell.lib; {
 
   row-types = self.callPackage (./pkgs/row-types.nix) { };
 
+  rvar = self.callPackage (./pkgs/rvar.nix) { };
+
   safe = self.callPackage (./pkgs/safe.nix) { };
 
   safe-coloured-text = self.callPackage (./pkgs/safe-coloured-text.nix) { };
diff --git a/pkgs/rvar.nix b/pkgs/rvar.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d8699bdb09409637afd5f19159db9f3bcd7bf315
--- /dev/null
+++ b/pkgs/rvar.nix
@@ -0,0 +1,36 @@
+{ mkDerivation
+, MonadPrompt
+, base
+, bytestring
+, lib
+, mtl
+, random
+, transformers
+}:
+mkDerivation {
+  pname = "rvar";
+  version = "0.3.0.1";
+  sha256 = "2529c11a7f22683a398b34a63d0d04beb75833d763777074513454a769b745f1";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    MonadPrompt
+    mtl
+    random
+    transformers
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-numerics/random-fu";
+  description = "Random Variables";
+  license = lib.licenses.publicDomain;
+  broken = false;
+}