packages feed

kinds 0.0.1.0 → 0.0.1.1

raw patch · 2 files changed

+15/−11 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

kinds.cabal view
@@ -1,5 +1,5 @@ Name:          kinds-Version:       0.0.1.0+Version:       0.0.1.1 Cabal-Version: >= 1.2.3 Build-Type:    Simple License:       BSD3@@ -10,7 +10,7 @@ Stability:     provisional Homepage:      http://community.haskell.org/~jeltsch/kinds/ Bug-Reports:   jeltsch@tu-cottbus.de-Package-URL:   http://hackage.haskell.org/packages/archive/kinds/0.0.0.0/kinds-0.0.0.0.tar.gz+Package-URL:   http://hackage.haskell.org/packages/archive/kinds/0.0.1.1/kinds-0.0.1.1.tar.gz Synopsis:      Emulation of subkinds and subkind polymorphism Description:   Subkinds are the kind-level analog to subtypes. A kind denotes a set of types, and a                subkind of some base kind denotes a subset of the base kind&#x2019;s set of types.@@ -22,8 +22,11 @@                subkind and universally quantify over the inhabitants of the subkind. Since subkinds                are represented by types, type-level polymorphism can be used to emulate kind-level                polymorphism.+               .+               For detailed information, please refer to Section&#xA0;6 of the paper+               /Generic Record Combinators with Static Type Checking/. Category:      Type System-Tested-With:   GHC == 6.10.4+Tested-With:   GHC == 6.12.1  Library     Build-Depends:   base >= 3.0 && < 4.1
src/Data/Kind.hs view
@@ -8,9 +8,10 @@     subkind /K/ = /C_1/ => /t_1/ | ... | /C_n/ => /t_n/     @ -    Thereby, /K/&#xA0;would be a kind identifier, the /t_i/ would be types and the /C_i/ would be-    contexts. This subkind declaration would introduce a subkind&#xA0;/K/ that covers all types that-    match one of the&#xA0;/t_i/ and fulfill the corresponding context. For example, the declaration+    Thereby, @/K/@&#xA0;would be a kind identifier, the @/t_i/@ would be types and the @/C_i/@ would+    be contexts. This subkind declaration would introduce a subkind&#xA0;@/K/@ that covers all types+    that match one of the&#xA0;@/t_i/@ and fulfill the corresponding context. For example, the+    declaration      @     subkind Map = (Ord key) => Map key val | IntMap val@@ -39,9 +40,9 @@         closed item = All/K/ item ... item     @ -    Thereby, each&#xA0;/A_i/ stands for a whitespace-separated sequence of the free variables-    of&#xA0;/t_i/. Finally, we add the following instance declaration for every&#xA0;/i/ between-    /1/&#xA0;and&#xA0;/n/:+    Thereby, each&#xA0;@/A_i/@ stands for a whitespace-separated sequence of the free variables+    of&#xA0;@/t_i/@. Finally, we add the following instance declaration for every&#xA0;@/i/@ between+    @1@&#xA0;and&#xA0;@/n/@:      @     instance /C_i/ => Inhabitant Kind/K/ /t_i/ where@@ -49,7 +50,7 @@         specialize (All/K/ _ ... _ item _ ... _) = item     @ -    Thereby, the number of wildcard patterns before and after @item@ is /i - 1/ and /n - i/,+    Thereby, the number of wildcard patterns before and after @item@ is @/i/ - 1@ and @/n/ - /i/@,     respectively. The above subkind declaration for @Map@ can be emulated with the following code:      @@@ -90,7 +91,7 @@             Universal quantification over the types of the subkind.              For a subkind representation&#xA0;@Kind/K/@ of a subkind @/K/@ and a type&#xA0;@/f/@ of-            kind&#xA0;@* -> *@, @All Kind/K/ /f/@ is isomorphic to @forall a :: /K/. /f/ a@.+            kind&#xA0;@* -> *@, @All Kind/K/ /f/@ is isomorphic to @forall val :: /K/. /f/ val@.         -}         data All kind :: (* -> *) -> *