From 57a7dde6332d80135396627826a58b44512f45c6 Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Thu, 12 Sep 2019 15:17:33 -0400
Subject: [PATCH] Stay away from String where I can

---
 PaymentServer.cabal            | 1 +
 generate-key/Main.hs           | 8 ++++++++
 src/PaymentServer/Ristretto.hs | 4 ++--
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/PaymentServer.cabal b/PaymentServer.cabal
index 6926cee..165887e 100644
--- a/PaymentServer.cabal
+++ b/PaymentServer.cabal
@@ -52,6 +52,7 @@ executable PaymentServer-generate-key
   main-is:             Main.hs
   ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wmissing-import-lists -Wunused-imports
   build-depends:       base
+                     , text
                      , PaymentServer
   default-language:    Haskell2010
 
diff --git a/generate-key/Main.hs b/generate-key/Main.hs
index 3eb7b0e..0da0545 100644
--- a/generate-key/Main.hs
+++ b/generate-key/Main.hs
@@ -2,6 +2,14 @@ module Main
   ( main
   ) where
 
+import Prelude hiding
+  ( putStrLn
+  )
+
+import Data.Text.IO
+  ( putStrLn
+  )
+
 import PaymentServer.Ristretto
   ( randomSigningKey
   )
diff --git a/src/PaymentServer/Ristretto.hs b/src/PaymentServer/Ristretto.hs
index d56faf8..832e125 100644
--- a/src/PaymentServer/Ristretto.hs
+++ b/src/PaymentServer/Ristretto.hs
@@ -73,11 +73,11 @@ ristretto textSigningKey textTokens = do
 
 -- | randomSigningKey generates a new signing key at random and returns it
 -- encoded as a base64 string.
-randomSigningKey :: IO String
+randomSigningKey :: IO Text
 randomSigningKey = do
   cSigningKey <- signing_key_random
   cString <- signing_key_encode_base64 cSigningKey
   signing_key_destroy cSigningKey
   result <- peekCString cString
   free cString
-  return result
+  return $ pack result
-- 
GitLab