about summary refs log tree commit diff
path: root/src/Xanthous/Prelude.hs
blob: 2f50635e783d53f1ae7e21d6e5d0ab67149fb581 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
--------------------------------------------------------------------------------
module Xanthous.Prelude
  ( module ClassyPrelude
  , Type
  , Constraint
  , module GHC.TypeLits
  , module Control.Lens
  , module Data.Void
  , module Control.Comonad


    -- * Classy-Prelude addons
  , ninsertSet
  , ndeleteSet
  , toVector
  ) where
--------------------------------------------------------------------------------
import ClassyPrelude hiding
  (return, (<|), unsnoc, uncons, cons, snoc, index, (<.>), Index, say)
import Data.Kind
import GHC.TypeLits hiding (Text)
import Control.Lens
import Data.Void
import Control.Comonad
--------------------------------------------------------------------------------

ninsertSet
  :: (IsSet set, MonoPointed set)
  => Element set -> NonNull set -> NonNull set
ninsertSet x xs = impureNonNull $ opoint x `union` toNullable xs

ndeleteSet :: IsSet b => Element b -> NonNull b -> b
ndeleteSet x = deleteSet x . toNullable

toVector :: (MonoFoldable (f a), Element (f a) ~ a) => f a -> Vector a
toVector = fromList . toList