{-# LANGUAGE DataKinds #-} {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE NoNamedWildCards #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} ----------------------------------------------------------------------------- -- | -- Module : Control.Monad.Singletons.Internal -- Copyright : (C) 2018 Ryan Scott -- License : BSD-style (see LICENSE) -- Maintainer : Ryan Scott -- Stability : experimental -- Portability : non-portable -- -- Defines the promoted and singled versions of: -- -- * 'Functor' -- * 'Applicative' -- * 'Alternative' -- * 'Monad' -- * 'MonadPlus' -- -- As well as auxiliary definitions. -- -- This module exists to break up import cycles. -- ---------------------------------------------------------------------------- module Control.Monad.Singletons.Internal where import Control.Applicative import Control.Monad import Data.List.NonEmpty (NonEmpty(..)) import Data.Singletons.Base.Instances import Data.Singletons.TH import GHC.Base.Singletons $