Pseudocode: Translate instruction classes to Kotlin
Pseudocode: Divide instruction classes into packages
Pseudocode: Introduce ValuedInstruction
Pseudocode: Add receiver values to call instructions. Refactor InstructionWithReceiver
Pseudocode: Introduce "merge" instruction
Pseudocode: Record resolved information in read/write instructions. Introduce AccessValueInstruction
Pseudocode: Add explicit type predicates to magic instructions
Minor: Use varargs instead of lists
Pseudocode: Have builder return instructions rather than output values
Pseudocode: Do not bind call value to callee expressions
Minor: Remove redundant cast
Pseudocode: Generate pseudo-values for implicit receivers
Pseudocode: Copy value of JetThisExpression to enclosed JetSimpleNameExpression
Pseudocode: Generate resolved-call-based read instructions for this-expressions
Minor: Formatting changed