Module Biokepi_pipeline_edsl.Transform_applications.Apply.The_pass (.ml)

module The_pass: Biokepi_pipeline_edsl.Transform_applications.Apply_optimization_framework(Input)


The “core” of the transformation is implemented here.

Input is the input language.

Transformation_types defines a GADT that encodes the subset of the EDSL that is of interest to the transformation.

'a Transformation_types.term is designed to allow us to pattern match (in the function Transformation_types.bwd).

All the terms of the input language that are not relevant to the transformation are wrapped in Transformation_types.Unknown.

module Transformation_types: sig .. end
module Transformation: Biokepi_pipeline_edsl.Optimization_framework.Define_transformation(Transformation_types)
Applying this functor just adds functions that we don't use yet; so this could be simplified in the future.
module Language_delta: sig .. end
Biokepi_pipeline_edsl.Transform_applications.Apply_optimization_framework.Language_delta is where we “intercept” the terms of the language that are interesting.