{-# LANGUAGE DataKinds #-} {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} ----------------------------------------------------------------------------- -- | -- Module : Data.Semigroup.Singletons.Internal.Classes -- Copyright : (C) 2018 Ryan Scott -- License : BSD-style (see LICENSE) -- Maintainer : Ryan Scott -- Stability : experimental -- Portability : non-portable -- -- Defines the promoted version of 'Semigroup', 'PSemigroup'; the -- singleton version, 'SSemigroup'; and instances thereof for various data -- types in @base@. These are reexported from the "Data.Semigroup" module or -- imported directly by some other modules. -- -- This module exists to avoid import cycles with -- "Data.Ord.Singletons". -- ---------------------------------------------------------------------------- module Data.Semigroup.Singletons.Internal.Classes where import Data.List.NonEmpty (NonEmpty(..)) import Data.Singletons.Base.Instances import Data.Singletons.TH import GHC.Base.Singletons $