jvm-binary-0.9.0: A library for reading Java class-files

Copyright(c) Christian Gram Kalhauge 2018
LicenseMIT
Maintainerkalhuage@cs.ucla.edu
Safe HaskellNone
LanguageHaskell2010

Language.JVM.Staged

Contents

Description

 
Synopsis

Documentation

class Staged s where Source #

Minimal complete definition

stage | evolve, devolve

Methods

stage :: LabelM m => (forall s'. Staged s' => s' r -> m (s' r')) -> s r -> m (s r') Source #

evolve :: EvolveM m => s Low -> m (s High) Source #

devolve :: DevolveM m => s High -> m (s Low) Source #

Instances
Staged InvokeDynamic Source # 
Instance details

Defined in Language.JVM.Staged

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> InvokeDynamic r -> m (InvokeDynamic r') Source #

evolve :: EvolveM m => InvokeDynamic Low -> m (InvokeDynamic High) Source #

devolve :: DevolveM m => InvokeDynamic High -> m (InvokeDynamic Low) Source #

Staged MethodHandleInterface Source # 
Instance details

Defined in Language.JVM.Staged

Staged MethodHandleMethod Source # 
Instance details

Defined in Language.JVM.Staged

Staged MethodHandleField Source # 
Instance details

Defined in Language.JVM.Staged

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> MethodHandleField r -> m (MethodHandleField r') Source #

evolve :: EvolveM m => MethodHandleField Low -> m (MethodHandleField High) Source #

devolve :: DevolveM m => MethodHandleField High -> m (MethodHandleField Low) Source #

Staged MethodHandle Source # 
Instance details

Defined in Language.JVM.Staged

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> MethodHandle r -> m (MethodHandle r') Source #

evolve :: EvolveM m => MethodHandle Low -> m (MethodHandle High) Source #

devolve :: DevolveM m => MethodHandle High -> m (MethodHandle Low) Source #

Staged Constant Source # 
Instance details

Defined in Language.JVM.Staged

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> Constant r -> m (Constant r') Source #

evolve :: EvolveM m => Constant Low -> m (Constant High) Source #

devolve :: DevolveM m => Constant High -> m (Constant Low) Source #

Staged CConstant Source # 
Instance details

Defined in Language.JVM.ByteCode

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> CConstant r -> m (CConstant r') Source #

evolve :: EvolveM m => CConstant Low -> m (CConstant High) Source #

devolve :: DevolveM m => CConstant High -> m (CConstant Low) Source #

Staged Invocation Source # 
Instance details

Defined in Language.JVM.ByteCode

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> Invocation r -> m (Invocation r') Source #

evolve :: EvolveM m => Invocation Low -> m (Invocation High) Source #

devolve :: DevolveM m => Invocation High -> m (Invocation Low) Source #

Staged Attribute Source # 
Instance details

Defined in Language.JVM.Attribute.Base

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> Attribute r -> m (Attribute r') Source #

evolve :: EvolveM m => Attribute Low -> m (Attribute High) Source #

devolve :: DevolveM m => Attribute High -> m (Attribute Low) Source #

Staged Signature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> Signature r -> m (Signature r') Source #

evolve :: EvolveM m => Signature Low -> m (Signature High) Source #

devolve :: DevolveM m => Signature High -> m (Signature Low) Source #

Staged Exceptions Source # 
Instance details

Defined in Language.JVM.Attribute.Exceptions

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> Exceptions r -> m (Exceptions r') Source #

evolve :: EvolveM m => Exceptions Low -> m (Exceptions High) Source #

devolve :: DevolveM m => Exceptions High -> m (Exceptions Low) Source #

Staged EnclosingMethod Source # 
Instance details

Defined in Language.JVM.Attribute.EnclosingMethod

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> EnclosingMethod r -> m (EnclosingMethod r') Source #

evolve :: EvolveM m => EnclosingMethod Low -> m (EnclosingMethod High) Source #

devolve :: DevolveM m => EnclosingMethod High -> m (EnclosingMethod Low) Source #

Staged ConstantValue Source # 
Instance details

Defined in Language.JVM.Attribute.ConstantValue

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> ConstantValue r -> m (ConstantValue r') Source #

evolve :: EvolveM m => ConstantValue Low -> m (ConstantValue High) Source #

devolve :: DevolveM m => ConstantValue High -> m (ConstantValue Low) Source #

Staged BootstrapMethod Source # 
Instance details

Defined in Language.JVM.Attribute.BootstrapMethods

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> BootstrapMethod r -> m (BootstrapMethod r') Source #

evolve :: EvolveM m => BootstrapMethod Low -> m (BootstrapMethod High) Source #

devolve :: DevolveM m => BootstrapMethod High -> m (BootstrapMethod Low) Source #

Staged BootstrapMethods Source # 
Instance details

Defined in Language.JVM.Attribute.BootstrapMethods

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> BootstrapMethods r -> m (BootstrapMethods r') Source #

evolve :: EvolveM m => BootstrapMethods Low -> m (BootstrapMethods High) Source #

devolve :: DevolveM m => BootstrapMethods High -> m (BootstrapMethods Low) Source #

Staged AnnotationDefault Source # 
Instance details

Defined in Language.JVM.Attribute.Annotations

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> AnnotationDefault r -> m (AnnotationDefault r') Source #

evolve :: EvolveM m => AnnotationDefault Low -> m (AnnotationDefault High) Source #

devolve :: DevolveM m => AnnotationDefault High -> m (AnnotationDefault Low) Source #

Staged FieldTypeAnnotation Source # 
Instance details

Defined in Language.JVM.Attribute.Annotations

Staged MethodTypeAnnotation Source # 
Instance details

Defined in Language.JVM.Attribute.Annotations

Staged ClassTypeAnnotation Source # 
Instance details

Defined in Language.JVM.Attribute.Annotations

Staged EnumValue Source # 
Instance details

Defined in Language.JVM.Attribute.Annotations

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> EnumValue r -> m (EnumValue r') Source #

evolve :: EvolveM m => EnumValue Low -> m (EnumValue High) Source #

devolve :: DevolveM m => EnumValue High -> m (EnumValue Low) Source #

Staged ElementValue Source # 
Instance details

Defined in Language.JVM.Attribute.Annotations

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> ElementValue r -> m (ElementValue r') Source #

evolve :: EvolveM m => ElementValue Low -> m (ElementValue High) Source #

devolve :: DevolveM m => ElementValue High -> m (ElementValue Low) Source #

Staged ValuePair Source # 
Instance details

Defined in Language.JVM.Attribute.Annotations

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> ValuePair r -> m (ValuePair r') Source #

evolve :: EvolveM m => ValuePair Low -> m (ValuePair High) Source #

devolve :: DevolveM m => ValuePair High -> m (ValuePair Low) Source #

Staged Annotation Source # 
Instance details

Defined in Language.JVM.Attribute.Annotations

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> Annotation r -> m (Annotation r') Source #

evolve :: EvolveM m => Annotation Low -> m (Annotation High) Source #

devolve :: DevolveM m => Annotation High -> m (Annotation Low) Source #

Staged RuntimeInvisibleParameterAnnotations Source # 
Instance details

Defined in Language.JVM.Attribute.Annotations

Staged RuntimeVisibleParameterAnnotations Source # 
Instance details

Defined in Language.JVM.Attribute.Annotations

Staged RuntimeInvisibleAnnotations Source # 
Instance details

Defined in Language.JVM.Attribute.Annotations

Staged RuntimeVisibleAnnotations Source # 
Instance details

Defined in Language.JVM.Attribute.Annotations

Staged Code Source # 
Instance details

Defined in Language.JVM.Attribute.Code

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> Code r -> m (Code r') Source #

evolve :: EvolveM m => Code Low -> m (Code High) Source #

devolve :: DevolveM m => Code High -> m (Code Low) Source #

Staged MethodParameter Source # 
Instance details

Defined in Language.JVM.Attribute.MethodParameters

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> MethodParameter r -> m (MethodParameter r') Source #

evolve :: EvolveM m => MethodParameter Low -> m (MethodParameter High) Source #

devolve :: DevolveM m => MethodParameter High -> m (MethodParameter Low) Source #

Staged MethodParameters Source # 
Instance details

Defined in Language.JVM.Attribute.MethodParameters

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> MethodParameters r -> m (MethodParameters r') Source #

evolve :: EvolveM m => MethodParameters Low -> m (MethodParameters High) Source #

devolve :: DevolveM m => MethodParameters High -> m (MethodParameters Low) Source #

Staged Method Source # 
Instance details

Defined in Language.JVM.Method

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> Method r -> m (Method r') Source #

evolve :: EvolveM m => Method Low -> m (Method High) Source #

devolve :: DevolveM m => Method High -> m (Method Low) Source #

Staged Field Source # 
Instance details

Defined in Language.JVM.Field

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> Field r -> m (Field r') Source #

evolve :: EvolveM m => Field Low -> m (Field High) Source #

devolve :: DevolveM m => Field High -> m (Field Low) Source #

Staged InnerClass Source # 
Instance details

Defined in Language.JVM.Attribute.InnerClasses

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> InnerClass r -> m (InnerClass r') Source #

evolve :: EvolveM m => InnerClass Low -> m (InnerClass High) Source #

devolve :: DevolveM m => InnerClass High -> m (InnerClass Low) Source #

Staged InnerClasses Source # 
Instance details

Defined in Language.JVM.Attribute.InnerClasses

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> InnerClasses r -> m (InnerClasses r') Source #

evolve :: EvolveM m => InnerClasses Low -> m (InnerClasses High) Source #

devolve :: DevolveM m => InnerClasses High -> m (InnerClasses Low) Source #

Staged ClassFile Source # 
Instance details

Defined in Language.JVM.ClassFile

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r -> m (s' r')) -> ClassFile r -> m (ClassFile r') Source #

evolve :: EvolveM m => ClassFile Low -> m (ClassFile High) Source #

devolve :: DevolveM m => ClassFile High -> m (ClassFile Low) Source #

Staged m => Staged (RuntimeInvisibleTypeAnnotations m) Source # 
Instance details

Defined in Language.JVM.Attribute.Annotations

Staged m => Staged (RuntimeVisibleTypeAnnotations m) Source # 
Instance details

Defined in Language.JVM.Attribute.Annotations

Staged m => Staged (TypeAnnotation m) Source # 
Instance details

Defined in Language.JVM.Attribute.Annotations

Methods

stage :: LabelM m0 => (forall (s' :: Type -> Type). Staged s' => s' r -> m0 (s' r')) -> TypeAnnotation m r -> m0 (TypeAnnotation m r') Source #

evolve :: EvolveM m0 => TypeAnnotation m Low -> m0 (TypeAnnotation m High) Source #

devolve :: DevolveM m0 => TypeAnnotation m High -> m0 (TypeAnnotation m Low) Source #

Monad Classes

class Monad m => LabelM m where Source #

Minimal complete definition

Nothing

Methods

label :: String -> m a -> m a Source #

label the current position in the class-file, good for debugging

class LabelM m => DevolveM m where Source #

Methods

unlink :: Referenceable r => r -> m Index Source #

AttributeLocation

Re-exports