From 281159d486afec2a54383db397a94410f14a39e6 Mon Sep 17 00:00:00 2001
From: Ramakrishnan Muthukrishnan <ram@rkrishnan.org>
Date: Sat, 21 Feb 2015 09:25:15 +0530
Subject: [PATCH] more refactoring: type synonym for info dictionary

---
 src/Bencode.hs | 4 +++-
 src/Peer.hs    | 2 +-
 src/Tracker.hs | 3 +--
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/Bencode.hs b/src/Bencode.hs
index 1fe6aea..717170e 100644
--- a/src/Bencode.hs
+++ b/src/Bencode.hs
@@ -12,9 +12,11 @@ data BVal =
     Bint Integer
   | Bstr BC.ByteString
   | Blist [BVal]
-  | Bdict (M.Map BVal BVal)
+  | Bdict InfoDict
   deriving (Ord, Eq)
 
+type InfoDict = M.Map BVal BVal
+
 instance Show BVal where
   show (Bint i) = show i
   show (Bstr s) = "\"" ++ BC.unpack s ++ "\""
diff --git a/src/Peer.hs b/src/Peer.hs
index 0f33961..f647c61 100644
--- a/src/Peer.hs
+++ b/src/Peer.hs
@@ -53,7 +53,7 @@ getPeerResponse body = case Benc.decode body of
                                           }
 
 
-handShakeMsg :: M.Map Benc.BVal Benc.BVal -> String -> BC.ByteString
+handShakeMsg :: Benc.InfoDict -> String -> BC.ByteString
 handShakeMsg m peer_id = let pstrlen = BC.concat $ BL.toChunks $ Bin.encode (19 :: DI.Int8)
                              pstr = BC.pack "BitTorrent protocol"
                              reserved = BC.replicate 8 '\0'
diff --git a/src/Tracker.hs b/src/Tracker.hs
index 5afc26f..dad05e6 100644
--- a/src/Tracker.hs
+++ b/src/Tracker.hs
@@ -12,7 +12,6 @@ import qualified Utils as U
 import Data.Char
 
 type Url = String
-type InfoDict = M.Map Benc.BVal Benc.BVal
 
 -- | urlEncodeHash
 --
@@ -35,7 +34,7 @@ infoHash :: M.Map Benc.BVal Benc.BVal -> BC.ByteString
 infoHash m = let info = m M.! Benc.Bstr (BC.pack "info")
              in (SHA1.hash . BC.pack . Benc.encode) info
 
-prepareRequest :: InfoDict -> String -> Integer -> String
+prepareRequest :: Benc.InfoDict -> String -> Integer -> String
 prepareRequest d peer_id len =
   let p = [("info_hash", urlEncodeHash ((B16.encode . infoHash) d)),
            ("peer_id", HB.urlEncode peer_id),
-- 
2.45.2