diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 # Revision history for futhark-manifest
 
+## 1.6.0.0
+
+* Added `opaqueArrayNew` and `recordArrayNew`.
+
+* Added `opaqueArraySet` and `recordArraySet`.
+
 ## 1.5.0.0
 
 * Adding record arrays and opaque arrays.
diff --git a/futhark-manifest.cabal b/futhark-manifest.cabal
--- a/futhark-manifest.cabal
+++ b/futhark-manifest.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               futhark-manifest
-version:            1.5.0.0
+version:            1.6.0.0
 
 synopsis:           Definition and serialisation instances for Futhark manifests.
 
diff --git a/src/Futhark/Manifest.hs b/src/Futhark/Manifest.hs
--- a/src/Futhark/Manifest.hs
+++ b/src/Futhark/Manifest.hs
@@ -167,7 +167,9 @@
   { opaqueArrayRank :: Int,
     opaqueArrayElemType :: TypeName,
     opaqueArrayIndex :: CFuncName,
-    opaqueArrayShape :: CFuncName
+    opaqueArrayShape :: CFuncName,
+    opaqueArrayNew :: CFuncName,
+    opaqueArraySet :: CFuncName
   }
   deriving (Eq, Ord, Show)
 
@@ -180,7 +182,9 @@
     recordArrayFields :: [RecordField],
     recordArrayZip :: CFuncName,
     recordArrayIndex :: CFuncName,
-    recordArrayShape :: CFuncName
+    recordArrayShape :: CFuncName,
+    recordArrayNew :: CFuncName,
+    recordArraySet :: CFuncName
   }
   deriving (Eq, Ord, Show)
 
@@ -274,23 +278,27 @@
       ]
 
 instance JSON.ToJSON OpaqueArrayOps where
-  toJSON (OpaqueArrayOps rank elemtype index shape) =
+  toJSON (OpaqueArrayOps rank elemtype index shape new set) =
     object
       [ ("rank", toJSON rank),
         ("elemtype", toJSON elemtype),
         ("index", toJSON index),
-        ("shape", toJSON shape)
+        ("shape", toJSON shape),
+        ("new", toJSON new),
+        ("set", toJSON set)
       ]
 
 instance JSON.ToJSON RecordArrayOps where
-  toJSON (RecordArrayOps rank elemtype fields zip_f index shape) =
+  toJSON (RecordArrayOps rank elemtype fields zip_f index shape new set) =
     object
       [ ("rank", toJSON rank),
         ("elemtype", toJSON elemtype),
         ("fields", toJSON fields),
         ("zip", toJSON zip_f),
         ("index", toJSON index),
-        ("shape", toJSON shape)
+        ("shape", toJSON shape),
+        ("new", toJSON new),
+        ("set", toJSON set)
       ]
 
 instance JSON.ToJSON OpaqueOps where
@@ -398,6 +406,8 @@
       <*> v .: "elemtype"
       <*> v .: "index"
       <*> v .: "shape"
+      <*> v .: "new"
+      <*> v .: "set"
 
 instance JSON.FromJSON RecordArrayOps where
   parseJSON = JSON.withObject "RecordArrayOps" $ \v ->
@@ -408,6 +418,8 @@
       <*> v .: "zip"
       <*> v .: "index"
       <*> v .: "shape"
+      <*> v .: "new"
+      <*> v .: "set"
 
 instance JSON.FromJSON OpaqueOps where
   parseJSON = JSON.withObject "OpaqueOps" $ \v ->
diff --git a/tests/Tests.hs b/tests/Tests.hs
--- a/tests/Tests.hs
+++ b/tests/Tests.hs
@@ -42,11 +42,15 @@
       <*> arbitrary
       <*> arbitrary
       <*> arbitrary
+      <*> arbitrary
+      <*> arbitrary
 
 instance Arbitrary RecordArrayOps where
   arbitrary =
     RecordArrayOps
       <$> arbitrary
+      <*> arbitrary
+      <*> arbitrary
       <*> arbitrary
       <*> arbitrary
       <*> arbitrary
