# TODO list

- Remove Bytecode.cellvars and Bytecode.freevars?

- Remove Bytecode.first_lineno? Compute it on conversions.

- Add instruction constants/enums? Example:

      from bytecode import instructions as i

      bytecode = Bytecode([i.LOAD_NAME('print'),
                           i.LOAD_CONST('Hello World!'),
                           i.CALL_FUNCTION(1),
                           i.POP_TOP(),
                           i.LOAD_CONST(None),
                           i.RETURN_VALUE()])

  Should we support instructions without parenthesis for instruction with no parameter? Example with POP_TOP and RETURN_VALUE:

      from bytecode import instructions as i

      bytecode = Bytecode([i.LOAD_NAME('print'),
                           i.LOAD_CONST('Hello World!'),
                           i.CALL_FUNCTION(1),
                           i.POP_TOP,
                           i.LOAD_CONST(None),
                           i.RETURN_VALUE])

- Nicer API for function arguments in bytecode object? Bytecode has argcount, kwonlyargcount and argnames. 4 types of parameters: indexed, `*args`, `**kwargs` and `*, kwonly=3`. See inspect.signature()