about summary refs log blame commit diff
path: root/users/grfn/xanthous/src/Xanthous/Prelude.hs
blob: 4d79b026f14ab0d6dede6412ce24f32bf436e49d (plain) (tree)
1
2
3
4
5
6
7
8
9
                                                                                




                        
                       
                    
                          
                     
        
 
        




                              
         
                                                                                
                           


                                                                      

                                 
                                          
                
                      
                 
                                
                                                                                










                                                                      



                          
--------------------------------------------------------------------------------
module Xanthous.Prelude
  ( module ClassyPrelude
  , Type
  , Constraint
  , module GHC.TypeLits
  , module Control.Lens
  , module Data.Void
  , module Control.Comonad
  , module Witherable
  , fail

  , (&!)

    -- * 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 Witherable
import Control.Monad.Fail (fail)
--------------------------------------------------------------------------------

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 ($!)