module Haxl.Core (
GenHaxl (..), runHaxl,
Env(..), Caches, caches,
env, withEnv, withLabel,
initEnvWithData, initEnv, emptyEnv,
StateStore, stateGet, stateSet, stateEmpty,
throw, catch, catchIf, try, tryToHaxlException,
dataFetch, uncachedRequest,
cacheRequest, cacheResult, cacheResultWithShow, cachedComputation,
dumpCacheAsHaskell,
memo, memoize, memoize1, memoize2,
memoFingerprint, MemoFingerprintKey(..),
pAnd, pOr,
Stats(..),
RoundStats(..),
DataSourceRoundStats(..),
Microseconds,
emptyStats,
numRounds,
numFetches,
ppStats,
ppRoundStats,
ppDataSourceRoundStats,
Profile,
emptyProfile,
profile,
profileRound,
profileCache,
ProfileLabel,
ProfileData(..),
emptyProfileData,
Flags(..),
defaultFlags,
ifTrace,
ifReport,
ifProfiling,
DataSource(..),
ShowP(..),
DataSourceName(..),
Request,
BlockedFetch(..),
PerformFetch(..),
StateKey(..),
ResultVar(..),
newEmptyResult,
newResult,
putFailure,
putResult,
putSuccess,
takeResult,
tryReadResult,
tryTakeResult,
asyncFetch, asyncFetchWithDispatch, asyncFetchAcquireRelease,
stubFetch,
syncFetch,
except,
setError,
module Haxl.Core.Exception
) where
import Haxl.Core.Memo
import Haxl.Core.Monad hiding (unsafeLiftIO )
import Haxl.Core.Types
import Haxl.Core.Exception
import Haxl.Core.ShowP (ShowP(..))
import Haxl.Core.StateStore