```
From e1fee7bb9dd508b9bef420fd76292f91bb151c8c Mon Sep 17 00:00:00 2001
From: Mitchell Rosen <mitchellwrosen@gmail.com>
Date: Sat, 1 Apr 2017 14:39:41 -0400
Subject: [PATCH 1/1] Fix compiler errors

---
 HTTP/ProofOfWork.hs | 8 ++++----
 HTTP/Server.hs      | 3 ++-
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/HTTP/ProofOfWork.hs b/HTTP/ProofOfWork.hs
index 0237347..9a10d39 100644
--- a/HTTP/ProofOfWork.hs
+++ b/HTTP/ProofOfWork.hs
@@ -16,7 +16,7 @@ import ByteStrings
 import GHC.Generics
 import qualified Data.Text as T
 import qualified Data.ByteString as B
-import Data.Text.Encoding (encodeUtf8)
+import Data.Text.Encoding (decodeUtf8, encodeUtf8)
 import Raaz.Core.Encode
 import qualified Raaz
 import Data.BloomFilter.Hash
@@ -55,7 +55,7 @@ instance Hashable RequestID where
 	hashIO64 = hashIO64 . hashRequestID
 
 hashRequestID :: RequestID -> B.ByteString
-hashRequestID rid = encodeUtf8 (fromRandomSalt (randomSalt rid)) 
+hashRequestID rid = encodeUtf8 (fromRandomSalt (randomSalt rid))
 	<> ":" <> encodeUtf8 (requestHMAC rid)
 
 -- | Using Text and not ByteString so that ProofOfWorkRequirement can have a
@@ -80,7 +80,7 @@ maxProofOfWork = Seconds (16*60)
 -- on the very first try. On average, the client will need to work for half
 -- as long as the returned number of Seconds.
 generationTime :: ProofOfWorkRequirement -> Seconds
-generationTime req = 
+generationTime req =
 	let UseArgon2 (CPUCost (Seconds s) _) _ = proofOfWorkHashTunable (addedArgon2Iterations req)
 	in Seconds ((2^(leadingZeros req)) * s)
 
@@ -109,7 +109,7 @@ mkRequestID secret = mkRequeestID' secret <$> mkRandomSalt
 mkRequeestID' :: RequestIDSecret -> RandomSalt -> RequestID
 mkRequeestID' (RequestIDSecret key) salt =
 	let hmac = Raaz.hmacSha256 key (encodeUtf8 $ fromRandomSalt salt)
-	in RequestID salt $ T.toByteString (Raaz.encode hmac :: Base16)
+	in RequestID salt $ decodeUtf8 $ Raaz.toByteString (Raaz.encode hmac :: Base16)
 
 validRequestID :: RequestIDSecret -> RequestID -> Bool
 validRequestID secret rid =
diff --git a/HTTP/Server.hs b/HTTP/Server.hs
index 61bdbfd..12a8f26 100644
--- a/HTTP/Server.hs
+++ b/HTTP/Server.hs
@@ -18,6 +18,7 @@ import CmdLine (ServerConfig(..))
 import Storage.Local
 import Serialization ()
 import Servant
+import Network.Wai (Application)
 import Network.Wai.Handler.Warp
 import Control.Monad.IO.Class
 import Control.Concurrent
@@ -51,7 +52,7 @@ runServer d cfg = do
 	_ <- forkIO $ obscurerThread st
 	runSettings settings (app st)
   where
-	settings = setHost host $ setPort (serverPort cfg) $ defaultSettings 
+	settings = setHost host $ setPort (serverPort cfg) $ defaultSettings
 	host = fromString (serverAddress cfg)
 
 serverStorage :: Maybe LocalStorageDirectory -> Storage
-- 
2.12.1
```

> Thanks for the patch; I applied essentially these fixes although
> untangled the unrelated issues. [[done]] --[[Joey]]
