lambdust 0.1.1

A Scheme dialect with gradual typing and effect systems
//! Configuration for monadic operations

use std::collections::HashMap;
use super::custom_monad_definition::CustomMonadDefinition;

/// Configuration for monadic operations
#[derive(Debug, Clone)]
pub struct MonadConfiguration {
    /// Maximum composition depth to prevent infinite recursion
    pub max_composition_depth: usize,
    
    /// Whether to optimize monadic compositions
    pub optimize_compositions: bool,
    
    /// Whether to enable automatic lifting
    pub enable_auto_lifting: bool,
    
    /// Custom monad definitions
    pub custom_monads: HashMap<String, CustomMonadDefinition>,
}

impl Default for MonadConfiguration {
    fn default() -> Self {
        Self {
            max_composition_depth: 1000,
            optimize_compositions: true,
            enable_auto_lifting: true,
            custom_monads: HashMap::new(),
        }
    }
}