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, preCacheComputation
, dumpCacheAsHaskell
, newMemo, newMemoWith, prepareMemo, runMemo
, memo, memoize, memoize1, memoize2
, memoFingerprint, MemoFingerprintKey(..)
, pAnd, pOr
, Stats(..)
, FetchStats(..)
, Microseconds
, Timestamp
, emptyStats
, numRounds
, numFetches
, ppStats
, ppFetchStats
, Profile
, emptyProfile
, profile
, ProfileLabel
, ProfileData(..)
, emptyProfileData
, AllocCount
, MemoHitCount
, Flags(..)
, defaultFlags
, ifTrace
, ifReport
, ifProfiling
, DataSource(..)
, ShowP(..)
, DataSourceName(..)
, Request
, BlockedFetch(..)
, PerformFetch(..)
, StateKey(..)
, SchedulerHint(..)
, ResultVar(..)
, mkResultVar
, putFailure
, putResult
, putSuccess
, putResultFromChildThread
, asyncFetch, asyncFetchWithDispatch, asyncFetchAcquireRelease
, stubFetch
, syncFetch
, except
, setError
, module Haxl.Core.Exception
) where
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.ShowP (ShowP(..))
import Haxl.Core.StateStore