prologue 3.2.0 → 3.2.1
raw patch · 4 files changed
+23/−10 lines, 4 files
Files
- prologue.cabal +3/−2
- src/Prologue.hs +4/−0
- src/Prologue/OrphanInstances.hs +10/−0
- src/Prologue/Type/Reflection.hs +6/−8
prologue.cabal view
@@ -2,10 +2,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: d1ea16d1ed3a0340ac20cadbb8452762d4d25ee6f46d882b5ac3404607590279+-- hash: 632dbbfd5f8347d3d80a8663f104b361a450243c2a693d7884c1e3dd1f0a8b5c name: prologue-version: 3.2.0+version: 3.2.1 synopsis: Better, more general Prelude exporting common utilities. description: Replacement for the Haskell's Prelude, exposing more commonly used functions and patching old GHC ones to behave in the newest GHC's way. category: control@@ -94,6 +94,7 @@ Prologue.Data.Traversable Prologue.Data.Tuple Prologue.Debug.Placeholders+ Prologue.OrphanInstances Prologue.Placeholders_old Prologue.Prim Prologue.Text.Show
src/Prologue.hs view
@@ -1,6 +1,10 @@ module Prologue (module Prologue, module X) where +-- === Orphans === --++import Prologue.OrphanInstances()+ -- === Basic === --
+ src/Prologue/OrphanInstances.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS_GHC -Wno-orphans #-}++module Prologue.OrphanInstances where++import Data.Default+import Control.Monad.Identity+++instance Default a => Default (Identity a) where+ def = Identity def ; {-# INLINE def #-}
src/Prologue/Type/Reflection.hs view
@@ -26,15 +26,13 @@ typeOfProxy :: forall proxy a. Typeable a => proxy a -> TypeRep a typeOfProxy _ = typeRep @a ; {-# INLINE typeOfProxy #-} --- x :: SomeTypeRep--- x = someTypeRep @Maybe--- type family Typeables ls :: Constraint where--- Typeables '[] = ()--- Typeables (l ': ls) = (Typeable l, Typeables2 ls)+type family Typeables ls :: Constraint where+ Typeables '[] = ()+ Typeables (l ': ls) = (Typeable l, Typeables ls) -class Typeables (ls :: [*]) where someTypeReps :: [SomeTypeRep]-instance (Typeable l, Typeables ls) => Typeables (l ': ls) where+class TypeableMany (ls :: [*]) where someTypeReps :: [SomeTypeRep]+instance (Typeable l, TypeableMany ls) => TypeableMany (l ': ls) where someTypeReps = someTypeRep @l : someTypeReps @ls ; {-# INLINE someTypeReps #-}-instance Typeables '[] where+instance TypeableMany '[] where someTypeReps = [] ; {-# INLINE someTypeReps #-}