-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | This package is a compatibility package for a singleton data type
--   
--   <pre>
--   data Solo a = MkSolo a
--   </pre>
--   
--   Note: it's not a <tt>newtype</tt>
--   
--   <tt>Solo</tt> is available in <tt>base-4.16</tt> (GHC-9.2).
@package OneTuple
@version 0.4.2


-- | <a>Solo</a> fills the <i>tuple gap</i> with a singleton tuple.
--   
--   <a>Solo</a> <i>does not support</i> the usual parenthesized tuple
--   syntax.
--   
--   <a>Solo</a>
--   
--   <ul>
--   <li>has the expected laziness properties</li>
--   <li>can be pattern-matched</li>
--   <li>ships with instances for several standard type classes, including
--   all those supported by H98-standard tuples</li>
--   <li>requires no language extensions, except for hierarchical
--   modules</li>
--   </ul>
--   
--   Note: on GHC-9.0 <a>getSolo</a> is not a record selector.
module Data.Tuple.Solo
data Solo a
MkSolo :: a -> Solo a
pattern Solo :: a -> Solo a
getSolo :: Solo a -> a


-- | This is a module to help migration from <tt>OneTuple</tt> to
--   <tt>Solo</tt>. Migrate to use <a>Data.Tuple</a> from
--   <tt>base-4.16</tt> or <a>Data.Tuple.Solo</a> with all GHCs.
--   
--   The pattern synonym is provided for GHCs supporting pattern synonyms
--   (7.8+)

-- | <i>Deprecated: Use Data.Tuple.Solo</i>
module Data.Tuple.OneTuple
type OneTuple = Solo
pattern OneTuple :: a -> Solo a
only :: OneTuple a -> a


-- | This module provides TH helpers, which use <tt>Solo</tt> from this
--   package, for 1-tuples.
module Data.Tuple.Solo.TH
tupE :: Quote m => [m Exp] -> m Exp
