grisette-0.7.0.0: src/Grisette.hs
-- Disable this warning because we are re-exporting things.
{-# OPTIONS_GHC -Wno-missing-import-lists #-}
-- |
-- Module : Grisette
-- Copyright : (c) Sirui Lu 2021-2024
-- License : BSD-3-Clause (see the LICENSE file)
--
-- Maintainer : siruilu@cs.washington.edu
-- Stability : Experimental
-- Portability : GHC only
module Grisette
( -- | Grisette is a tool for performing symbolic evaluation on programs. With
-- Grisette, you can construct your own symbolic DSL and obtain the symbolic
-- evaluator for it without manually implementing the symbolic evaluation
-- algorithms. A brief introduction to symbolic evaluation is available in
-- the "Grisette.Core" module.
--
-- This module exports most of the Grisette APIs. Additional lifted library
-- constructs are in the submodules of @Grisette.Lib@, which are not
-- exported here and should be imported explicitly. For example, to use
-- the lifted "Data.List" functions, you should import
-- "Grisette.Lib.Data.List" explicitly.
--
-- Grisette also provides an experimental API for unifying symbolic and
-- concrete code to avoid code duplication. This API is exported in the
-- "Grisette.Unified" module. The module should be imported qualified, as
-- it intentionally uses the same names as the "Grisette" module.
--
-- The following shows a typical import list:
--
-- > import Grisette
-- > import Grisette.Lib.Data.List
-- > import qualified Grisette.Unified as U
-- > import qualified Grisette.Unified.Lib.Data.List as U
--
-- Other highly experimental APIs are exported in "Grisette.Experimental"
-- and its submodules. These APIs are not stable, may be buggy and poorly
-- maintained, and do not follow the PVP rules.
-- * Core modules
-- | This module exports the core operations for manipulating symbolic
-- values.
module Grisette.Core,
-- * Symbolic primitives
-- | This module provides primitive types for symbolic evaluation.
module Grisette.SymPrim,
-- * Solver backend
-- | This module provides the configuration of the solver backends.
module Grisette.Backend,
-- * Core libraries
-- | This module exports the core lifted library constructs.
module Grisette.Lib.Base,
-- * Utils
-- | This module exports utility functions for working with size-tagged
-- types.
module Grisette.Utils,
-- * Template Haskell
-- | This module provides template haskell procedures that help with type
-- class derivation and constructing some smart constructors.
module Grisette.TH,
)
where
import Grisette.Backend
import Grisette.Core
import Grisette.Lib.Base
import Grisette.SymPrim
import Grisette.TH
import Grisette.Utils