about summary refs log tree commit diff
path: root/users/glittershark/xanthous/src/Xanthous/Prelude.hs
blob: b4f13332467eddb0d9f936b6789b0ef804da8e6f (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
37
38
39
40
41
42
43
44
45
--------------------------------------------------------------------------------
module Xanthous.Prelude
  ( module ClassyPrelude
  , Type
  , Constraint
  , module GHC.TypeLits
  , module Control.Lens
  , module Data.Void
  , module Control.Comonad
  , module Data.Witherable

  , (&!)

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

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

infixl 1 &!
(&!) :: a -> (a -> b) -> b
(&!) = flip ($!)