{-# 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 Data.Binary
import Data.Char
import Data.String
import qualified Data.Map as M
+import Data.Default
import JVM.ClassFile
+instance Default B.ByteString where
+ def = B.empty
+
+instance Default Word16 where
+ def = 0
+
instance IsString B.ByteString where
fromString s = B.pack $ map (fromIntegral . ord) $ encodeString s