clod-0.1.0: src/Clod/Effects.hs
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE QuantifiedConstraints #-}
-- |
-- Module : Clod.Effects
-- Description : Effect types and utilities for Clod
-- Copyright : (c) Fuzz Leonard, 2025
-- License : MIT
-- Maintainer : cyborg@bionicfuzz.com
-- Stability : experimental
--
-- This module provides types and utilities for working with effects in Clod.
-- It uses a traditional monad transformer stack rather than an algebraic effects
-- system, prioritizing type inference and error reporting clarity.
--
-- The module re-exports the core functionality from Clod.Types to provide
-- a clean interface for working with the ClodM monad stack.
module Clod.Effects
( -- * Core effect types
ClodM
, ClodError(..)
, ClodConfig(..)
-- * Running effects
, runClodM
-- * Monadic operations
, throwError
, catchError
, liftIO
-- * Reader operations
, ask
, asks
, local
) where
import Clod.Types
( ClodM
, ClodError(..)
, ClodConfig(..)
, runClodM
, throwError
, catchError
, liftIO
, ask
, asks
, local
)