lambdust 0.1.1

A Scheme dialect with gradual typing and effect systems
//! Result of monadic expression evaluation

use crate::eval::Value;
use crate::effects::Effect;

use super::{
    monadic_computation::MonadicComputation,
    evaluation_metadata::EvaluationMetadata,
    evaluation_metrics::EvaluationMetrics,
};

/// Result of monadic expression evaluation
#[derive(Debug, Clone)]
pub struct MonadicEvaluationResult {
    /// The resulting computation
    pub computation: MonadicComputation<Value>,
    
    /// Metadata about the evaluation
    pub metadata: EvaluationMetadata,
    
    /// Any side effects that occurred
    pub effects: Vec<Effect>,
    
    /// Performance metrics
    pub metrics: EvaluationMetrics,
}