<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def make_receipt(self, base_header: BlockHeader, transaction: BaseTransaction, computation: BaseComputation, state: BaseState) -> Receipt: """ Generate the receipt resulting from applying the transaction. :param base_header: the header of the block before the transaction was applied. :param transaction: the transaction used to generate the receipt :param computation: the result of running the transaction computation :param state: the resulting state, after executing the computation :return: receipt """

        raise NotImplementedError("VM classes must implement this method")