1 {-# LANGUAGE TypeFamilies, StandaloneDeriving, FlexibleInstances, FlexibleContexts, UndecidableInstances #-}
2 -- | This module declares some commonly used functions and instances.
11 import Codec.Binary.UTF8.String hiding (encode, decode)
13 import Data.Binary.Put
14 import qualified Data.ByteString.Lazy as B
17 import qualified Data.Map as M
22 instance Default B.ByteString where
25 instance Default Word16 where
28 instance IsString B.ByteString where
29 fromString s = B.pack $ map (fromIntegral . ord) $ encodeString s
31 toCharList :: B.ByteString -> [Int]
32 toCharList bstr = map fromIntegral $ B.unpack bstr
34 poolSize :: Pool stage -> Int
37 (!) :: (Ord k) => M.Map k a -> k -> a
40 showListIx :: (Show a) => [a] -> String
41 showListIx list = unlines $ zipWith s [1..] list
42 where s i x = show i ++ ":\t" ++ show x
44 byteString :: (Binary t) => t -> B.ByteString
45 byteString x = runPut (put x)