X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=hs-java.git;a=blobdiff_plain;f=JVM%2FClassFile.hs;h=2b7e1e7f965add890444ee4ad1511439c4121cbf;hp=0359320592a9ab1cf10aa464f795423ade56ebf4;hb=96bd2316525bb8790d4f047834c0ca6750155583;hpb=e9f82ee018d11b66f73e5e97591a6de474e76848 diff --git a/JVM/ClassFile.hs b/JVM/ClassFile.hs index 0359320..2b7e1e7 100644 --- a/JVM/ClassFile.hs +++ b/JVM/ClassFile.hs @@ -128,7 +128,8 @@ data AccessFlag = deriving (Eq, Show, Ord, Enum) -- | Fields and methods have signatures. -class HasSignature a where +class (Binary (Signature a), Show (Signature a), Eq (Signature a)) + => HasSignature a where type Signature a instance HasSignature Field where @@ -142,12 +143,12 @@ data NameType a = NameType { ntName :: B.ByteString, ntSignature :: Signature a } -instance Show (Signature a) => Show (NameType a) where +instance (HasSignature a) => Show (NameType a) where show (NameType n t) = toString n ++ ": " ++ show t -deriving instance Eq (Signature a) => Eq (NameType a) +deriving instance HasSignature a => Eq (NameType a) -instance (Binary (Signature a)) => Binary (NameType a) where +instance HasSignature a => Binary (NameType a) where put (NameType n t) = putLazyByteString n >> put t get = NameType <$> get <*> get