packages feed

witness 0.3 → 0.3.0.1

raw patch · 3 files changed

+13/−13 lines, 3 filesdep ~basedep ~categoriesdep ~constraintsPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base, categories, constraints, transformers

API changes (from Hackage documentation)

- Data.Witness.Any: instance TestEquality w => Eq (AnyWitness w)
- Data.Witness.List: instance (Is w a, Is (ListType w) lt) => Is (ListType w) (a, lt)
- Data.Witness.List: instance (TestEquality w1, TestEquality w2) => TestEquality (EitherWitness w1 w2)
- Data.Witness.List: instance Eq1 w => Eq (ListType w a)
- Data.Witness.List: instance Eq1 w => Eq1 (ListType w)
- Data.Witness.List: instance Representative w => Is (ListType w) ()
- Data.Witness.List: instance Representative w => Representative (ListType w)
- Data.Witness.List: instance Tensor (->)
- Data.Witness.List: instance Tensor cc => Tensor (Dual cc)
- Data.Witness.List: instance TestEquality w => TestEquality (ListType w)
- Data.Witness.List: listAddItem :: AddItemList w a l -> a -> l -> lr
- Data.Witness.List: listAddItemWitness :: AddItemList w a l -> ListType w lr
- Data.Witness.List: listAppend :: AppendList w la lb -> la -> lb -> lr
- Data.Witness.List: listAppendWitness :: AppendList w la lb -> ListType w lr
- Data.Witness.List: listFromPartition :: PartitionList wit1 wit2 l -> l1 -> l2 -> l
- Data.Witness.List: listInsert :: RemoveFromList w a l -> a -> lr -> l
- Data.Witness.List: listInsertMany :: RemoveManyFromList wit lx l -> lx -> lr -> l
- Data.Witness.List: listMapW :: MapList cc w2 l -> cc l lr
- Data.Witness.List: listMapWitness :: MapList cc w2 l -> ListType w2 lr
- Data.Witness.List: listMerge :: MergeList w la lb -> (forall t. w t -> t -> t -> t) -> la -> lb -> lr
- Data.Witness.List: listMergeItem :: MergeItemList w a l -> (Maybe a -> a) -> l -> lr
- Data.Witness.List: listMergeItemWitness :: MergeItemList w a l -> ListType w lr
- Data.Witness.List: listMergeWitness :: MergeList w la lb -> ListType w lr
- Data.Witness.List: listPartitionWitness1 :: PartitionList wit1 wit2 l -> ListType wit1 l1
- Data.Witness.List: listPartitionWitness2 :: PartitionList wit1 wit2 l -> ListType wit2 l2
- Data.Witness.List: listRemove :: RemoveFromList w a l -> l -> lr
- Data.Witness.List: listRemoveMany :: RemoveManyFromList wit lx l -> l -> lr
- Data.Witness.List: listRemoveManyWitness :: RemoveManyFromList wit lx l -> ListType wit lr
- Data.Witness.List: listRemoveWitness :: RemoveFromList w a l -> ListType w lr
- Data.Witness.List: listSplit :: AppendList w la lb -> lr -> (la, lb)
- Data.Witness.List: listSplitItem :: AddItemList w a l -> lr -> (a, l)
- Data.Witness.List: listToPartition1 :: PartitionList wit1 wit2 l -> l -> l1
- Data.Witness.List: listToPartition2 :: PartitionList wit1 wit2 l -> l -> l2
- Data.Witness.List: listUnmerge :: MergeList w la lb -> lr -> (la, lb)
- Data.Witness.List: listUnmergeItem :: MergeItemList w a l -> lr -> (a, l)
- Data.Witness.ListElement: instance HasListElement 'Zero (a, r)
- Data.Witness.ListElement: instance HasListElement n r => HasListElement ('Succ n) (a, r)
- Data.Witness.Nat: instance Eq1 Nat
- Data.Witness.Nat: instance Is Nat 'Zero
- Data.Witness.Nat: instance Is Nat n => Is Nat ('Succ n)
- Data.Witness.Nat: instance Representative Nat
- Data.Witness.Nat: instance TestEquality Nat
- Data.Witness.Representative: instance Eq1 Proxy
- Data.Witness.Representative: instance Is Proxy a
- Data.Witness.Representative: instance Representative Proxy
+ Data.Witness.Any: instance forall (k :: BOX) (w :: k -> *). Data.Type.Equality.TestEquality w => GHC.Classes.Eq (Data.Witness.Any.AnyWitness w)
+ Data.Witness.List: [listAddItemWitness] :: AddItemList w a l -> ListType w lr
+ Data.Witness.List: [listAddItem] :: AddItemList w a l -> a -> l -> lr
+ Data.Witness.List: [listAppendWitness] :: AppendList w la lb -> ListType w lr
+ Data.Witness.List: [listAppend] :: AppendList w la lb -> la -> lb -> lr
+ Data.Witness.List: [listFromPartition] :: PartitionList wit1 wit2 l -> l1 -> l2 -> l
+ Data.Witness.List: [listInsertMany] :: RemoveManyFromList wit lx l -> lx -> lr -> l
+ Data.Witness.List: [listInsert] :: RemoveFromList w a l -> a -> lr -> l
+ Data.Witness.List: [listMapW] :: MapList cc w2 l -> cc l lr
+ Data.Witness.List: [listMapWitness] :: MapList cc w2 l -> ListType w2 lr
+ Data.Witness.List: [listMergeItemWitness] :: MergeItemList w a l -> ListType w lr
+ Data.Witness.List: [listMergeItem] :: MergeItemList w a l -> (Maybe a -> a) -> l -> lr
+ Data.Witness.List: [listMergeWitness] :: MergeList w la lb -> ListType w lr
+ Data.Witness.List: [listMerge] :: MergeList w la lb -> (forall t. w t -> t -> t -> t) -> la -> lb -> lr
+ Data.Witness.List: [listPartitionWitness1] :: PartitionList wit1 wit2 l -> ListType wit1 l1
+ Data.Witness.List: [listPartitionWitness2] :: PartitionList wit1 wit2 l -> ListType wit2 l2
+ Data.Witness.List: [listRemoveManyWitness] :: RemoveManyFromList wit lx l -> ListType wit lr
+ Data.Witness.List: [listRemoveMany] :: RemoveManyFromList wit lx l -> l -> lr
+ Data.Witness.List: [listRemoveWitness] :: RemoveFromList w a l -> ListType w lr
+ Data.Witness.List: [listRemove] :: RemoveFromList w a l -> l -> lr
+ Data.Witness.List: [listSplitItem] :: AddItemList w a l -> lr -> (a, l)
+ Data.Witness.List: [listSplit] :: AppendList w la lb -> lr -> (la, lb)
+ Data.Witness.List: [listToPartition1] :: PartitionList wit1 wit2 l -> l -> l1
+ Data.Witness.List: [listToPartition2] :: PartitionList wit1 wit2 l -> l -> l2
+ Data.Witness.List: [listUnmergeItem] :: MergeItemList w a l -> lr -> (a, l)
+ Data.Witness.List: [listUnmerge] :: MergeList w la lb -> lr -> (la, lb)
+ Data.Witness.List: instance (Data.Witness.Representative.Is w a, Data.Witness.Representative.Is (Data.Witness.List.ListType w) lt) => Data.Witness.Representative.Is (Data.Witness.List.ListType w) (a, lt)
+ Data.Witness.List: instance Data.Type.Equality.TestEquality w => Data.Type.Equality.TestEquality (Data.Witness.List.ListType w)
+ Data.Witness.List: instance Data.Witness.List.Tensor (->)
+ Data.Witness.List: instance Data.Witness.List.Tensor cc => Data.Witness.List.Tensor (Control.Category.Dual.Dual cc)
+ Data.Witness.List: instance Data.Witness.Representative.Eq1 w => Data.Witness.Representative.Eq1 (Data.Witness.List.ListType w)
+ Data.Witness.List: instance Data.Witness.Representative.Eq1 w => GHC.Classes.Eq (Data.Witness.List.ListType w a)
+ Data.Witness.List: instance Data.Witness.Representative.Representative w => Data.Witness.Representative.Is (Data.Witness.List.ListType w) ()
+ Data.Witness.List: instance Data.Witness.Representative.Representative w => Data.Witness.Representative.Representative (Data.Witness.List.ListType w)
+ Data.Witness.List: instance forall (k :: BOX) (w1 :: k -> *) (w2 :: k -> *). (Data.Type.Equality.TestEquality w1, Data.Type.Equality.TestEquality w2) => Data.Type.Equality.TestEquality (Data.Witness.List.EitherWitness w1 w2)
+ Data.Witness.ListElement: instance Data.Witness.ListElement.HasListElement 'Data.Witness.Nat.Zero (a, r)
+ Data.Witness.ListElement: instance Data.Witness.ListElement.HasListElement n r => Data.Witness.ListElement.HasListElement ('Data.Witness.Nat.Succ n) (a, r)
+ Data.Witness.Nat: instance Data.Type.Equality.TestEquality Data.Witness.Nat.Nat
+ Data.Witness.Nat: instance Data.Witness.Representative.Eq1 Data.Witness.Nat.Nat
+ Data.Witness.Nat: instance Data.Witness.Representative.Is Data.Witness.Nat.Nat 'Data.Witness.Nat.Zero
+ Data.Witness.Nat: instance Data.Witness.Representative.Is Data.Witness.Nat.Nat n => Data.Witness.Representative.Is Data.Witness.Nat.Nat ('Data.Witness.Nat.Succ n)
+ Data.Witness.Nat: instance Data.Witness.Representative.Representative Data.Witness.Nat.Nat
+ Data.Witness.Representative: instance Data.Witness.Representative.Eq1 Data.Proxy.Proxy
+ Data.Witness.Representative: instance Data.Witness.Representative.Representative Data.Proxy.Proxy
+ Data.Witness.Representative: instance forall (k :: BOX) (a :: k). Data.Witness.Representative.Is Data.Proxy.Proxy a
- Data.Witness.Any: matchAny :: TestEquality w => w a -> Any w -> Maybe a
+ Data.Witness.Any: matchAny :: (TestEquality w) => w a -> Any w -> Maybe a
- Data.Witness.Any: matchAnyF :: TestEquality w => w a -> AnyF w f -> Maybe (f a)
+ Data.Witness.Any: matchAnyF :: (TestEquality w) => w a -> AnyF w f -> Maybe (f a)
- Data.Witness.Any: matchAnyWitness :: TestEquality w => w a -> AnyWitness w -> Bool
+ Data.Witness.Any: matchAnyWitness :: (TestEquality w) => w a -> AnyWitness w -> Bool
- Data.Witness.List: listSequence :: Applicative f => ListType f lt -> f lt
+ Data.Witness.List: listSequence :: (Applicative f) => ListType f lt -> f lt
- Data.Witness.List: mapList :: Tensor cc => MapWitness cc w1 w2 -> ListType w1 l -> MapList cc w2 l
+ Data.Witness.List: mapList :: (Tensor cc) => MapWitness cc w1 w2 -> ListType w1 l -> MapList cc w2 l
- Data.Witness.List: mergeList :: TestEquality w => ListType w la -> ListType w lb -> MergeList w la lb
+ Data.Witness.List: mergeList :: (TestEquality w) => ListType w la -> ListType w lb -> MergeList w la lb
- Data.Witness.List: mergeListItem :: TestEquality w => ListType w l -> w a -> MergeItemList w a l
+ Data.Witness.List: mergeListItem :: (TestEquality w) => ListType w l -> w a -> MergeItemList w a l
- Data.Witness.List: removeAllMatching :: TestEquality w => w a -> ListType w l -> RemoveFromList w a l
+ Data.Witness.List: removeAllMatching :: (TestEquality w) => w a -> ListType w l -> RemoveFromList w a l
- Data.Witness.List: removeAllMatchingMany :: TestEquality wit => ListType wit lx -> ListType wit l -> RemoveManyFromList wit lx l
+ Data.Witness.List: removeAllMatchingMany :: (TestEquality wit) => ListType wit lx -> ListType wit l -> RemoveManyFromList wit lx l
- Data.Witness.ListElement: modifyListElement :: HasListElement n t => Nat n -> (ListElement n t -> ListElement n t) -> t -> t
+ Data.Witness.ListElement: modifyListElement :: (HasListElement n t) => Nat n -> (ListElement n t -> ListElement n t) -> t -> t
- Data.Witness.Representative: getRepresentative :: Is rep a => a -> rep a
+ Data.Witness.Representative: getRepresentative :: (Is rep a) => a -> rep a
- Data.Witness.Representative: mkAny :: Is rep a => a -> Any rep
+ Data.Witness.Representative: mkAny :: (Is rep a) => a -> Any rep
- Data.Witness.Representative: mkAnyF :: Is rep a => f a -> AnyF rep f
+ Data.Witness.Representative: mkAnyF :: (Is rep a) => f a -> AnyF rep f
- Data.Witness.Representative: rerepresentative :: Is rep a => p a -> rep a
+ Data.Witness.Representative: rerepresentative :: (Is rep a) => p a -> rep a
- Data.Witness.Representative: withRepresentative :: Representative rep => (forall (a :: k). Is rep a => rep a -> r) -> (forall (b :: k). rep b -> r)
+ Data.Witness.Representative: withRepresentative :: (Representative rep) => (forall (a :: k). (Is rep a) => rep a -> r) -> (forall (b :: k). rep b -> r)
- Data.Witness.WitnessDict: witnessDictFromList :: TestEquality w => [Any w] -> WitnessDict w
+ Data.Witness.WitnessDict: witnessDictFromList :: (TestEquality w) => [Any w] -> WitnessDict w
- Data.Witness.WitnessDict: witnessDictLookup :: TestEquality w => w a -> WitnessDict w -> Maybe a
+ Data.Witness.WitnessDict: witnessDictLookup :: (TestEquality w) => w a -> WitnessDict w -> Maybe a
- Data.Witness.WitnessDict: witnessDictModify :: TestEquality w => w a -> (a -> a) -> WitnessDict w -> WitnessDict w
+ Data.Witness.WitnessDict: witnessDictModify :: (TestEquality w) => w a -> (a -> a) -> WitnessDict w -> WitnessDict w
- Data.Witness.WitnessDict: witnessDictRemove :: TestEquality w => w a -> WitnessDict w -> WitnessDict w
+ Data.Witness.WitnessDict: witnessDictRemove :: (TestEquality w) => w a -> WitnessDict w -> WitnessDict w
- Data.Witness.WitnessDict: witnessDictReplace :: TestEquality w => w a -> a -> WitnessDict w -> WitnessDict w
+ Data.Witness.WitnessDict: witnessDictReplace :: (TestEquality w) => w a -> a -> WitnessDict w -> WitnessDict w
- Data.Witness.WitnessFDict: witnessFDictFromList :: TestEquality w => [AnyF w f] -> WitnessFDict w f
+ Data.Witness.WitnessFDict: witnessFDictFromList :: (TestEquality w) => [AnyF w f] -> WitnessFDict w f
- Data.Witness.WitnessFDict: witnessFDictLookup :: TestEquality w => w a -> WitnessFDict w f -> Maybe (f a)
+ Data.Witness.WitnessFDict: witnessFDictLookup :: (TestEquality w) => w a -> WitnessFDict w f -> Maybe (f a)
- Data.Witness.WitnessFDict: witnessFDictModify :: TestEquality w => w a -> (f a -> f a) -> WitnessFDict w f -> WitnessFDict w f
+ Data.Witness.WitnessFDict: witnessFDictModify :: (TestEquality w) => w a -> (f a -> f a) -> WitnessFDict w f -> WitnessFDict w f
- Data.Witness.WitnessFDict: witnessFDictRemove :: TestEquality w => w a -> WitnessFDict w f -> WitnessFDict w f
+ Data.Witness.WitnessFDict: witnessFDictRemove :: (TestEquality w) => w a -> WitnessFDict w f -> WitnessFDict w f
- Data.Witness.WitnessFDict: witnessFDictReplace :: TestEquality w => w a -> f a -> WitnessFDict w f -> WitnessFDict w f
+ Data.Witness.WitnessFDict: witnessFDictReplace :: (TestEquality w) => w a -> f a -> WitnessFDict w f -> WitnessFDict w f

Files

src/Data/Witness/ListElement.hs view
@@ -12,16 +12,16 @@     modifyListElement :: (HasListElement n t) => Nat n -> (ListElement n t -> ListElement n t) -> t -> t;     modifyListElement n aa t = putListElement n (aa (getListElement n t)) t; -    instance HasListElement Zero (a,r) where+    instance HasListElement 'Zero (a,r) where     {-        type ListElement Zero (a,r) = a;+        type ListElement 'Zero (a,r) = a;         getListElement _ (a,_) = a;         putListElement _ a (_,r) = (a,r);     }; -    instance (HasListElement n r) => HasListElement (Succ n) (a,r) where+    instance (HasListElement n r) => HasListElement ('Succ n) (a,r) where     {-        type ListElement (Succ n) (a,r) = ListElement n r;+        type ListElement ('Succ n) (a,r) = ListElement n r;         getListElement (SuccNat n) (_,r) = getListElement n r;         putListElement (SuccNat n) a (f,r) = (f,putListElement n a r);     };
src/Data/Witness/Nat.hs view
@@ -10,8 +10,8 @@      data Nat (t :: NatKind) where     {-        ZeroNat :: Nat Zero;-        SuccNat :: Nat t -> Nat (Succ t);+        ZeroNat :: Nat 'Zero;+        SuccNat :: Nat t -> Nat ('Succ t);     };      instance TestEquality Nat where@@ -39,12 +39,12 @@         };     }; -    instance Is Nat Zero where+    instance Is Nat 'Zero where     {         representative = ZeroNat;     }; -    instance (Is Nat n) => Is Nat (Succ n) where+    instance (Is Nat n) => Is Nat ('Succ n) where     {         representative = SuccNat representative;     };
witness.cabal view
@@ -1,6 +1,6 @@ cabal-version:  >=1.14 name:           witness-version:        0.3+version:        0.3.0.1 x-follows-version-policy: license:        BSD3 license-file:   LICENSE@@ -36,10 +36,10 @@         ScopedTypeVariables         PatternGuards     build-depends:-        base == 4.*,-        transformers >=0.3,-        categories == 1.0.*,-        constraints >= 0.3+        base >= 4.7 && < 5,+        transformers,+        categories,+        constraints     exposed-modules:         Data.Witness.Any         Data.Witness.WitnessDict