Fin 0.2.6.1 → 0.2.7.0
raw patch · 3 files changed
+10/−2 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Data.Fin: proj₁ :: Natural n => Fin (Succ n) -> Maybe (Fin n)
Files
- Data/Fin.hs +1/−1
- Data/Fin/Private.hs +8/−0
- Fin.cabal +1/−1
Data/Fin.hs view
@@ -1,3 +1,3 @@-module Data.Fin (Fin (..), enum, inj₁, lift₁, fromFin, toFin, toFinMay) where+module Data.Fin (Fin (..), enum, inj₁, proj₁, lift₁, fromFin, toFin, toFinMay) where import Data.Fin.Private
Data/Fin/Private.hs view
@@ -84,6 +84,14 @@ inj₁ Zero = Zero inj₁ (Succ n) = Succ (inj₁ n) +proj₁ :: Natural n => Fin (P.Succ n) -> Maybe (Fin n)+proj₁ = unProj₁ $ natural (Proj₁ $ \ case Zero -> Nothing+ Succ n -> case n of)+ (Proj₁ $ \ case Zero -> Just Zero+ Succ n -> Succ <$> proj₁ n)++newtype Proj₁ n = Proj₁ { unProj₁ :: Fin (P.Succ n) -> Maybe (Fin n) }+ lift₁ :: (Fin m -> Fin n) -> Fin (P.Succ m) -> Fin (P.Succ n) lift₁ _ Zero = Zero lift₁ f (Succ n) = Succ (f n)
Fin.cabal view
@@ -1,5 +1,5 @@ name: Fin-version: 0.2.6.1+version: 0.2.7.0 synopsis: Finite totally-ordered sets -- description: license: BSD3