use std::borrow::Borrow;
use std::collections::{BTreeMap, BTreeSet};
use serde::{Deserialize, Serialize};
use thiserror::Error;
use crate::artifact::{
HostRequirements, ModuleArtifact, host_requirements_for_program_with_catalog,
};
use crate::ast::{
AssignPathStep, AstString, Declaration, Expr, ProcessDecl, ProcessParam, Program,
ResourceRefExpr, TypeExpr, TypeField, format_type_expr,
};
use crate::lexer::Span;
include!("linker/catalog.rs");
include!("linker/host.rs");
include!("linker/errors.rs");
include!("linker/pass_setup.rs");
include!("linker/lower_expr.rs");
include!("linker/pass_validation.rs");
include!("linker/type_helpers.rs");
include!("linker/tests.rs");