dino-0.1: src/Dino/Prelude.hs
-- | Prelude for Dino expressions
--
-- This module mostly re-exports the standard "Prelude", but hides identifiers
-- that are overridden by Dino definitions.
module Dino.Prelude
( module Prelude
, HasField
, Hashable
, IsLabel
, KnownSymbol
, Symbol
, Text
, Typeable
-- Needed when `RebindableSyntax` is enabled:
, fromLabel
, fromString
, join
) where
-- Regarding the exports:
--
-- * Dino code and ordinary application code normally live in separate
-- modules. Dino code normally doesn't need to use IO, except maybe for
-- calling a back end and printing results. Hence it only needs a simple
-- prelude.
--
-- * Dino is supposed to be used by non-developers who are maybe Haskell
-- beginners. The standard Prelude seems suitable for them.
--
-- * Prelude deficiencies such as `String` and partial functions are no
-- problem for Dino code, since Haskell's run time is Dino's compile time.
import Prelude hiding
( RealFrac(..)
, (&&)
, (||)
, (==)
, (/=)
, (<)
, (>)
, (<=)
, (>=)
, all
, and
, any
, fromIntegral
, max
, maybe
, min
, not
, or
)
import Prelude (RealFrac)
import Control.Monad (join)
import Data.Hashable (Hashable)
import Data.String (fromString)
import Data.Text (Text)
import Data.Typeable (Typeable)
import GHC.OverloadedLabels (IsLabel (..))
import GHC.TypeLits (KnownSymbol, Symbol)
import GHC.Records (HasField)