{-# LANGUAGE TypeFamilies, StandaloneDeriving, FlexibleInstances, FlexibleContexts, UndecidableInstances #-}
--- | This module declares `high-level' data types for Java classes, methods etc.
-module JVM.Common where
+-- | This module declares some commonly used functions and instances.
+module JVM.Common
+ (toCharList,
+ poolSize,
+ (!),
+ showListIx,
+ byteString
+ ) where
-import Codec.Binary.UTF8.String hiding (encode, decode)
-import Control.Applicative
import Data.Binary
import Data.Binary.Put
import qualified Data.ByteString.Lazy as B
-import Data.Char
-import Data.String
-import qualified Data.Set as S
import qualified Data.Map as M
+import Data.Default
import JVM.ClassFile
-instance IsString B.ByteString where
- fromString s = B.pack $ map (fromIntegral . ord) $ encodeString s
+instance Default B.ByteString where
+ def = B.empty
+
+instance Default Word16 where
+ def = 0
toCharList :: B.ByteString -> [Int]
toCharList bstr = map fromIntegral $ B.unpack bstr