module Heart.Core.Prelude ( module Prelude , Alternative (..) , Coercible , FromJSON (..) , FromJSONKey , Generic , Getter , HasCallStack , Exception (..) , Hashable (..) , HashMap , HashSet , Identity (..) , Int64 , Iso' , IsString , Lens' , ListT (..) , Map , MonadFail (..) , MonadIO (..) , MonadReader (..) , MonadThrow (..) , MonadTrans (..) , MonadUnliftIO (..) , Newtype , Prism' , Proxy (..) , Rep , Seq (..) , Set , Setter' , Text , ToJSON (..) , ToJSONKey , Typeable , UnliftIO (..) , Void , ap , asum , coerce , coerced , foldl' , foldM , for , for_ , iso , makeLenses , makePrisms , over , review , set , simple , toList , unless , view , when ) where import Control.Applicative (Alternative (..)) import Control.Exception (Exception (..)) import Control.Lens (Getter, Iso', Lens', Prism', Setter', coerced, iso, over, review, set, simple, view) import Control.Lens.TH (makeLenses, makePrisms) import Control.Monad (ap, foldM, unless, when) import Control.Monad.Catch (MonadThrow (..)) import Control.Monad.Fail (MonadFail (..)) import Control.Monad.Identity (Identity (..)) import Control.Monad.IO.Class (MonadIO (..)) import Control.Monad.IO.Unlift (MonadUnliftIO (..), UnliftIO (..)) import Control.Monad.Reader (MonadReader (..)) import Control.Monad.Trans (MonadTrans (..)) import Control.Newtype.Generics (Newtype) import Data.Aeson (FromJSON (..), FromJSONKey, ToJSON (..), ToJSONKey) import Data.Coerce (Coercible, coerce) import Data.Foldable (asum, for_, toList) import Data.Hashable (Hashable (..)) import Data.HashMap.Strict (HashMap) import Data.HashSet (HashSet) import Data.Int (Int64) import Data.List (foldl') import Data.Map.Strict (Map) import Data.Proxy (Proxy (..)) import Data.Sequence (Seq (..)) import Data.Set (Set) import Data.String (IsString) import Data.Text (Text) import Data.Traversable (for) import Data.Typeable (Typeable) import Data.Void (Void) import GHC.Generics (Generic, Rep) import GHC.Stack (HasCallStack) import ListT (ListT (..)) import Prelude hiding (fail, log)