diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 # Change log for [raaz].
 
+## [0.3.1] - Oct 6, 2021
+
+This release ensures that missing verse.h C header files. Without that
+the version on hackage was unbuildable.
+
+
 ## [0.3.0] - May 20, 2021
 
   This is a major rewrite of the raaz library with significant change in the
@@ -33,7 +39,7 @@
 
   - Use libverse for the low level FFI implementations. From now on
     newer primitives will be coded up in verse instead of hand written
-    C/assembly. (See https://github.com/raaz-crypto/libverse/>)
+    C/assembly. (See <https://github.com/raaz-crypto/libverse/>)
 
   - Backpack based modules and signatures instead of classes for
     primitive implementation. Simplifies the library and allows easy
@@ -152,5 +158,6 @@
 [0.2.0]: <http://github.com/raaz-crypto/raaz/releases/tag/v0.2.0>
 [0.2.1]: <http://github.com/raaz-crypto/raaz/releases/tag/v0.2.1>
 [0.2.2]: <http://github.com/raaz-crypto/raaz/releases/tag/v0.2.2>
+[0.2.3]: <http://github.com/raaz-crypto/raaz/releases/tag/v0.2.3>
 [0.3.0]: <http://github.com/raaz-crypto/raaz/releases/tag/v0.3.0>
 [raaz]:  <http://github.com/raaz-crypto/raaz/>
diff --git a/indef/keyed/hash/Implementation.hsig b/indef/keyed/hash/Implementation.hsig
--- a/indef/keyed/hash/Implementation.hsig
+++ b/indef/keyed/hash/Implementation.hsig
@@ -21,6 +21,8 @@
 
 -- NOTE:
 --
+-- (This issue does not seem to be applicable any more)
+--
 -- With https://gitlab.haskell.org/ghc/ghc/issues/15138 and
 -- https://gitlab.haskell.org/ghc/ghc/issues/15379 fixed I (ppk) had
 -- expected that one can differ the assignment of Buffer
@@ -31,8 +33,8 @@
 -- Implementation in the auth case. Therefore, I am setting an
 -- artificially large base number here.
 --
-# if MIN_VERSION_base(100,100,0)
--- # if MIN_VERSION_base(4,13,0)
+
+# if MIN_VERSION_base(4,13,0)
 import GHC.TypeLits
 
 -- | The alignment requirements on the buffer.
diff --git a/libverse/verse.h b/libverse/verse.h
new file mode 100644
--- /dev/null
+++ b/libverse/verse.h
@@ -0,0 +1,138 @@
+#pragma once
+#include <stdint.h>
+
+/*
+ *         Byte swapping. Use platform specific ones when we know it.
+ */
+
+# pragma GCC optimize "tree-vectorize" /* Enable vectorisation for gcc */
+#ifdef PLATFORM_OSX
+#include <libkern/OSByteOrder.h> /* For PLATFORM OSX */
+
+static inline uint16_t verse_bswap16(uint16_t x) { return OSSwapInt16(x); }
+static inline uint32_t verse_bswap32(uint32_t x) { return OSSwapInt32(x); }
+static inline uint64_t verse_bswap64(uint64_t x) { return OSSwapInt64(x); }
+
+#elif defined(PLATFORM_WINDOWS)
+#include <stdlib.h>
+static inline uint16_t verse_bswap16(uint16_t x) { return _byteswap_ushort(x); }
+static inline uint32_t verse_bswap32(uint32_t x) { return _byteswap_ulong(x); }
+static inline uint64_t verse_bswap64(uint64_t x) { return _byteswap_uint64(x); }
+
+#elif defined(PLATFORM_OPENBSD)
+#include <endian.h>
+static inline uint16_t verse_bswap16(uint16_t x) { return swap16(x); }
+static inline uint32_t verse_bswap32(uint32_t x) { return swap32(x); }
+static inline uint64_t verse_bswap64(uint64_t x) { return swap64(x); }
+
+#elif defined(PLATFORM_LINUX) /* All other platforms */
+#include <byteswap.h>
+static inline uint16_t verse_bswap16(uint16_t x) { return bswap_16(x); }
+static inline uint32_t verse_bswap32(uint32_t x) { return bswap_32(x); }
+static inline uint64_t verse_bswap64(uint64_t x) { return bswap_64(x); }
+#else
+
+/* We do not have platform specific byte swap */
+#define __VERSE_REQUIRE_PORTABLE_SWAP__
+
+extern uint16_t verse_bswap16(uint16_t x);
+extern uint32_t verse_bswap32(uint32_t x);
+extern uint64_t verse_bswap64(uint64_t x);
+
+#endif
+
+#ifdef __GNUC__
+
+/* For GNUC compiler use byte order checks to define efficient endian
+ * conversion */
+
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+
+static inline uint16_t verse_to_be16(uint16_t x) { return verse_bswap16(x); }
+static inline uint32_t verse_to_be32(uint32_t x) { return verse_bswap32(x); }
+static inline uint64_t verse_to_be64(uint64_t x) { return verse_bswap64(x); }
+static inline uint16_t verse_from_be16(uint16_t x) { return verse_bswap16(x); }
+static inline uint32_t verse_from_be32(uint32_t x) { return verse_bswap32(x); }
+static inline uint64_t verse_from_be64(uint64_t x) { return verse_bswap64(x); }
+
+static inline uint16_t verse_to_le16(uint16_t x) { return x; }
+static inline uint32_t verse_to_le32(uint32_t x) { return x; }
+static inline uint64_t verse_to_le64(uint64_t x) { return x; }
+static inline uint16_t verse_from_le16(uint16_t x) { return x; }
+static inline uint32_t verse_from_le32(uint32_t x) { return x; }
+static inline uint64_t verse_from_le64(uint64_t x) { return x; }
+
+#else
+
+static inline uint16_t verse_to_be16(uint16_t x) { return x; }
+static inline uint32_t verse_to_be32(uint32_t x) { return x; }
+static inline uint64_t verse_to_be64(uint64_t x) { return x; }
+static inline uint16_t verse_from_be16(uint16_t x) { return x; }
+static inline uint32_t verse_from_be32(uint32_t x) { return x; }
+static inline uint64_t verse_from_be64(uint64_t x) { return x; }
+
+static inline uint16_t verse_to_le16(uint16_t x) { return verse_bswap16(x); }
+static inline uint32_t verse_to_le32(uint32_t x) { return verse_bswap32(x); }
+static inline uint64_t verse_to_le64(uint64_t x) { return verse_bswap64(x); }
+static inline uint16_t verse_from_le16(uint16_t x) { return verse_bswap16(x); }
+static inline uint32_t verse_from_le32(uint32_t x) { return verse_bswap32(x); }
+static inline uint64_t verse_from_le64(uint64_t x) { return verse_bswap64(x); }
+
+#endif /* Byte order */
+
+#else /* Not __GNUC__ use portable implementations */
+#define __VERSE_REQUIRE_PORTABLE_ENDIAN__
+
+extern uint16_t verse_to_be16(uint16_t x);
+extern uint32_t verse_to_be32(uint32_t x);
+extern uint64_t verse_to_be64(uint64_t x);
+extern uint16_t verse_to_le16(uint16_t x);
+extern uint32_t verse_to_le32(uint32_t x);
+extern uint64_t verse_to_le64(uint64_t x);
+
+extern uint16_t verse_from_be16(uint16_t x);
+extern uint32_t verse_from_be32(uint32_t x);
+extern uint64_t verse_from_be64(uint64_t x);
+extern uint16_t verse_from_le16(uint16_t x);
+extern uint32_t verse_from_le32(uint32_t x);
+extern uint64_t verse_from_le64(uint64_t x);
+
+#endif
+
+/*
+ *         Rotation functions.
+ */
+
+
+static inline uint8_t verse_rotL8(uint8_t w, int c) {
+	return (w << c) | (w >> (8 - c));
+}
+
+static inline uint16_t verse_rotL16(uint16_t w, int c) {
+	return (w << c) | (w >> (16 - c));
+}
+
+static inline uint32_t verse_rotL32(uint32_t w, int c) {
+	return (w << c) | (w >> (32 - c));
+}
+
+static inline uint64_t verse_rotL64(uint64_t w, int c) {
+	return (w << c) | (w >> (64 - c));
+}
+
+
+static inline uint16_t verse_rotR8(uint8_t w, int c) {
+	return (w >> c) | (w << (8 - c));
+}
+
+static inline uint16_t verse_rotR16(uint16_t w, int c) {
+	return (w >> c) | (w << (16 - c));
+}
+
+static inline uint32_t verse_rotR32(uint32_t w, int c) {
+	return (w >> c) | (w << (32 - c));
+}
+
+static inline uint64_t verse_rotR64(uint64_t w, int c) {
+	return (w >> c) | (w << (64 - c));
+}
diff --git a/raaz.cabal b/raaz.cabal
--- a/raaz.cabal
+++ b/raaz.cabal
@@ -1,7 +1,7 @@
 cabal-version: 3.0
 
 name:    raaz
-version: 0.3.0
+version: 0.3.1
 stability: experimental
 
 synopsis: Fast and type safe cryptography.
@@ -82,7 +82,7 @@
   -- >          ^                  ^                     ^
   -- >          |                  |                     |
   -- >    +------------+    +--------------+       +--------------+
-  -- >    | digest-api |    |  entropy-api |       |   encryt-api |
+  -- >    | digest-api |    |  entropy-api |       |  encrypt-api |
   -- >    |            |    |              |       |              |
   -- >    |            |    |              |       |              |
   -- >    +------------+    +--------------+       +--------------+
@@ -264,7 +264,8 @@
            , libverse/poly1305/c/portable.c
            , libverse/verse.c
   include-dirs: libverse
-  includes: libverse/verse.h
+  includes: verse.h
+  install-includes: verse.h
 
 
 ---------------------- Implementation signature packages -------------
