singletons-default 0.1.0.3 → 0.1.0.4
raw patch · 2 files changed
+16/−6 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Data.Default.Singletons: [Def] :: SingDef def => Opt (def :: k)
+ Data.Default.Singletons: [Def] :: forall {k} def. SingDef def => Opt (def :: k)
- Data.Default.Singletons: [Some] :: Demote k -> Opt (def :: k)
+ Data.Default.Singletons: [Some] :: forall {k} def. Demote k -> Opt (def :: k)
- Data.Default.Singletons: definite :: forall k def. Opt (def :: k) -> Demote k
+ Data.Default.Singletons: definite :: forall {k} def. Opt (def :: k) -> Demote k
- Data.Default.Singletons: optionally :: SingDef def => Maybe (Demote k) -> Opt (def :: k)
+ Data.Default.Singletons: optionally :: forall {k} def. SingDef def => Maybe (Demote k) -> Opt (def :: k)
- Data.Default.Singletons: perhaps :: Alternative m => Opt (def :: k) -> m (Demote k)
+ Data.Default.Singletons: perhaps :: forall {k} def m. Alternative m => Opt (def :: k) -> m (Demote k)
Files
singletons-default.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: singletons-default-version: 0.1.0.3+version: 0.1.0.4 synopsis: An optional type with type level default description: dependently typed optional values with default category: Data
src/Data/Default/Singletons.hs view
@@ -160,8 +160,8 @@ -} data Opt (def :: k) where- Def :: SingDef def => Opt (def :: k)- Some :: Demote k -> Opt (def :: k)+ Def :: forall {k} def. SingDef def => Opt (def :: k)+ Some :: forall {k} def. Demote k -> Opt (def :: k) {- | Constraint required to `demote` @@def@. -} type SingDef (def :: k) = (SingI def, SingKind k)@@ -219,8 +219,16 @@ Constructs an `Opt` from a `Maybe`. `Nothing` maps to `Def`, and `Just` maps to `Some`.++>>> definite (optionally @'[ '[1,2],'[3]] Nothing)+[[1,2],[3]]+>>> definite (optionally @"foo" (Just "bar"))+"bar" -}-optionally :: SingDef def => Maybe (Demote k) -> Opt (def :: k)+optionally+ :: forall {k} def. SingDef def+ => Maybe (Demote k)+ -> Opt (def :: k) optionally = maybe Def Some {- |@@ -228,7 +236,7 @@ `Def` maps to `demote` @@def@, and `Some` maps to its argument. -}-definite :: forall k def. Opt (def :: k) -> Demote k+definite :: forall {k} def. Opt (def :: k) -> Demote k definite = \case Def -> demote @def Some a -> a@@ -239,7 +247,9 @@ and `Some` maps to `pure`, inverting `optionally`. -}-perhaps :: Alternative m => Opt (def :: k) -> m (Demote k)+perhaps+ :: forall {k} def m. Alternative m+ => Opt (def :: k) -> m (Demote k) perhaps = \case Def -> empty Some a -> pure a