pub mod interp;
pub mod python;

use crate::ir::TypedDag;

/// Trait implemented by code generation backends.
///
/// A backend takes a fully-typed, optionally optimised `TypedDag` and
/// produces some backend-specific representation (usually source code).
pub trait Backend {
    type Output;

    fn emit_kernel(&self, dag: &TypedDag, fn_name: &str) -> Self::Output;
}
