def lower_pass(
        mod: nn.Module, input: Input, lower_settings: LowerSettings, module_name: str
    ) -> nn.Module:
        """
        Create a module transformation pass which lowers an `nn.Module` into an
        `AITModule`
        """
        interpreter = create_ait_interpreter(lower_settings)
        interp_res: AITInterpreterResult = interpreter(module_name, mod, input)

        # Return a scriptable module since some use cases need to script the top
        # level module
        return AITModule.create_ait_module_wrapper(
            torch.classes.ait.AITModel(
                interp_res.engine.lib_path,
                interp_res.input_names,
                interp_res.output_names,
                _precision_to_torch_type(lower_settings.precision),
                _precision_to_torch_type(lower_settings.output_precision),
                1,  # num_runtimes
                False,
            ),
            interp_res,
            lower_settings.trace_ait_module,
            *input,
        )

        Create a module transformation pass which lowers an `nn.Module` into an
        `AITModule`
        
fx2ait/fx2ait/lower/lower.py