fixed-length 0.1 → 0.1.0.1
raw patch · 2 files changed
+15/−28 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Data.FixedLength: instance C T
- Data.FixedLength: instance C list => Applicative (Wrap list)
- Data.FixedLength: instance C list => C (T list)
- Data.FixedLength: instance C list => Eq (WrapPos list)
- Data.FixedLength: instance C list => Foldable (Wrap list)
- Data.FixedLength: instance C list => Functor (Wrap list)
- Data.FixedLength: instance C list => Ord (WrapPos list)
- Data.FixedLength: instance C list => Traversable (Wrap list)
- Data.FixedLength: instance Eq Zero
- Data.FixedLength: instance Eq pos => Eq (Succ pos)
- Data.FixedLength: instance Ord Zero
- Data.FixedLength: instance Ord pos => Ord (Succ pos)
- Data.FixedLength: instance Show pos => Show (Succ pos)
- Data.FixedLength: unwrap :: Wrap list a -> list a
- Data.FixedLength: unwrapPos :: WrapPos list -> Position list
+ Data.FixedLength: [unwrapPos] :: WrapPos list -> Position list
+ Data.FixedLength: [unwrap] :: Wrap list a -> list a
+ Data.FixedLength: instance Data.FixedLength.C Data.Empty.T
+ Data.FixedLength: instance Data.FixedLength.C list => Data.FixedLength.C (Data.NonEmptyPrivate.T list)
+ Data.FixedLength: instance Data.FixedLength.C list => Data.Foldable.Foldable (Data.FixedLength.Wrap list)
+ Data.FixedLength: instance Data.FixedLength.C list => Data.Traversable.Traversable (Data.FixedLength.Wrap list)
+ Data.FixedLength: instance Data.FixedLength.C list => GHC.Base.Applicative (Data.FixedLength.Wrap list)
+ Data.FixedLength: instance Data.FixedLength.C list => GHC.Base.Functor (Data.FixedLength.Wrap list)
+ Data.FixedLength: instance Data.FixedLength.C list => GHC.Classes.Eq (Data.FixedLength.WrapPos list)
+ Data.FixedLength: instance Data.FixedLength.C list => GHC.Classes.Ord (Data.FixedLength.WrapPos list)
+ Data.FixedLength: instance GHC.Classes.Eq Data.FixedLength.Zero
+ Data.FixedLength: instance GHC.Classes.Eq pos => GHC.Classes.Eq (Data.FixedLength.Succ pos)
+ Data.FixedLength: instance GHC.Classes.Ord Data.FixedLength.Zero
+ Data.FixedLength: instance GHC.Classes.Ord pos => GHC.Classes.Ord (Data.FixedLength.Succ pos)
+ Data.FixedLength: instance GHC.Show.Show pos => GHC.Show.Show (Data.FixedLength.Succ pos)
- Data.FixedLength: class list ~ List (Position list) => C list where type family Position list :: *
+ Data.FixedLength: class (list ~ List (Position list)) => C list where type family Position list :: *
Files
- fixed-length.cabal +5/−5
- src/Data/FixedLength.hs +10/−23
fixed-length.cabal view
@@ -1,10 +1,10 @@ Name: fixed-length-Version: 0.1+Version: 0.1.0.1 License: BSD3 License-File: LICENSE Author: Henning Thielemann <haskell@henning-thielemann.de> Maintainer: Henning Thielemann <haskell@henning-thielemann.de>-Homepage: http://code.haskell.org/~thielema/fixed-length/+Homepage: http://hub.darcs.net/thielema/fixed-length/ Category: Data Synopsis: Lists with statically known length based on non-empty package. Description:@@ -25,13 +25,13 @@ Build-Type: Simple Source-Repository this- Tag: 0.1+ Tag: 0.1.0.1 Type: darcs- Location: http://code.haskell.org/~thielema/fixed-length/+ Location: http://hub.darcs.net/thielema/fixed-length/ Source-Repository head Type: darcs- Location: http://code.haskell.org/~thielema/fixed-length/+ Location: http://hub.darcs.net/thielema/fixed-length/ Library Build-Depends:
src/Data/FixedLength.hs view
@@ -1,7 +1,6 @@ {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE Rank2Types #-} {-# LANGUAGE EmptyDataDecls #-}-{-# LANGUAGE FlexibleContexts #-} module Data.FixedLength ( C, Position, List, switch, Wrap(Wrap, unwrap),@@ -242,26 +241,14 @@ type N7 = GE7 Empty.T; type GE7 list = NonEmpty.T (GE6 list) type N8 = GE8 Empty.T; type GE8 list = NonEmpty.T (GE7 list) -i0 :: WrapPos (GE1 list)-i0 = WrapPos Stop--i1 :: WrapPos (GE2 list)-i1 = WrapPos $ Succ Stop--i2 :: WrapPos (GE3 list)-i2 = WrapPos $ Succ $ Succ Stop--i3 :: WrapPos (GE4 list)-i3 = WrapPos $ Succ $ Succ $ Succ Stop--i4 :: WrapPos (GE5 list)-i4 = WrapPos $ Succ $ Succ $ Succ $ Succ Stop--i5 :: WrapPos (GE6 list)-i5 = WrapPos $ Succ $ Succ $ Succ $ Succ $ Succ Stop--i6 :: WrapPos (GE7 list)-i6 = WrapPos $ Succ $ Succ $ Succ $ Succ $ Succ $ Succ Stop+succ :: WrapPos list -> WrapPos (NonEmpty.T list)+succ (WrapPos n) = WrapPos (Succ n) -i7 :: WrapPos (GE8 list)-i7 = WrapPos $ Succ $ Succ $ Succ $ Succ $ Succ $ Succ $ Succ Stop+i0 :: WrapPos (GE1 list); i0 = WrapPos Stop+i1 :: WrapPos (GE2 list); i1 = succ i0+i2 :: WrapPos (GE3 list); i2 = succ i1+i3 :: WrapPos (GE4 list); i3 = succ i2+i4 :: WrapPos (GE5 list); i4 = succ i3+i5 :: WrapPos (GE6 list); i5 = succ i4+i6 :: WrapPos (GE7 list); i6 = succ i5+i7 :: WrapPos (GE8 list); i7 = succ i6