    {-# LANGUAGE TypeFamilies, TypeSynonymInstances #-}

    {- |

      By convention, every provider of the "Data.Concurrent.Deque.Class"
      interface optionally provides a module that provides the relevant
      instances of the 'Deque' type class, covering the [maximum] portion
      of the configuration space that the implementation is able to
      handle.

      This is kept in a separate package because importing instances is
      unconditional and the user may well want to assemble their own
      combination of 'Deque' instances to cover the configuration
      space.
     -}

    module Data.Concurrent.Deque.Reference.DequeInstance () where

    import Data.Concurrent.Deque.Class
    import qualified Data.Concurrent.Deque.Reference as R

    -- | The reference implementation is a fully general Deque.  It can
    --   thus cover the full configuration space.
    type instance Deque lt rt l r bnd safe elt = R.SimpleDeque elt