open-union 0.1.0.0 → 0.1.0.1
raw patch · 3 files changed
+2/−25 lines, 3 files
Files
- Data/OpenUnion.hs +0/−4
- Data/OpenUnion/Internal.hs +0/−19
- open-union.cabal +2/−2
Data/OpenUnion.hs view
@@ -2,10 +2,6 @@ module Data.OpenUnion ( Union , (:<)-<<<<<<< Updated upstream-=======- , liftUnion->>>>>>> Stashed changes , (:\) , (@>) , liftUnion
Data/OpenUnion/Internal.hs view
@@ -31,18 +31,6 @@ -- general note: try to keep from re-constructing Unions if an existing one -- can just be type-coerced. -<<<<<<< Updated upstream-=======--- | Typeclass for lifting values to @Union@s.-class Typeable a => LiftToUnion (s :: [*]) a where- liftUnion :: a -> Union s- liftUnion = Union . toDyn- {-# INLINE liftUnion #-}--instance Typeable a => LiftToUnion (a ': s) a-instance LiftToUnion s a => LiftToUnion (a' ': s) a-->>>>>>> Stashed changes -- | Remove a type from anywhere in the list. type family s :\ a where '[] :\ a = '[]@@ -50,18 +38,11 @@ (a' ': s) :\ a = a' ': (s :\ a) -- | There exists a @s :< s'@ instance if every type in the list @s@-<<<<<<< Updated upstream -- can be lifted to @s'@. class (:<) (s :: [*]) (s' :: [*]) instance '[] :< s instance (s :< s', Typeable a) => (a ': s) :< (a ': s') instance (s :< s', '[a] :< s', Typeable a) => (a ': s) :< s'-=======--- has a @`LiftToUnion` s'@ instance.-class (:<) (s :: [*]) (s' :: [*])-instance '[] :< s-instance (s :< s', LiftToUnion s' a) => (a ': s) :< s'->>>>>>> Stashed changes -- | `restrict` in right-fixable style. (@>) :: Typeable a => (a -> b) -> (Union (s :\ a) -> b) -> Union s -> b
open-union.cabal view
@@ -1,5 +1,5 @@ name: open-union-version: 0.1.0.0+version: 0.1.0.1 synopsis: Extensible, type-safe unions. category: Data license: MIT@@ -74,7 +74,7 @@ > :: Union (TrackStates :\ Recording) > -> ([Note], Union '[Recording]) .- The `(:\)` type-level operator is for removal from a set, i.e.+ The `(:\\)` type-level operator is for removal from a set, i.e. `startRecording` can be applied to a track in any state except the `Recording` state.