{-# LANGUAGE CPP #-}
module Haxl.Core (
GenHaxl (..), runHaxl, runHaxlWithWrites
, Env(..), Caches, caches
, env, withEnv, withLabel
, initEnvWithData, initEnv, emptyEnv, sanitizeEnv
, StateStore, stateGet, stateSet, stateEmpty
, tellWrite, tellWriteNoMemo
, throw, catch, catchIf, try, tryToHaxlException
, dataFetch, uncachedRequest
, cacheRequest, dupableCacheRequest, cacheResult, cacheResultWithShow
, cachedComputation, preCacheComputation
, dumpCacheAsHaskell
, newMemo, newMemoWith, prepareMemo, runMemo
, memo, memoUnique, memoize, memoize1, memoize2
, memoFingerprint, MemoFingerprintKey(..)
, pAnd, pOr, unsafeChooseFirst
, Stats(..)
, FetchStats(..)
, CallId
, Microseconds
, Timestamp
, emptyStats
, numFetches
, ppStats
, ppFetchStats
, aggregateFetchBatches
, Profile(..)
, ProfileMemo(..)
, ProfileFetch(..)
, emptyProfile
, ProfileLabel
, ProfileKey
, ProfileData(..)
, emptyProfileData
, AllocCount
, LabelHitCount
, ReportFlag(..)
, ReportFlags
, defaultReportFlags
, profilingReportFlags
, setReportFlag
, clearReportFlag
, testReportFlag
, Flags(..)
, defaultFlags
, ifTrace
, ifReport
, ifProfiling
, DataSource(..)
, ShowP(..)
, DataSourceName(..)
, Request
, BlockedFetch(..)
, PerformFetch(..)
, StateKey(..)
, SchedulerHint(..)
, FailureClassification(..)
, ResultVar(..)
, mkResultVar
, putFailure
, putResult
, putSuccess
, putResultFromChildThread
, putResultWithStats
, putResultWithStatsFromChildThread
, DataSourceStats(..)
, asyncFetch, asyncFetchWithDispatch, asyncFetchAcquireRelease
, backgroundFetchSeq, backgroundFetchPar
, backgroundFetchAcquireRelease, backgroundFetchAcquireReleaseMVar
, stubFetch
, syncFetch
, except
, setError
, getMapFromRCMap
, module Haxl.Core.Exception
, module Haxl.Core.CallGraph
) where
import Haxl.Core.CallGraph
import Haxl.Core.DataSource
import Haxl.Core.Flags
import Haxl.Core.Memo
import Haxl.Core.Monad hiding (unsafeLiftIO )
import Haxl.Core.Fetch
import Haxl.Core.Parallel
import Haxl.Core.Profile
import Haxl.Core.Run
import Haxl.Core.Stats
import Haxl.Core.Exception
import Haxl.Core.RequestStore (getMapFromRCMap)
import Haxl.Core.ShowP (ShowP(..))
import Haxl.Core.StateStore