use crate::{DeonticError, TeloidTag, Verdict};
use deep_causality::{
Context, Datable, ProposedAction, SpaceTemporal, Spatial, Symbolic, Temporal,
};
#[allow(clippy::type_complexity)]
pub trait DeonticInferable<D, S, T, ST, SYM, VS, VT>
where
D: Datable + Clone,
S: Spatial<VS> + Clone,
T: Temporal<VT> + Clone,
ST: SpaceTemporal<VS, VT> + Clone,
SYM: Symbolic + Clone,
VS: Clone,
VT: Clone,
{
fn evaluate_action(
&self,
action: &ProposedAction,
context: &Context<D, S, T, ST, SYM, VS, VT>,
tags: &[TeloidTag],
) -> Result<Verdict, DeonticError>;
}