{-# LANGUAGE TemplateHaskell, TypeOperators, DataKinds, PolyKinds, ScopedTypeVariables, TypeFamilies, GADTs, UndecidableInstances, BangPatterns, TypeApplications #-} ----------------------------------------------------------------------------- -- | -- Module : Data.Singletons.Prelude.Base -- Copyright : (C) 2014 Jan Stolarek -- License : BSD-style (see LICENSE) -- Maintainer : Jan Stolarek (jan.stolarek@p.lodz.pl) -- Stability : experimental -- Portability : non-portable -- -- Implements singletonized versions of functions from @GHC.Base@ module. -- -- Because many of these definitions are produced by Template Haskell, -- it is not possible to create proper Haddock documentation. Please look -- up the corresponding operation in @Data.Tuple@. Also, please excuse -- the apparent repeated variable names. This is due to an interaction -- between Template Haskell and Haddock. -- ---------------------------------------------------------------------------- module Data.Singletons.Prelude.Base ( -- * Basic functions Foldr, sFoldr, Map, sMap, type (++), (%++), Otherwise, sOtherwise, Id, sId, Const, sConst, type (.), (%.), type ($), type ($!), (%$), (%$!), Until, sUntil, Flip, sFlip, AsTypeOf, sAsTypeOf, Seq, sSeq, -- * Defunctionalization symbols FoldrSym0, FoldrSym1, FoldrSym2, FoldrSym3, MapSym0, MapSym1, MapSym2, type (++@#@$), type (++@#@$$), type (++@#@$$$), OtherwiseSym0, IdSym0, IdSym1, ConstSym0, ConstSym1, ConstSym2, type (.@#@$), type (.@#@$$), type (.@#@$$$), type (.@#@$$$$), type ($@#@$), type ($@#@$$), type ($@#@$$$), type ($!@#@$), type ($!@#@$$), type ($!@#@$$$), UntilSym0, UntilSym1, UntilSym2, UntilSym3, FlipSym0, FlipSym1, FlipSym2, FlipSym3, AsTypeOfSym0, AsTypeOfSym1, AsTypeOfSym2, SeqSym0, SeqSym1, SeqSym2 ) where import Data.Singletons.Prelude.Instances import Data.Singletons.Single import Data.Singletons.Prelude.Bool -- Promoted and singletonized versions of "otherwise" are imported and -- re-exported from Data.Singletons.Prelude.Bool. This is done to avoid cyclic -- module dependencies. $(