type-ord-spine-cereal 0.1 → 0.2
raw patch · 2 files changed
+27/−13 lines, 2 filesdep ~type-cerealdep ~type-orddep ~type-spinePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: type-cereal, type-ord, type-spine
API changes (from Hackage documentation)
+ Type.Ord.SpineSerialize: spineSerializeTypeAsHash_pro :: Name -> Q [Dec]
+ Type.Ord.SpineSerialize: spineSerializeType_pro :: Name -> Q [Dec]
- Type.Ord.SpineSerialize: type Compare l r = SpineCompare (KS l) (KS r)
+ Type.Ord.SpineSerialize: type Compare l r = SpineCompare l r
Files
- Type/Ord/SpineSerialize.hs +23/−10
- type-ord-spine-cereal.cabal +4/−3
Type/Ord/SpineSerialize.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE TypeFamilies, QuasiQuotes, TypeOperators, UndecidableInstances #-}+{-# LANGUAGE TypeFamilies, TypeOperators, UndecidableInstances, DataKinds, PolyKinds #-} {- | @@ -14,7 +14,7 @@ -} module Type.Ord.SpineSerialize- (SpineCompare, Compare, spineSerializeType, spineSerializeTypeAsHash,+ (module Type.Ord.SpineSerialize, module Type.Spine, module Type.Serialize, module Type.Ord) where import Type.Spine@@ -26,28 +26,41 @@ type SpineCompare l r = Ord.Compare (Spine l) (Spine r)-type Compare l r = SpineCompare ([qK|*|] l) ([qK|*|] r)+type Compare l r = SpineCompare l r -type instance Ord.Compare (TypeName l) (TypeName r) =+type instance Ord.Compare (Atom l) (Atom r) = Ord.Compare (Serialize l) (Serialize r) type instance Ord.Compare (lx :@ ly) (rx :@ ry) = OrdCase (Ord.Compare (Spine lx) (Spine rx)) LT (Ord.Compare (Spine ly) (Spine ry)) GT-type instance Ord.Compare (TypeName l) (rx :@ ry) = LT-type instance Ord.Compare (lx :@ ly) (TypeName r) = GT+type instance Ord.Compare (Atom l) (rx :@ ry) = LT+type instance Ord.Compare (lx :@ ly) (Atom r) = GT spineSerializeType :: Name -> Q [Dec] spineSerializeType n = do- x <- serializeType n- y <- spineType n+ x <- serializeType_data n+ y <- spineType_d n return $ x ++ y spineSerializeTypeAsHash :: Name -> Q [Dec] spineSerializeTypeAsHash n = do- x <- serializeTypeAsHash n- y <- spineType n+ x <- serializeTypeAsHash_data n+ y <- spineType_d n+ return $ x ++ y+++spineSerializeType_pro :: Name -> Q [Dec]+spineSerializeType_pro n = do+ x <- serializeType_pro n+ y <- spineType_pro n+ return $ x ++ y++spineSerializeTypeAsHash_pro :: Name -> Q [Dec]+spineSerializeTypeAsHash_pro n = do+ x <- serializeTypeAsHash_pro n+ y <- spineType_pro n return $ x ++ y
type-ord-spine-cereal.cabal view
@@ -1,5 +1,5 @@ Name: type-ord-spine-cereal-Version: 0.1+Version: 0.2 License: BSD3 License-File: LICENSE Author: Nicolas Frisby <nicolas.frisby@gmail.com>@@ -10,7 +10,8 @@ Synopsis: Generic type-level comparison of types Description: Generic type-level comparison of @type-spine@- and- @type-cereal@-enabled types.+ @type-cereal@-enabled types. See the @yoko@ package's \"Data.Yoko.HCompos\"+ and \"Data.Yoko.TH\" modules for a (rather large) use case. Cabal-Version: >= 1.6.0.1 @@ -19,6 +20,6 @@ Library Build-Depends: base >= 4 && < 5, template-haskell- Build-Depends: type-spine < 0.2, type-cereal < 0.2, type-ord < 0.2+ Build-Depends: type-spine >= 0.2, type-cereal >= 0.2, type-ord >= 0.2 Exposed-Modules: Type.Ord.SpineSerialize