packages feed

type-ord 0.1 → 0.2

raw patch · 3 files changed

+16/−20 lines, 3 filesdep −type-booleansdep ~type-digitsdep ~type-spinePVP ok

version bump matches the API change (PVP)

Dependencies removed: type-booleans

Dependency ranges changed: type-digits, type-spine

API changes (from Hackage documentation)

- Type.Ord.Base: data EQ
- Type.Ord.Base: data GT
- Type.Ord.Base: data LT

Files

Type/Ord.hs view
@@ -17,7 +17,8 @@ -} module Type.Ord (module Type.Ord.Base) where -import Type.Digits (digit, radix)+import Type.Digits (digit, radix, digitTypes)+import Type.Digits.Stage0 (Digit(DigitStop))  import Type.Ord.Base @@ -25,15 +26,15 @@   -type instance Compare () () = EQ+type instance Compare 'DigitStop 'DigitStop = 'EQ fmap concat $ sequence [ do-  let dL = conT $ digit n+  let dL = return pureTy       [l, r] = map (varT . mkName) ["l", "r"]       f x y z = tySynInstD ''Compare [x, y] z   d <- f [t| $dL $l |] [t| $dL $r |] [t| Compare $l $r |]   ((d:) . concat) `fmap` sequence [-    let dR = conT $ digit m in-    sequence [f [t| $dL $l |] [t| $dR $r |] [t| LT |],-              f [t| $dR $l |] [t| $dL $r |] [t| GT |]]+    let dR = promotedT $ digit m in+    sequence [f [t| $dL $l |] [t| $dR $r |] [t| 'LT |],+              f [t| $dR $l |] [t| $dL $r |] [t| 'GT |]]     | m <- [n + 1..radix - 1] ]-  | n <- [0..radix - 1] ]+  | (n, pureTy) <- zip [0..] digitTypes ]
Type/Ord/Base.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE TypeFamilies, EmptyDataDecls #-}+{-# LANGUAGE TypeFamilies, DataKinds, PolyKinds #-}  {- | @@ -15,21 +15,17 @@  -} module Type.Ord.Base-  (module Type.Booleans, Compare, LT, EQ, GT, OrdCase, IsEQ, IsLT, IsGT) where--import Type.Booleans (True, False)+  (Compare, OrdCase, IsEQ, IsLT, IsGT) where    -- | Type-level comparison.-type family Compare l r--data LT; data EQ; data GT+type family Compare (l :: k) (r :: k) :: Ordering  -- | @OrdCase x a b c@ reduces to @a@, @b@, or @c@, if @x@ is @LT@, @EQ@, or -- @GT@, respectively. type OrdCase x a b c = OrdCase_ x a b c-type family OrdCase_ x a b c+type family OrdCase_ (x :: Ordering) (a :: k) (b :: k) (c :: k) :: k type instance OrdCase_ LT a b c = a type instance OrdCase_ EQ a b c = b type instance OrdCase_ GT a b c = c
type-ord.cabal view
@@ -1,5 +1,5 @@ Name:           type-ord-Version:        0.1+Version:        0.2 License:        BSD3 License-File:   LICENSE Author:         Nicolas Frisby <nicolas.frisby@gmail.com>@@ -9,9 +9,8 @@  Synopsis:       Type-level comparison operator -Description: Type-level comparison operator with instances for ()-terminated-  @type-digit@ numerals until <http://hackage.haskell.org/trac/ghc/ticket/1894>-  is resolved.+Description: Type-level comparison operator with instances for @type-digit@+  numerals until <http://hackage.haskell.org/trac/ghc/ticket/1894> is resolved.  Cabal-Version: >= 1.6.0.1 @@ -20,6 +19,6 @@  Library   Build-Depends: base >= 4 && < 5, template-haskell-  Build-Depends: type-booleans < 0.2, type-spine < 0.2, type-digits < 0.2+  Build-Depends: type-spine >= 0.2, type-digits >= 0.2    Exposed-Modules: Type.Ord, Type.Ord.Base