use crate::LatticeComplex;
use deep_causality_algebra::RealField;
use deep_causality_haft::{HKT, NoConstraint, Satisfies};
use std::sync::Arc;
pub struct LatticeComplexWitness<const D: usize, R: RealField>(std::marker::PhantomData<R>);
impl<const D: usize, R: RealField> HKT for LatticeComplexWitness<D, R> {
type Constraint = NoConstraint;
type Type<T>
= LatticeField<D, R, T>
where
T: Satisfies<NoConstraint>;
}
pub struct LatticeField<const D: usize, R: RealField, T> {
pub lattice: Arc<LatticeComplex<D, R>>,
pub values: Vec<T>, }