{-# LANGUAGE NoImplicitPrelude #-} {-| Module : Control.Teardown Description : Build composable, idempotent & transparent application cleanup sub-routines Copyright : (c) Roman Gonzalez, 2017,2018 License : MIT Maintainer : open-source@roman-gonzalez.info Stability : experimental Provides functions that help on the creation of Application teardown sub-routines -} module Control.Teardown ( -- * Typeclasses for extending teardown functionality HasTeardown(..) , IResource -- * Cleanup main type and function , Teardown , TeardownResult (..) , runTeardown , runTeardown_ -- * Functions to create a 'Teardown' record , emptyTeardown , newTeardown -- * Functions to deal with results from 'teardown' call , didTeardownFail , failedToredownCount , toredownCount , prettyTeardownResult ) where import Control.Teardown.Internal.Types (HasTeardown (..), IResource (..), Teardown, TeardownResult (..)) import Control.Teardown.Internal.Core ( didTeardownFail , emptyTeardown , failedToredownCount , runTeardown , runTeardown_ , toredownCount ) import Control.Teardown.Internal.Printer (prettyTeardownResult)