Diffstat (limited to 'src/hkt.rs')
-rw-r--r--src/hkt.rs20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/hkt.rs b/src/hkt.rs
index 58f8501..b98ba0c 100644
--- a/src/hkt.rs
+++ b/src/hkt.rs
@@ -51,7 +51,7 @@ impl<T: ?Sized> Default for Marker<T> {
#[macro_export]
macro_rules! higher_ranked_trait {
{
- $vis:vis type class $name:ident$([$($generic:tt)*])? for<$($lt:lifetime),+> {
+ $vis:vis type class $name:ident$([$($generic:tt)*])? for<$($lt:lifetime),+> <$($for_lt:lifetime),+> {
type Bound = $bound:ty;
type T: {$($lower:tt)*} $(where {$($lower_where:tt)*})?;
@@ -70,25 +70,23 @@ macro_rules! higher_ranked_trait {
$($($lower_where)*)?
$($($higher_where)*)?
{
- type T: RaiseForLt<$($lt,)+ $($($generic)*,)? B, HigherRanked = Self> + ?Sized + $($lower)*;
+ type T:
+ RaiseForLt<$($lt,)+ $($($generic)*,)? B, HigherRanked = Self>
+ + for<$($for_lt),+> RaiseForLt<$($for_lt,)+ $($($generic)*,)? Bound<$($for_lt,)+ $($($generic)*)?>>
+ + ?Sized + $($lower)*;
}
pub trait RaiseForLt<$($lt,)+ $($($generic)*,)? B>
- // : RaiseForLtAll<$($($generic)*,)? B>
where
$($($lower_where)*)?
$($($higher_where)*)?
{
- type HigherRanked: LowerForLt<$($lt,)+ $($($generic)*,)? B, T = Self> + ?Sized + $($higher)*;
+ type HigherRanked:
+ LowerForLt<$($lt,)+ $($($generic)*,)? B, T = Self>
+ + for<$($for_lt),+> LowerForLt<$($for_lt,)+ $($($generic)*,)? Bound<$($for_lt,)+ $($($generic)*)?>>
+ + ?Sized + $($higher)*;
}
- // pub trait RaiseForLtAll<$($($generic)*,)? B>
- // where
- // $($($higher_where)*)?
- // {
- // type HigherRankedAll: for<$($lt,)+> LowerForLt<$($lt,)+ $($($generic)*,)? $bound> + ?Sized + $($higher)*;
- // }
-
pub type Bound<$($lt,)+ $($($generic)*)?> = $bound;
pub trait MemberType$(<$($generic)*>)?: