-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Intermediate language for static code analysis
--
-- The intermediate language / intermediate representation /
-- bitcode (IL / IR / bitcode) is a data structure able to represent
-- code originating from multiple programming languages. Its main
-- purpose is to enable an efficient and uniform static code
-- analysis, as part of the dhscanner framework for
-- CI/CD container security checks. As part of that framework, it
-- targets mostly languages used for cloud native applications:
-- Python, Ruby, Php, Javascript,
-- Typescript, Java, C# and Golang.
-- Typically, a collection of files are first parsed using relevant
-- parsers, then, the resulting collection of abstract syntax
-- trees is sent to code generation, where it is translated into a
-- collection of callables. A callable is a sequence of commands
-- corresponding to either a function, a method or (in languages like
-- python) a script. The design of commands was done with simplicity in
-- mind. The commands resemble an abstract RISC-style assembley,
-- motivated by keeping later-phases analyses as simple as possible.
@package dhscanner-bitcode
@version 0.1.0.0
module Fqn
-- | Fully qualified name
data Fqn
Fqn :: String -> Fqn
[content] :: Fqn -> String
any :: Fqn
nativeInt :: Fqn
nativeStr :: Fqn
instance Data.Aeson.Types.FromJSON.FromJSON Fqn.Fqn
instance Data.Aeson.Types.ToJSON.ToJSON Fqn.Fqn
instance GHC.Generics.Generic Fqn.Fqn
instance GHC.Classes.Ord Fqn.Fqn
instance GHC.Classes.Eq Fqn.Fqn
instance GHC.Show.Show Fqn.Fqn
module Bitcode
-- |
-- - All instructions have an associated location
-- - That is true also for instrumented instructions (like Nop
-- and Assume)
--
data Instruction
Instruction :: Location -> InstructionContent -> Instruction
[location] :: Instruction -> Location
[instructionContent] :: Instruction -> InstructionContent
-- | A minimal instruction set to translate any programming language
-- to an intermediate langauge ready for static analysis
data InstructionContent
Nop :: InstructionContent
Call :: CallContent -> InstructionContent
Unop :: UnopContent -> InstructionContent
Binop :: BinopContent -> InstructionContent
Assume :: AssumeContent -> InstructionContent
Return :: ReturnContent -> InstructionContent
Assign :: AssignContent -> InstructionContent
LoadImmStr :: StrContent -> InstructionContent
LoadImmInt :: IntContent -> InstructionContent
LoadImmBool :: BoolContent -> InstructionContent
ParamDecl :: ParamDeclContent -> InstructionContent
FieldRead :: FieldReadContent -> InstructionContent
FieldWrite :: FieldWriteContent -> InstructionContent
SubscriptRead :: SubscriptReadContent -> InstructionContent
SubscriptWrite :: SubscriptWriteContent -> InstructionContent
mkNopInstruction :: Location -> Instruction
data TmpVariable
TmpVariable :: Fqn -> Location -> TmpVariable
[tmpVariableFqn] :: TmpVariable -> Fqn
[tmpVariableLocation] :: TmpVariable -> Location
data SrcVariable
SrcVariable :: Fqn -> VarName -> SrcVariable
[srcVariableFqn] :: SrcVariable -> Fqn
[srcVariableToken] :: SrcVariable -> VarName
data ArgContent
ArgContent :: Fqn -> Word -> Location -> ArgContent
[argVariableFqn] :: ArgContent -> Fqn
[argVariableSerialIdx] :: ArgContent -> Word
[argVariableMyAwesomeCallContext] :: ArgContent -> Location
data ParamVariable
ParamVariable :: Fqn -> Word -> ParamName -> ParamVariable
[paramVariableFqn] :: ParamVariable -> Fqn
[paramVariableSerialIdx] :: ParamVariable -> Word
[paramVariableToken] :: ParamVariable -> ParamName
data Variable
TmpVariableCtor :: TmpVariable -> Variable
SrcVariableCtor :: SrcVariable -> Variable
ParamVariableCtor :: ParamVariable -> Variable
Arg :: ArgContent -> Variable
variableFqn :: Variable -> Fqn
-- | Can not be serialized to JSON
data Variables
Variables :: Set Variable -> Variables
[actualVariables] :: Variables -> Set Variable
data SrcVariables
SrcVariables :: Set SrcVariable -> SrcVariables
[actualSrcVariables] :: SrcVariables -> Set SrcVariable
-- | Creating an empty collection of global variables
createEmptyCollectionOfGlobalVariables :: SrcVariables
-- | Can not be serialized to JSON
data TmpVariables
TmpVariables :: Set TmpVariable -> TmpVariables
[actualTmpVariables] :: TmpVariables -> Set TmpVariable
locationVariable :: Variable -> Location
data CallContent
CallContent :: Variable -> Variable -> [Variable] -> Location -> CallContent
[callOutput] :: CallContent -> Variable
[callee] :: CallContent -> Variable
[args] :: CallContent -> [Variable]
[callLocation] :: CallContent -> Location
callInputs :: CallContent -> [TmpVariable]
data BinopContent
BinopContent :: Variable -> Variable -> Variable -> BinopContent
[binopOutput] :: BinopContent -> Variable
[binopLhs] :: BinopContent -> Variable
[binopRhs] :: BinopContent -> Variable
data UnopContent
UnopContent :: TmpVariable -> TmpVariable -> UnopContent
[unopOutput] :: UnopContent -> TmpVariable
[unopLhs] :: UnopContent -> TmpVariable
data AssumeContent
AssumeContent :: Variable -> Bool -> AssumeContent
[assumeVariable] :: AssumeContent -> Variable
[assumedValue] :: AssumeContent -> Bool
mkAssumeInstruction :: Variable -> Bool -> Instruction
data ReturnContent
ReturnContent :: Maybe TmpVariable -> ReturnContent
[returnValue] :: ReturnContent -> Maybe TmpVariable
data AssignContent
AssignContent :: Variable -> Variable -> AssignContent
[assignOutput] :: AssignContent -> Variable
[assignInput] :: AssignContent -> Variable
data IntContent
IntContent :: TmpVariable -> ConstInt -> IntContent
[loadImmIntOutput] :: IntContent -> TmpVariable
[loadImmIntValue] :: IntContent -> ConstInt
data StrContent
StrContent :: TmpVariable -> ConstStr -> StrContent
[loadImmStrOutput] :: StrContent -> TmpVariable
[loadImmStrValue] :: StrContent -> ConstStr
data BoolContent
BoolContent :: TmpVariable -> ConstBool -> BoolContent
[loadImmBoolOutput] :: BoolContent -> TmpVariable
[loadImmBoolValue] :: BoolContent -> ConstBool
data FieldReadContent
FieldReadContent :: Variable -> Variable -> FieldName -> FieldReadContent
[fieldReadOutput] :: FieldReadContent -> Variable
[fieldReadInput] :: FieldReadContent -> Variable
[fieldReadName] :: FieldReadContent -> FieldName
data FieldWriteContent
FieldWriteContent :: Variable -> FieldName -> Variable -> FieldWriteContent
[fieldWriteOutput] :: FieldWriteContent -> Variable
[fieldWriteName] :: FieldWriteContent -> FieldName
[fieldWriteInput] :: FieldWriteContent -> Variable
data SubscriptReadContent
SubscriptReadContent :: Variable -> Variable -> Variable -> SubscriptReadContent
[subscriptReadOutput] :: SubscriptReadContent -> Variable
[subscriptReadInput] :: SubscriptReadContent -> Variable
[subscriptReadIdx] :: SubscriptReadContent -> Variable
data SubscriptWriteContent
SubscriptWriteContent :: Variable -> Variable -> Variable -> SubscriptWriteContent
[subscriptWriteOutput] :: SubscriptWriteContent -> Variable
[subscriptWriteIdx] :: SubscriptWriteContent -> Variable
[subscriptWriteInput] :: SubscriptWriteContent -> Variable
data ParamDeclContent
ParamDeclContent :: ParamVariable -> ParamDeclContent
[paramVariable] :: ParamDeclContent -> ParamVariable
output :: InstructionContent -> Maybe Variable
inputs :: InstructionContent -> Set TmpVariable
inputs' :: InstructionContent -> Set Variable
variables :: InstructionContent -> Set Variable
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.TmpVariable
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.TmpVariable
instance GHC.Generics.Generic Bitcode.TmpVariable
instance GHC.Classes.Ord Bitcode.TmpVariable
instance GHC.Classes.Eq Bitcode.TmpVariable
instance GHC.Show.Show Bitcode.TmpVariable
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.SrcVariable
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.SrcVariable
instance GHC.Generics.Generic Bitcode.SrcVariable
instance GHC.Classes.Ord Bitcode.SrcVariable
instance GHC.Classes.Eq Bitcode.SrcVariable
instance GHC.Show.Show Bitcode.SrcVariable
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.ArgContent
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.ArgContent
instance GHC.Generics.Generic Bitcode.ArgContent
instance GHC.Classes.Ord Bitcode.ArgContent
instance GHC.Classes.Eq Bitcode.ArgContent
instance GHC.Show.Show Bitcode.ArgContent
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.ParamVariable
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.ParamVariable
instance GHC.Generics.Generic Bitcode.ParamVariable
instance GHC.Classes.Ord Bitcode.ParamVariable
instance GHC.Classes.Eq Bitcode.ParamVariable
instance GHC.Show.Show Bitcode.ParamVariable
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.Variable
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.Variable
instance GHC.Generics.Generic Bitcode.Variable
instance GHC.Classes.Ord Bitcode.Variable
instance GHC.Classes.Eq Bitcode.Variable
instance GHC.Show.Show Bitcode.Variable
instance GHC.Classes.Ord Bitcode.Variables
instance GHC.Classes.Eq Bitcode.Variables
instance GHC.Show.Show Bitcode.Variables
instance GHC.Classes.Ord Bitcode.SrcVariables
instance GHC.Classes.Eq Bitcode.SrcVariables
instance GHC.Show.Show Bitcode.SrcVariables
instance GHC.Classes.Ord Bitcode.TmpVariables
instance GHC.Classes.Eq Bitcode.TmpVariables
instance GHC.Show.Show Bitcode.TmpVariables
instance GHC.Classes.Ord Bitcode.CallContent
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.CallContent
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.CallContent
instance GHC.Generics.Generic Bitcode.CallContent
instance GHC.Classes.Eq Bitcode.CallContent
instance GHC.Show.Show Bitcode.CallContent
instance GHC.Classes.Ord Bitcode.BinopContent
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.BinopContent
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.BinopContent
instance GHC.Generics.Generic Bitcode.BinopContent
instance GHC.Classes.Eq Bitcode.BinopContent
instance GHC.Show.Show Bitcode.BinopContent
instance GHC.Classes.Ord Bitcode.UnopContent
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.UnopContent
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.UnopContent
instance GHC.Generics.Generic Bitcode.UnopContent
instance GHC.Classes.Eq Bitcode.UnopContent
instance GHC.Show.Show Bitcode.UnopContent
instance GHC.Classes.Ord Bitcode.AssumeContent
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.AssumeContent
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.AssumeContent
instance GHC.Generics.Generic Bitcode.AssumeContent
instance GHC.Classes.Eq Bitcode.AssumeContent
instance GHC.Show.Show Bitcode.AssumeContent
instance GHC.Classes.Ord Bitcode.ReturnContent
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.ReturnContent
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.ReturnContent
instance GHC.Generics.Generic Bitcode.ReturnContent
instance GHC.Classes.Eq Bitcode.ReturnContent
instance GHC.Show.Show Bitcode.ReturnContent
instance GHC.Classes.Ord Bitcode.AssignContent
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.AssignContent
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.AssignContent
instance GHC.Generics.Generic Bitcode.AssignContent
instance GHC.Classes.Eq Bitcode.AssignContent
instance GHC.Show.Show Bitcode.AssignContent
instance GHC.Classes.Ord Bitcode.IntContent
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.IntContent
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.IntContent
instance GHC.Generics.Generic Bitcode.IntContent
instance GHC.Classes.Eq Bitcode.IntContent
instance GHC.Show.Show Bitcode.IntContent
instance GHC.Classes.Ord Bitcode.StrContent
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.StrContent
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.StrContent
instance GHC.Generics.Generic Bitcode.StrContent
instance GHC.Classes.Eq Bitcode.StrContent
instance GHC.Show.Show Bitcode.StrContent
instance GHC.Classes.Ord Bitcode.BoolContent
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.BoolContent
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.BoolContent
instance GHC.Generics.Generic Bitcode.BoolContent
instance GHC.Classes.Eq Bitcode.BoolContent
instance GHC.Show.Show Bitcode.BoolContent
instance GHC.Classes.Ord Bitcode.FieldReadContent
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.FieldReadContent
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.FieldReadContent
instance GHC.Generics.Generic Bitcode.FieldReadContent
instance GHC.Classes.Eq Bitcode.FieldReadContent
instance GHC.Show.Show Bitcode.FieldReadContent
instance GHC.Classes.Ord Bitcode.FieldWriteContent
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.FieldWriteContent
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.FieldWriteContent
instance GHC.Generics.Generic Bitcode.FieldWriteContent
instance GHC.Classes.Eq Bitcode.FieldWriteContent
instance GHC.Show.Show Bitcode.FieldWriteContent
instance GHC.Classes.Ord Bitcode.SubscriptReadContent
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.SubscriptReadContent
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.SubscriptReadContent
instance GHC.Generics.Generic Bitcode.SubscriptReadContent
instance GHC.Classes.Eq Bitcode.SubscriptReadContent
instance GHC.Show.Show Bitcode.SubscriptReadContent
instance GHC.Classes.Ord Bitcode.SubscriptWriteContent
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.SubscriptWriteContent
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.SubscriptWriteContent
instance GHC.Generics.Generic Bitcode.SubscriptWriteContent
instance GHC.Classes.Eq Bitcode.SubscriptWriteContent
instance GHC.Show.Show Bitcode.SubscriptWriteContent
instance GHC.Classes.Ord Bitcode.ParamDeclContent
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.ParamDeclContent
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.ParamDeclContent
instance GHC.Generics.Generic Bitcode.ParamDeclContent
instance GHC.Classes.Eq Bitcode.ParamDeclContent
instance GHC.Show.Show Bitcode.ParamDeclContent
instance GHC.Classes.Ord Bitcode.InstructionContent
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.InstructionContent
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.InstructionContent
instance GHC.Generics.Generic Bitcode.InstructionContent
instance GHC.Classes.Eq Bitcode.InstructionContent
instance GHC.Show.Show Bitcode.InstructionContent
instance GHC.Classes.Ord Bitcode.Instruction
instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.Instruction
instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.Instruction
instance GHC.Generics.Generic Bitcode.Instruction
instance GHC.Classes.Eq Bitcode.Instruction
instance GHC.Show.Show Bitcode.Instruction
module Cfg
data Node
Node :: Instruction -> Node
[theInstructionInside] :: Node -> Instruction
data Nodes
Nodes :: Set Node -> Nodes
[actualNodes] :: Nodes -> Set Node
data Edge
Edge :: Node -> Node -> Edge
[from] :: Edge -> Node
[to] :: Edge -> Node
data Edges
Edges :: Set Edge -> Edges
[actualEdges] :: Edges -> Set Edge
mkEmptyCollectionOfEdges :: Edges
data Cfg
Cfg :: Node -> Node -> Edges -> Cfg
[entry] :: Cfg -> Node
[exit] :: Cfg -> Node
[edges] :: Cfg -> Edges
location :: Cfg -> Location
nodes :: Cfg -> Nodes
preds :: Node -> Cfg -> Nodes
empty :: Location -> Cfg
atom :: Node -> Cfg
concat :: Cfg -> Cfg -> Cfg
parallel :: Cfg -> Cfg -> Cfg
-- | create a loop from condition and body
loopify :: Cfg -> Cfg -> Variable -> Cfg
instance Data.Aeson.Types.FromJSON.FromJSON Cfg.Node
instance Data.Aeson.Types.ToJSON.ToJSON Cfg.Node
instance GHC.Generics.Generic Cfg.Node
instance GHC.Classes.Ord Cfg.Node
instance GHC.Classes.Eq Cfg.Node
instance GHC.Show.Show Cfg.Node
instance GHC.Classes.Ord Cfg.Nodes
instance GHC.Classes.Eq Cfg.Nodes
instance GHC.Show.Show Cfg.Nodes
instance Data.Aeson.Types.FromJSON.FromJSON Cfg.Edge
instance Data.Aeson.Types.ToJSON.ToJSON Cfg.Edge
instance GHC.Generics.Generic Cfg.Edge
instance GHC.Classes.Ord Cfg.Edge
instance GHC.Classes.Eq Cfg.Edge
instance GHC.Show.Show Cfg.Edge
instance Data.Aeson.Types.FromJSON.FromJSON Cfg.Edges
instance Data.Aeson.Types.ToJSON.ToJSON Cfg.Edges
instance GHC.Generics.Generic Cfg.Edges
instance GHC.Classes.Ord Cfg.Edges
instance GHC.Classes.Eq Cfg.Edges
instance GHC.Show.Show Cfg.Edges
instance Data.Aeson.Types.FromJSON.FromJSON Cfg.Cfg
instance Data.Aeson.Types.ToJSON.ToJSON Cfg.Cfg
instance GHC.Generics.Generic Cfg.Cfg
instance GHC.Classes.Ord Cfg.Cfg
instance GHC.Classes.Eq Cfg.Cfg
instance GHC.Show.Show Cfg.Cfg
-- |
-- - The intermediate language (IL) / intermediate representation
-- (IR) / bitcode are all synonyms for a data structure able to
-- represent code originating from multiple programming
-- languages.
-- - In our context, the main purpose is to enable an efficient and
-- uniform static code analysis, as part of the dhscanner
-- framework for CI/CD container security checks.
-- - dhscanner targets mostly languages used for cloud native
-- applications: Python, Ruby, Php,
-- Javascript, Typescript, Java, C# and
-- Golang.
-- - Typically, a collection of files are first parsed using relevant
-- parsers, then, the resulting abstract syntax trees are sent to
-- code generation, where they are translated into a collection of
-- callables.
-- - A callable is a sequence of commands corresponding to either a
-- function, a method, a lambda or (in languages like python) a
-- script.
--
module Callable
data Callables
Callables :: [Callable] -> Callables
[actualCallables] :: Callables -> [Callable]
-- | Four kinds of callables.
data Callable
Method :: MethodContent -> Callable
Lambda :: LambdaContent -> Callable
Script :: ScriptContent -> Callable
Function :: FunctionContent -> Callable
data MethodContent
MethodContent :: MethdName -> ClassName -> [SuperName] -> Cfg -> Location -> MethodContent
[methodName] :: MethodContent -> MethdName
[hostingClassName] :: MethodContent -> ClassName
[hostingClassSupers] :: MethodContent -> [SuperName]
[methodBody] :: MethodContent -> Cfg
[methodLocation] :: MethodContent -> Location
data LambdaContent
LambdaContent :: Cfg -> Location -> LambdaContent
[lambdaBody] :: LambdaContent -> Cfg
[lambdaLocation] :: LambdaContent -> Location
data ScriptContent
ScriptContent :: String -> Cfg -> ScriptContent
[filename] :: ScriptContent -> String
[scriptBody] :: ScriptContent -> Cfg
data Annotation
Annotation :: String -> [String] -> Annotation
[annotationFqn] :: Annotation -> String
[annotationConstantStrings] :: Annotation -> [String]
data FunctionContent
FunctionContent :: FuncName -> Cfg -> [Annotation] -> Location -> FunctionContent
[funcName] :: FunctionContent -> FuncName
[funcBody] :: FunctionContent -> Cfg
[funcAnnotations] :: FunctionContent -> [Annotation]
[funcLocation] :: FunctionContent -> Location
instance Data.Aeson.Types.FromJSON.FromJSON Callable.MethodContent
instance Data.Aeson.Types.ToJSON.ToJSON Callable.MethodContent
instance GHC.Generics.Generic Callable.MethodContent
instance GHC.Classes.Ord Callable.MethodContent
instance GHC.Classes.Eq Callable.MethodContent
instance GHC.Show.Show Callable.MethodContent
instance Data.Aeson.Types.FromJSON.FromJSON Callable.LambdaContent
instance Data.Aeson.Types.ToJSON.ToJSON Callable.LambdaContent
instance GHC.Generics.Generic Callable.LambdaContent
instance GHC.Classes.Ord Callable.LambdaContent
instance GHC.Classes.Eq Callable.LambdaContent
instance GHC.Show.Show Callable.LambdaContent
instance Data.Aeson.Types.FromJSON.FromJSON Callable.ScriptContent
instance Data.Aeson.Types.ToJSON.ToJSON Callable.ScriptContent
instance GHC.Generics.Generic Callable.ScriptContent
instance GHC.Classes.Ord Callable.ScriptContent
instance GHC.Classes.Eq Callable.ScriptContent
instance GHC.Show.Show Callable.ScriptContent
instance Data.Aeson.Types.FromJSON.FromJSON Callable.Annotation
instance Data.Aeson.Types.ToJSON.ToJSON Callable.Annotation
instance GHC.Generics.Generic Callable.Annotation
instance GHC.Classes.Ord Callable.Annotation
instance GHC.Classes.Eq Callable.Annotation
instance GHC.Show.Show Callable.Annotation
instance Data.Aeson.Types.FromJSON.FromJSON Callable.FunctionContent
instance Data.Aeson.Types.ToJSON.ToJSON Callable.FunctionContent
instance GHC.Generics.Generic Callable.FunctionContent
instance GHC.Classes.Ord Callable.FunctionContent
instance GHC.Classes.Eq Callable.FunctionContent
instance GHC.Show.Show Callable.FunctionContent
instance Data.Aeson.Types.FromJSON.FromJSON Callable.Callable
instance Data.Aeson.Types.ToJSON.ToJSON Callable.Callable
instance GHC.Generics.Generic Callable.Callable
instance GHC.Classes.Ord Callable.Callable
instance GHC.Classes.Eq Callable.Callable
instance GHC.Show.Show Callable.Callable
instance Data.Aeson.Types.FromJSON.FromJSON Callable.Callables
instance Data.Aeson.Types.ToJSON.ToJSON Callable.Callables
instance GHC.Generics.Generic Callable.Callables
instance GHC.Classes.Ord Callable.Callables
instance GHC.Classes.Eq Callable.Callables
instance GHC.Show.Show Callable.Callables