imp-ppl-0.1.0.0: src/Imp.hs
-- | Single-import entry point for Imp.
--
-- @
-- {-\# LANGUAGE DataKinds, QualifiedDo, RebindableSyntax, TypeApplications \#-}
-- import Imp
-- @
--
-- The single import provides both:
--
-- * Unqualified access to the Prelude, the DSL combinators, and the inference API.
-- * The @Imp.@ qualifier used by @QualifiedDo@ desugaring (@Imp.do@, @Imp.return@, @Imp.>>=@).
--
-- Driver code that only runs inference should import "Imp.Inference" directly.
module Imp
( module Imp.DSL
, module Imp.DSL.Combinators
, module Imp.Inference
, module Imp.Prelude
) where
import Imp.Prelude
import Imp.DSL
( Imp
, flip
, knight
, interval
, observe
, tag
, IfThenElse(..)
, IfR
, Merge
, Union
, TagAll
, return
, (>>=)
, (>>)
, fmap
, (<$>)
)
import Imp.DSL.Combinators
( GenNames
, ConcatMapTag
, MapName(..)
, intervalMap
, knightMap
, intervalN
, knightN
, TagFoldM(..)
, foldMN
, tagFold
, tagMap
, tagScan
, tagN
, foldN
, scanN
)
import Imp.Inference