Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {-# Language RankNTypes, MultiParamTypeClasses #-}
- module Data.Nonempty where
- import Data.Functor.Identity
- import Control.FIFO.FIFO_r
- import Control.FIFO.FIFO
- import Control.Unfoldable.Unfoldable_r
- import Control.Unfoldable.Unfoldable
- import Control.Traversable.Traversable_r
- import Control.Traversable.Traversable
- infixr 5 :|
- data Nonempty a = a :| Nonempty a | End a deriving (Eq, Ord)
- instance Foldable0_r Identity Nonempty where
- foldMap0_r = foldMap0_rDefault
- --instance for (Linear_r Identity Nonempty)
- instance Get0_r Identity Nonempty where
- get0_r = get0_rDefault
- instance Unfoldable0_r Identity Nonempty
- instance Set0_r Identity Nonempty where
- set0_r = set0_rDefault
- instance Stream_r Identity Nonempty
- instance Foldable1_r Identity Nonempty where
- foldMap1_r = foldMap1_rDefault
- instance Get1_r Identity Nonempty where
- get1_r (x :| xs) = (Identity x,Just xs)
- get1_r (End x) = (Identity x,Nothing)
- instance Unfoldable1_r Identity Nonempty where
- unfoldr1_r = unfoldr1_rDefault
- instance Set1_r Identity Nonempty where
- set1_r (Identity x,Just xs) = (x :| xs)
- set1_r (Identity x,Nothing) = (End x)
- instance Traversable1_r Identity Nonempty where
- traverse1_r = convert1_r
- instance Linear_r Identity Nonempty
- instance Functor_r Identity Nonempty where
- fmap_r = fmap_rDefault
- instance Foldable_r Identity Nonempty where
- foldMap_r = foldMap_rDefault
- instance Traversable_r Identity Nonempty where
- traverse_r = traverse_rDefault'
- --
- instance Foldable0' Nonempty where
- foldMap0' = foldMap0'Default
- instance Get0 Nonempty where
- instance Unfoldable0 Nonempty
- instance Set0 Nonempty where
- instance Stream Nonempty
- instance Foldable1' Nonempty where
- foldMap1' = foldMap1'Default
- instance Get1 Nonempty where
- instance Unfoldable1 Nonempty where
- unfoldr1 = unfoldr1Default
- instance Set1 Nonempty where
- instance Traversable1' Nonempty where
- traverse1' = convert1
- instance Linear Nonempty
- instance Functor' Nonempty where
- fmap' = fmap'Default
- instance Foldable' Nonempty where
- foldMap' = foldMap'Default
- instance Traversable' Nonempty where
- traverse' = traverse'Default'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement