packages feed

exinst 0.1.1 → 0.1.2

raw patch · 7 files changed

+66/−72 lines, 7 filesdep ~basedep ~constraintsdep ~singletonsPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base, constraints, singletons

API changes (from Hackage documentation)

- Exinst.Instances.Base: instance forall (k1 :: BOX) (f1 :: k1 -> *). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Exinst.Singletons.Dict1 GHC.Classes.Eq f1) => GHC.Classes.Eq (Exinst.Singletons.Internal.Some1 f1)
- Exinst.Instances.Base: instance forall (k1 :: BOX) (f1 :: k1 -> *). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), Exinst.Singletons.Dict1 GHC.Classes.Ord f1, GHC.Classes.Eq (Exinst.Singletons.Internal.Some1 f1)) => GHC.Classes.Ord (Exinst.Singletons.Internal.Some1 f1)
- Exinst.Instances.Base: instance forall (k1 :: BOX) (f1 :: k1 -> *). (Data.Singletons.SingKind 'Data.Proxy.KProxy, GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), Exinst.Singletons.Dict1 GHC.Show.Show f1) => GHC.Show.Show (Exinst.Singletons.Internal.Some1 f1)
- Exinst.Instances.Base: instance forall (k2 :: BOX) (k1 :: BOX) (f2 :: k2 -> k1 -> *). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Exinst.Singletons.Dict2 GHC.Classes.Eq f2) => GHC.Classes.Eq (Exinst.Singletons.Internal.Some2 f2)
- Exinst.Instances.Base: instance forall (k2 :: BOX) (k1 :: BOX) (f2 :: k2 -> k1 -> *). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), Exinst.Singletons.Dict2 GHC.Classes.Ord f2, GHC.Classes.Eq (Exinst.Singletons.Internal.Some2 f2)) => GHC.Classes.Ord (Exinst.Singletons.Internal.Some2 f2)
- Exinst.Instances.Base: instance forall (k2 :: BOX) (k1 :: BOX) (f2 :: k2 -> k1 -> *). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), Exinst.Singletons.Dict2 GHC.Show.Show f2) => GHC.Show.Show (Exinst.Singletons.Internal.Some2 f2)
- Exinst.Instances.Base: instance forall (k3 :: BOX) (k2 :: BOX) (k1 :: BOX) (f3 :: k3 -> k2 -> k1 -> *). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Exinst.Singletons.Dict3 GHC.Classes.Eq f3) => GHC.Classes.Eq (Exinst.Singletons.Internal.Some3 f3)
- Exinst.Instances.Base: instance forall (k3 :: BOX) (k2 :: BOX) (k1 :: BOX) (f3 :: k3 -> k2 -> k1 -> *). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), Exinst.Singletons.Dict3 GHC.Classes.Ord f3, GHC.Classes.Eq (Exinst.Singletons.Internal.Some3 f3)) => GHC.Classes.Ord (Exinst.Singletons.Internal.Some3 f3)
- Exinst.Instances.Base: instance forall (k3 :: BOX) (k2 :: BOX) (k1 :: BOX) (f3 :: k3 -> k2 -> k1 -> *). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), Exinst.Singletons.Dict3 GHC.Show.Show f3) => GHC.Show.Show (Exinst.Singletons.Internal.Some3 f3)
- Exinst.Instances.Base: instance forall (k4 :: BOX) (k3 :: BOX) (k2 :: BOX) (k1 :: BOX) (f4 :: k4 -> k3 -> k2 -> k1 -> *). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Exinst.Singletons.Dict4 GHC.Classes.Eq f4) => GHC.Classes.Eq (Exinst.Singletons.Internal.Some4 f4)
- Exinst.Instances.Base: instance forall (k4 :: BOX) (k3 :: BOX) (k2 :: BOX) (k1 :: BOX) (f4 :: k4 -> k3 -> k2 -> k1 -> *). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), Exinst.Singletons.Dict4 GHC.Classes.Ord f4, GHC.Classes.Eq (Exinst.Singletons.Internal.Some4 f4)) => GHC.Classes.Ord (Exinst.Singletons.Internal.Some4 f4)
- Exinst.Instances.Base: instance forall (k4 :: BOX) (k3 :: BOX) (k2 :: BOX) (k1 :: BOX) (f4 :: k4 -> k3 -> k2 -> k1 -> *). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), Exinst.Singletons.Dict4 GHC.Show.Show f4) => GHC.Show.Show (Exinst.Singletons.Internal.Some4 f4)
+ Exinst.Instances.Base: instance forall k1 (f1 :: k1 -> GHC.Types.*). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Exinst.Singletons.Dict1 GHC.Classes.Eq f1) => GHC.Classes.Eq (Exinst.Singletons.Some1 f1)
+ Exinst.Instances.Base: instance forall k1 (f1 :: k1 -> GHC.Types.*). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), Exinst.Singletons.Dict1 GHC.Classes.Ord f1, GHC.Classes.Eq (Exinst.Singletons.Some1 f1)) => GHC.Classes.Ord (Exinst.Singletons.Some1 f1)
+ Exinst.Instances.Base: instance forall k1 (f1 :: k1 -> GHC.Types.*). (Data.Singletons.SingKind 'Data.Proxy.KProxy, GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), Exinst.Singletons.Dict1 GHC.Show.Show f1) => GHC.Show.Show (Exinst.Singletons.Some1 f1)
+ Exinst.Instances.Base: instance forall k2 k1 (f2 :: k2 -> k1 -> GHC.Types.*). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Exinst.Singletons.Dict2 GHC.Classes.Eq f2) => GHC.Classes.Eq (Exinst.Singletons.Some2 f2)
+ Exinst.Instances.Base: instance forall k2 k1 (f2 :: k2 -> k1 -> GHC.Types.*). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), Exinst.Singletons.Dict2 GHC.Classes.Ord f2, GHC.Classes.Eq (Exinst.Singletons.Some2 f2)) => GHC.Classes.Ord (Exinst.Singletons.Some2 f2)
+ Exinst.Instances.Base: instance forall k2 k1 (f2 :: k2 -> k1 -> GHC.Types.*). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), Exinst.Singletons.Dict2 GHC.Show.Show f2) => GHC.Show.Show (Exinst.Singletons.Some2 f2)
+ Exinst.Instances.Base: instance forall k3 k2 k1 (f3 :: k3 -> k2 -> k1 -> GHC.Types.*). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Exinst.Singletons.Dict3 GHC.Classes.Eq f3) => GHC.Classes.Eq (Exinst.Singletons.Some3 f3)
+ Exinst.Instances.Base: instance forall k3 k2 k1 (f3 :: k3 -> k2 -> k1 -> GHC.Types.*). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), Exinst.Singletons.Dict3 GHC.Classes.Ord f3, GHC.Classes.Eq (Exinst.Singletons.Some3 f3)) => GHC.Classes.Ord (Exinst.Singletons.Some3 f3)
+ Exinst.Instances.Base: instance forall k3 k2 k1 (f3 :: k3 -> k2 -> k1 -> GHC.Types.*). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), Exinst.Singletons.Dict3 GHC.Show.Show f3) => GHC.Show.Show (Exinst.Singletons.Some3 f3)
+ Exinst.Instances.Base: instance forall k4 k3 k2 k1 (f4 :: k4 -> k3 -> k2 -> k1 -> GHC.Types.*). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Exinst.Singletons.Dict4 GHC.Classes.Eq f4) => GHC.Classes.Eq (Exinst.Singletons.Some4 f4)
+ Exinst.Instances.Base: instance forall k4 k3 k2 k1 (f4 :: k4 -> k3 -> k2 -> k1 -> GHC.Types.*). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, Data.Singletons.Decide.SDecide 'Data.Proxy.KProxy, GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Classes.Ord (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), Exinst.Singletons.Dict4 GHC.Classes.Ord f4, GHC.Classes.Eq (Exinst.Singletons.Some4 f4)) => GHC.Classes.Ord (Exinst.Singletons.Some4 f4)
+ Exinst.Instances.Base: instance forall k4 k3 k2 k1 (f4 :: k4 -> k3 -> k2 -> k1 -> GHC.Types.*). (Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, Data.Singletons.SingKind 'Data.Proxy.KProxy, GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), GHC.Show.Show (Data.Singletons.DemoteRep 'Data.Proxy.KProxy), Exinst.Singletons.Dict4 GHC.Show.Show f4) => GHC.Show.Show (Exinst.Singletons.Some4 f4)
+ Exinst.Singletons: Some1 :: !(Sing a1) -> !(f1 a1) -> Some1
+ Exinst.Singletons: Some2 :: !(Sing a2) -> !(Sing a1) -> !(f2 a2 a1) -> Some2
+ Exinst.Singletons: Some3 :: !(Sing a3) -> !(Sing a2) -> !(Sing a1) -> !(f3 a3 a2 a1) -> Some3
+ Exinst.Singletons: Some4 :: !(Sing a4) -> !(Sing a3) -> !(Sing a2) -> !(Sing a1) -> !(f4 a4 a3 a2 a1) -> Some4
+ Exinst.Singletons: [Dict] :: Dict a
+ Exinst.Singletons: data Dict (a :: Constraint) :: Constraint -> *
- Exinst.Singletons: fromSome1 :: (SingI a1, SDecide (KProxy :: KProxy k1)) => Some1 f1 -> Maybe (f1 a1)
+ Exinst.Singletons: fromSome1 :: forall (f1 :: k1 -> *) a1. (SingI a1, SDecide (KProxy :: KProxy k1)) => Some1 f1 -> Maybe (f1 a1)
- Exinst.Singletons: fromSome2 :: (SingI a2, SDecide (KProxy :: KProxy k2), SingI a1, SDecide (KProxy :: KProxy k1)) => Some2 f2 -> Maybe (f2 a2 a1)
+ Exinst.Singletons: fromSome2 :: forall (f2 :: k2 -> k1 -> *) a2 a1. (SingI a2, SDecide (KProxy :: KProxy k2), SingI a1, SDecide (KProxy :: KProxy k1)) => Some2 f2 -> Maybe (f2 a2 a1)
- Exinst.Singletons: fromSome3 :: (SingI a3, SDecide (KProxy :: KProxy k3), SingI a2, SDecide (KProxy :: KProxy k2), SingI a1, SDecide (KProxy :: KProxy k1)) => Some3 f3 -> Maybe (f3 a3 a2 a1)
+ Exinst.Singletons: fromSome3 :: forall (f3 :: k3 -> k2 -> k1 -> *) a3 a2 a1. (SingI a3, SDecide (KProxy :: KProxy k3), SingI a2, SDecide (KProxy :: KProxy k2), SingI a1, SDecide (KProxy :: KProxy k1)) => Some3 f3 -> Maybe (f3 a3 a2 a1)
- Exinst.Singletons: fromSome4 :: (SingI a4, SDecide (KProxy :: KProxy k4), SingI a3, SDecide (KProxy :: KProxy k3), SingI a2, SDecide (KProxy :: KProxy k2), SingI a1, SDecide (KProxy :: KProxy k1)) => Some4 f4 -> Maybe (f4 a4 a3 a2 a1)
+ Exinst.Singletons: fromSome4 :: forall (f4 :: k4 -> k3 -> k2 -> k1 -> *) a4 a3 a2 a1. (SingI a4, SDecide (KProxy :: KProxy k4), SingI a3, SDecide (KProxy :: KProxy k3), SingI a2, SDecide (KProxy :: KProxy k2), SingI a1, SDecide (KProxy :: KProxy k1)) => Some4 f4 -> Maybe (f4 a4 a3 a2 a1)
- Exinst.Singletons: some1 :: SingI a1 => f1 a1 -> Some1 f1
+ Exinst.Singletons: some1 :: forall (f1 :: k1 -> *) a1. SingI a1 => f1 a1 -> Some1 f1
- Exinst.Singletons: some2 :: (SingI a2, SingI a1) => f2 a2 a1 -> Some2 f2
+ Exinst.Singletons: some2 :: forall (f2 :: k2 -> k1 -> *) a2 a1. (SingI a2, SingI a1) => f2 a2 a1 -> Some2 f2
- Exinst.Singletons: some3 :: (SingI a3, SingI a2, SingI a1) => f3 a3 a2 a1 -> Some3 f3
+ Exinst.Singletons: some3 :: forall (f3 :: k3 -> k2 -> k1 -> *) a3 a2 a1. (SingI a3, SingI a2, SingI a1) => f3 a3 a2 a1 -> Some3 f3
- Exinst.Singletons: some4 :: (SingI a4, SingI a3, SingI a2, SingI a1) => f4 a4 a3 a2 a1 -> Some4 f4
+ Exinst.Singletons: some4 :: forall (f4 :: k4 -> k3 -> k2 -> k1 -> *) a4 a3 a2 a1. (SingI a4, SingI a3, SingI a2, SingI a1) => f4 a4 a3 a2 a1 -> Some4 f4
- Exinst.Singletons: withSome1 :: Some1 f1 -> (forall a1. SingI a1 => f1 a1 -> r) -> r
+ Exinst.Singletons: withSome1 :: forall (f1 :: k1 -> *) (r :: *). Some1 f1 -> (forall a1. SingI a1 => f1 a1 -> r) -> r
- Exinst.Singletons: withSome1Sing :: Some1 f1 -> (forall a1. (SingI a1) => Sing a1 -> f1 a1 -> r) -> r
+ Exinst.Singletons: withSome1Sing :: forall (f1 :: k1 -> *) (r :: *). Some1 f1 -> (forall a1. (SingI a1) => Sing a1 -> f1 a1 -> r) -> r
- Exinst.Singletons: withSome2 :: Some2 f2 -> (forall a2 a1. (SingI a2, SingI a1) => f2 a2 a1 -> r) -> r
+ Exinst.Singletons: withSome2 :: forall (f2 :: k2 -> k1 -> *) (r :: *). Some2 f2 -> (forall a2 a1. (SingI a2, SingI a1) => f2 a2 a1 -> r) -> r
- Exinst.Singletons: withSome2Sing :: Some2 f2 -> (forall a2 a1. (SingI a2, SingI a1) => Sing a2 -> Sing a1 -> f2 a2 a1 -> r) -> r
+ Exinst.Singletons: withSome2Sing :: forall (f2 :: k2 -> k1 -> *) (r :: *). Some2 f2 -> (forall a2 a1. (SingI a2, SingI a1) => Sing a2 -> Sing a1 -> f2 a2 a1 -> r) -> r
- Exinst.Singletons: withSome3 :: Some3 f3 -> (forall a3 a2 a1. (SingI a3, SingI a2, SingI a1) => f3 a3 a2 a1 -> r) -> r
+ Exinst.Singletons: withSome3 :: forall (f3 :: k3 -> k2 -> k1 -> *) (r :: *). Some3 f3 -> (forall a3 a2 a1. (SingI a3, SingI a2, SingI a1) => f3 a3 a2 a1 -> r) -> r
- Exinst.Singletons: withSome3Sing :: Some3 f3 -> (forall a3 a2 a1. (SingI a3, SingI a2, SingI a1) => Sing a3 -> Sing a2 -> Sing a1 -> f3 a3 a2 a1 -> r) -> r
+ Exinst.Singletons: withSome3Sing :: forall (f3 :: k3 -> k2 -> k1 -> *) (r :: *). Some3 f3 -> (forall a3 a2 a1. (SingI a3, SingI a2, SingI a1) => Sing a3 -> Sing a2 -> Sing a1 -> f3 a3 a2 a1 -> r) -> r
- Exinst.Singletons: withSome4 :: Some4 f4 -> (forall a4 a3 a2 a1. (SingI a4, SingI a3, SingI a2, SingI a1) => f4 a4 a3 a2 a1 -> r) -> r
+ Exinst.Singletons: withSome4 :: forall (f4 :: k4 -> k3 -> k2 -> k1 -> *) (r :: *). Some4 f4 -> (forall a4 a3 a2 a1. (SingI a4, SingI a3, SingI a2, SingI a1) => f4 a4 a3 a2 a1 -> r) -> r
- Exinst.Singletons: withSome4Sing :: Some4 f4 -> (forall a4 a3 a2 a1. (SingI a4, SingI a3, SingI a2, SingI a1) => Sing a4 -> Sing a3 -> Sing a2 -> Sing a1 -> f4 a4 a3 a2 a1 -> r) -> r
+ Exinst.Singletons: withSome4Sing :: forall (f4 :: k4 -> k3 -> k2 -> k1 -> *) (r :: *). Some4 f4 -> (forall a4 a3 a2 a1. (SingI a4, SingI a3, SingI a2, SingI a1) => Sing a4 -> Sing a3 -> Sing a2 -> Sing a1 -> f4 a4 a3 a2 a1 -> r) -> r

Files

CHANGELOG.md view
@@ -1,3 +1,14 @@+# Version 0.1.2++* Export the `Some{1,2,3,4}` constructors.++* Make all the fields in `Some{1,2,3,4}` strict.++* Relax upper bound on `base`, `singletons`, `constraints`.++* Re-export `Dict(Dict)` from `constraints`.++ # Version 0.1.1  * Relax upper bound on `singletons` dependency.
LICENSE.txt view
@@ -1,4 +1,4 @@-Copyright (c) 2015, Renzo Carbonara+Copyright (c) 2015-2016, Renzo Carbonara  All rights reserved. 
README.md view
@@ -30,8 +30,6 @@  As a motivation, let's consider the following example: -> TODO: check language extensions needed for the following example.- ```haskell {-# LANGUAGE GADTs #-} {-# LANGUAGE DataKinds #-}@@ -52,13 +50,12 @@ `Receptacle` can describe three types of receptacles (`Vase`, `Glass` and `Barrel`), while at the same time being able to indicate, at the type level, whether the size of the receptacle is `Big` or `Small`. Additionally, we've-provided `Show` instances for `Receptacle` (which could have been derived-automatically, too).+provided `Show` instances for `Receptacle`.   Now, if we want to put `Receptacle`s in a container, for example in `[]`, we can-do so only as long as the `Receptacle` type is fully applied. That is, we can+do so only as long as the `Receptacle` type is fully applied and monomorphic. That is, we can have `[Receptacle 'Small]` and `[Receptacle 'Big]`, but we can't have-`[Receptacle]`. So, if we want to have `Receptacle`s of different sizes in a+`[Receptacle]` nor `[forall a. Receptacle a]`. So, if we want to have `Receptacle`s of different sizes in a container like `[]`, we need a different solution.  At this point we need to ask ourselves why we need to put `Receptacle`s of
exinst.cabal view
@@ -1,8 +1,8 @@ name:                exinst-version:             0.1.1+version:             0.1.2 author:              Renzo Carbonara maintainer:          renzoλcarbonara.com.ar-copyright:           Renzo Carbonara 2015+copyright:           Renzo Carbonara 2015-2016 license:             BSD3 license-file:        LICENSE.txt extra-source-files:  README.md CHANGELOG.md@@ -20,11 +20,9 @@   exposed-modules:       Exinst.Singletons       Exinst.Instances.Base-  other-modules:-      Exinst.Singletons.Internal   build-depends:-      base >=4.7 && <4.9-    , constraints >=0.4 && <0.5-    , singletons >=1.1 && <2.1+      base >=4.7 && <5.0+    , constraints >=0.4 && <0.9+    , singletons >=1.1 && <2.2   ghcjs-options: -Wall -O3   ghc-options: -Wall -O2
src/lib/Exinst/Instances/Base.hs view
@@ -6,19 +6,21 @@  {-# OPTIONS_GHC -fno-warn-orphans #-} --- | This module exports 'Show', 'Eq' and 'Ord' instances for 'Some1',--- 'Some2', 'Some3' and 'Some4' from "Exinst.Singletons", provided situable+-- | This module exports 'Show', 'Eq' and 'Ord' instances for 'Exinst.Some1',+-- 'Exinst.Some2', 'Exinst.Some3' and 'Exinst.Some4' from "Exinst.Singletons", provided situable -- 'Dict1', 'Dict2', 'Dict3' and 'Dict4' instances are available. -- -- See the README file for more general documentation: https://hackage.haskell.org/package/exinst#readme module Exinst.Instances.Base () where -import           Data.Constraint-import           Data.Singletons-import           Data.Singletons.Decide-import           Data.Type.Equality-import           Exinst.Singletons-import           Prelude+import Data.Constraint+import Data.Singletons+import Data.Singletons.Decide+import Data.Type.Equality+import Exinst.Singletons+  hiding (Some1(..), Some2(..), Some3(..), Some4(..))+import qualified Exinst.Singletons as Exinst+import Prelude  -------------------------------------------------------------------------------- @@ -35,7 +37,7 @@   . ( SingKind ('KProxy :: KProxy k1)     , Show (DemoteRep ('KProxy :: KProxy k1))     , Dict1 Show f1-    ) => Show (Some1 f1)+    ) => Show (Exinst.Some1 f1)   where     {-# INLINABLE showsPrec #-}     showsPrec n = \some1x -> withSome1Sing some1x $ \sa1 (x :: f1 a1) ->@@ -48,7 +50,7 @@     , Show (DemoteRep ('KProxy :: KProxy k2))     , Show (DemoteRep ('KProxy :: KProxy k1))     , Dict2 Show f2-    ) => Show (Some2 f2)+    ) => Show (Exinst.Some2 f2)   where     {-# INLINABLE showsPrec #-}     showsPrec n = \some2x -> withSome2Sing some2x $ \sa2 sa1 (x :: f2 a2 a1) ->@@ -63,7 +65,7 @@     , Show (DemoteRep ('KProxy :: KProxy k2))     , Show (DemoteRep ('KProxy :: KProxy k1))     , Dict3 Show f3-    ) => Show (Some3 f3)+    ) => Show (Exinst.Some3 f3)   where     {-# INLINABLE showsPrec #-}     showsPrec n = \some3x -> withSome3Sing some3x $ \sa3 sa2 sa1 (x :: f3 a3 a2 a1) ->@@ -80,7 +82,7 @@     , Show (DemoteRep ('KProxy :: KProxy k2))     , Show (DemoteRep ('KProxy :: KProxy k1))     , Dict4 Show f4-    ) => Show (Some4 f4)+    ) => Show (Exinst.Some4 f4)   where     {-# INLINABLE showsPrec #-}     showsPrec n = \some4x -> withSome4Sing some4x $ \sa4 sa3 sa2 sa1 (x :: f4 a4 a3 a2 a1) ->@@ -98,7 +100,7 @@   . ( SingKind ('KProxy :: KProxy k1)     , SDecide ('KProxy :: KProxy k1)     , Dict1 Eq f1-    ) => Eq (Some1 f1)+    ) => Eq (Exinst.Some1 f1)   where     {-# INLINABLE (==) #-}     (==) = \som1x som1y ->@@ -115,7 +117,7 @@     , SDecide ('KProxy :: KProxy k2)     , SDecide ('KProxy :: KProxy k1)     , Dict2 Eq f2-    ) => Eq (Some2 f2)+    ) => Eq (Exinst.Some2 f2)   where     {-# INLINABLE (==) #-}     (==) = \som2x som2y ->@@ -135,7 +137,7 @@     , SDecide ('KProxy :: KProxy k2)     , SDecide ('KProxy :: KProxy k1)     , Dict3 Eq f3-    ) => Eq (Some3 f3)+    ) => Eq (Exinst.Some3 f3)   where     {-# INLINABLE (==) #-}     (==) = \som3x som3y ->@@ -158,7 +160,7 @@     , SDecide ('KProxy :: KProxy k2)     , SDecide ('KProxy :: KProxy k1)     , Dict4 Eq f4-    ) => Eq (Some4 f4)+    ) => Eq (Exinst.Some4 f4)   where     {-# INLINABLE (==) #-}     (==) = \som4x som4y ->@@ -180,8 +182,8 @@     , SDecide ('KProxy :: KProxy k1)     , Ord (DemoteRep ('KProxy :: KProxy k1))     , Dict1 Ord f1-    , Eq (Some1 f1)-    ) => Ord (Some1 f1)+    , Eq (Exinst.Some1 f1)+    ) => Ord (Exinst.Some1 f1)   where     {-# INLINABLE compare #-}     compare = \som1x som1y ->@@ -201,8 +203,8 @@     , Ord (DemoteRep ('KProxy :: KProxy k2))     , Ord (DemoteRep ('KProxy :: KProxy k1))     , Dict2 Ord f2-    , Eq (Some2 f2)-    ) => Ord (Some2 f2)+    , Eq (Exinst.Some2 f2)+    ) => Ord (Exinst.Some2 f2)   where     {-# INLINABLE compare #-}     compare = \som2x som2y ->@@ -227,8 +229,8 @@     , Ord (DemoteRep ('KProxy :: KProxy k2))     , Ord (DemoteRep ('KProxy :: KProxy k1))     , Dict3 Ord f3-    , Eq (Some3 f3)-    ) => Ord (Some3 f3)+    , Eq (Exinst.Some3 f3)+    ) => Ord (Exinst.Some3 f3)   where     {-# INLINABLE compare #-}     compare = \som3x som3y ->@@ -258,8 +260,8 @@     , Ord (DemoteRep ('KProxy :: KProxy k2))     , Ord (DemoteRep ('KProxy :: KProxy k1))     , Dict4 Ord f4-    , Eq (Some4 f4)-    ) => Ord (Some4 f4)+    , Eq (Exinst.Some4 f4)+    ) => Ord (Exinst.Some4 f4)   where     {-# INLINABLE compare #-}     compare = \som4x som4y ->
src/lib/Exinst/Singletons.hs view
@@ -10,7 +10,7 @@ -- | See the README file for documentation: https://hackage.haskell.org/package/exinst#readme module Exinst.Singletons  ( -- * 1 type index-   Some1+   Some1(Some1)  , some1  , withSome1Sing  , withSome1@@ -18,7 +18,7 @@  , Dict1(dict1)     -- * 2 type indexes- , Some2+ , Some2(Some2)  , some2  , withSome2Sing  , withSome2@@ -26,7 +26,7 @@  , Dict2(dict2)     -- * 3 type indexes- , Some3+ , Some3(Some3)  , some3  , withSome3Sing  , withSome3@@ -34,12 +34,15 @@  , Dict3(dict3)     -- * 4 type indexes- , Some4+ , Some4(Some4)  , some4  , withSome4Sing  , withSome4  , fromSome4  , Dict4(dict4)++   -- * Re-exports+ , Dict(Dict)  ) where  import Data.Constraint@@ -48,7 +51,19 @@ import Data.Type.Equality import Prelude -import Exinst.Singletons.Internal+--------------------------------------------------------------------------------++data Some1 (f1 :: k1 -> *) = forall a1.+  Some1 !(Sing a1) !(f1 a1)++data Some2 (f2 :: k2 -> k1 -> *) = forall a2 a1.+  Some2 !(Sing a2) !(Sing a1) !(f2 a2 a1)++data Some3 (f3 :: k3 -> k2 -> k1 -> *) = forall a3 a2 a1.+  Some3 !(Sing a3) !(Sing a2) !(Sing a1) !(f3 a3 a2 a1)++data Some4 (f4 :: k4 -> k3 -> k2 -> k1 -> *) = forall a4 a3 a2 a1.+  Some4 !(Sing a4) !(Sing a3) !(Sing a2) !(Sing a1) !(f4 a4 a3 a2 a1)  -------------------------------------------------------------------------------- 
− src/lib/Exinst/Singletons/Internal.hs
@@ -1,29 +0,0 @@-{-# LANGUAGE ExistentialQuantification #-}-{-# LANGUAGE PolyKinds #-}---- | This is an internal module, do not import it directly. Import--- "Exinst.Singletons" instead.-module Exinst.Singletons.Internal- ( Some1(..)- , Some2(..)- , Some3(..)- , Some4(..)- ) where--import Data.Singletons (Sing)------------------------------------------------------------------------------------data Some1 (f1 :: k1 -> *) = forall a1.-  Some1 !(Sing a1) (f1 a1)--data Some2 (f2 :: k2 -> k1 -> *) = forall a2 a1.-  Some2 !(Sing a2) !(Sing a1) (f2 a2 a1)--data Some3 (f3 :: k3 -> k2 -> k1 -> *) = forall a3 a2 a1.-  Some3 !(Sing a3) !(Sing a2) !(Sing a1) (f3 a3 a2 a1)--data Some4 (f4 :: k4 -> k3 -> k2 -> k1 -> *) = forall a4 a3 a2 a1.-  Some4 !(Sing a4) !(Sing a3) !(Sing a2) !(Sing a1) (f4 a4 a3 a2 a1)----------------------------------------------------------------------------------