packages feed

tensort-1.0.1.3: src/Data/Tensort/Utils/WrapSortAlg.hs

-- | This module provides convenience functions to wrap sorting algorithms
--   that use the Sortable type so they can be used without worrying about
--   type conversion.
module Data.Tensort.Utils.WrapSortAlg
  ( wrapSortAlg,
  )
where

import Data.Tensort.Utils.Types (Bit, SortAlg, Sortable (SortBit), fromSortBit)

-- | Wraps a sorting algorithm that uses the Sortable type so it can be used
--   to sort Bits without worrying about type conversion.

-- | ==== __Examples__
--  >>> import Data.Tensort.Robustsort (robustsortM)
--  >>> (wrapSortAlg robustsortM) [16, 23, 4, 8, 15, 42]
--  [4,8,15,16,23,42]
wrapSortAlg :: SortAlg -> ([Bit] -> [Bit])
wrapSortAlg sortAlg xs = fromSortBit (sortAlg (SortBit xs))