... | @@ -24,12 +24,13 @@ Those with an MR actually have code. |
... | @@ -24,12 +24,13 @@ Those with an MR actually have code. |
|
, clauses :: [ClauseCoverage] }
|
|
, clauses :: [ClauseCoverage] }
|
|
```
|
|
```
|
|
- ```
|
|
- ```
|
|
newtype Deltas = Deltas (Bag Delta) deriving (Functor, Foldable, Traversable)
|
|
newtype Delta = Delta (Bag Theta) deriving (Functor, Foldable, Traversable)
|
|
liftDeltas :: Monad m => (Delta -> m (Maybe Delta)) -> Deltas -> m Deltas
|
|
liftDelta :: Monad m => (Theta-> m (Maybe Theta)) -> Delta -> m Delta
|
|
liftDeltas f = fmap catBagsMaybe . traverse f
|
|
liftDelta f = fmap catBagsMaybe . traverse f
|
|
```
|
|
```
|
|
And then define `pmc` in terms of that. `liftDeltas` for ops like `addTmCt`.
|
|
And then define `pmc` in terms of that. `liftDelta` for ops like `addTmCt`.
|
|
- Also we can finally get rid of `n_siblings` for the throttling function, it's just `length Deltas` now
|
|
- Also we can finally get rid of `n_siblings` for the throttling function, it's just `length Delta` now
|
|
|
|
|
|
- ```
|
|
- ```
|
|
data Clause = AtRhs
|
|
data Clause = AtRhs
|
|
| Guard PmGrd Clause
|
|
| Guard PmGrd Clause
|
... | @@ -37,6 +38,10 @@ Those with an MR actually have code. |
... | @@ -37,6 +38,10 @@ Those with an MR actually have code. |
|
pmc :: Clause -> Deltas -> DsM
|
|
pmc :: Clause -> Deltas -> DsM
|
|
```
|
|
```
|
|
|
|
|
|
|
|
- When we have `Delta = Delta (Bag Theta)`, we can actually use the Covered set as a `Delta` for "long distance info"
|
|
|
|
- No more just positive info and the `computeCovered` duplication can go away
|
|
|
|
- Performance-wise, we should be fine with !1752
|
|
|
|
|
|
- Implement "smarter `CoreMap`"
|
|
- Implement "smarter `CoreMap`"
|
|
- Test for "N series" (Matching over a binary tree, like the code generated by `-XDeriveGeneric`)
|
|
- Test for "N series" (Matching over a binary tree, like the code generated by `-XDeriveGeneric`)
|
|
|
|
|
... | | ... | |