**Alexandre R. Baldé**
(5b627813)
*
at
09 Mar 22:45
*

Use InstanceSigs in GND/DerivingVia-generated code (#17899)

*
... and
5 more commits
*

**Alexandre R. Baldé**
(06763234)
*
at
08 Mar 21:56
*

rts: Report nonmoving collector statistics in machine-readable output

*
... and
1726 more commits
*

I understood this as the Center for the Greek Language wanting to remove `ω`

from the actual Greek alphabet

that is going to be retired.

What do you mean?

Hello;

I'm creating this email to propose a change to `Data.Fixed`

. Full credit for this idea goes to Bhavik Mehta (@b-mehta on GitHub), who implemented it in this PR for `exact-pi`

.

In `Data.Fixed`

there are several `E`

-prefixed datatypes used to represent a certain number of digits of precision in fixed-precision arithmetic. For example, `E1`

has 1 decimal place, `E12`

has 12. Each of them, `E{0,1,2,3,6,9,12}`

is hardcoded. If more precision types are to be provided, they have to be hardcoded as well, and all of these types resemble each other. I think there is room for improvement here.

Instead of having

```
data E0
instance HasResolution E0 where
resolution _ = 1
```

and repeating it as many times as there are `E`

datatypes, I propose to add the following type:

```
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE KindSignatures #-}
import GHC.TypeLits (Nat, KnownNat, natVal)
data E (n :: Nat)
```

and then do

```
instance KnownNat n => HasResolution (E n) where
resolution _ = 10^natVal (undefined :: E n)
```

just once, replacing `data E0`

with `type E0 = E 0`

(and the same for the rest of them) to continue reexporting these types. `E`

should also be exported.

I've sent an email to the Core Libraries Committee regarding this issue. This is my first contribution to GHC, if I'm doing something incorrectly please tell me.

Trac field | Value |
---|---|

Version | 8.4.3 |

Type | FeatureRequest |

TypeOfFailure | OtherFailure |

Priority | normal |

Resolution | Unresolved |

Component | Core Libraries |

Test case | |

Differential revisions | |

BlockedBy | |

Related | |

Blocking | |

CC | Bodigrim |

Operating system | |

Architecture |

@AshleyYakeley you are correct!

Great news, thanks for taking this over @AshleyYakeley.

@monoidal that's great.

Closed after !713 (closed)'s merger.

I've noticed that the haddocks for `Monoid`

don't explicitly say that `mappend`

should be equal to `(<>)`

.

In principle this would allow for a type where e.g `(<>)`

is addition and `mappend`

is multiplication.

Wait, I just noticed - was I seriously talking about CI in an MR for a minor documentation fix

One particular CI job is failing in Windows, the cause for that may be fixed in one of the recent commits so I rebased to master.

**Alexandre R. Baldé**
(f3945ffb)
*
at
08 Jun 16:13
*

Explain that 'mappend' and '(<>)' should be the same [skip ci]

*
... and
275 more commits
*

Fixed merge conflicts.

**Alexandre R. Baldé**
(8aacce0e)
*
at
08 Jun 15:45
*

Update integer constant folding tests

*
... and
102 more commits
*

No problem Ben, thank you

**Alexandre R. Baldé**
(cf58a8b1)
*
at
25 May 22:52
*

Update integer constant folding tests

*
... and
99 more commits
*

Whoops, no approvals. @bgamari could you do it?

@bgamari thank you for taking another look.