[Bug 2166239] New: Review Request: ghc-fmt - A new formatting
library
by bugzilla@redhat.com
https://bugzilla.redhat.com/show_bug.cgi?id=2166239
Bug ID: 2166239
Summary: Review Request: ghc-fmt - A new formatting library
Product: Fedora
Version: rawhide
Status: NEW
Component: Package Review
Assignee: nobody(a)fedoraproject.org
Reporter: petersen(a)redhat.com
QA Contact: extras-qa(a)fedoraproject.org
CC: package-review(a)lists.fedoraproject.org
Target Milestone: ---
Classification: Fedora
Spec URL: https://petersen.fedorapeople.org/reviews/ghc-fmt/ghc-fmt.spec
SRPM URL:
https://petersen.fedorapeople.org/reviews/ghc-fmt/ghc-fmt-0.6.3.0-1.fc38....
Description:
A new formatting library that tries to be simple to understand while still
being powerful and providing more convenience features than other libraries
(like functions for pretty-printing maps and lists, or a function for printing
arbitrary datatypes using generics).
A comparison with other libraries:
* 'printf' (from 'Text.Printf') takes a formatting string and uses some type
tricks to accept the rest of the arguments polyvariadically. It's very concise,
but there are some drawbacks – it can't produce 'Text' (you'd have to 'T.pack'
it every time) and it doesn't warn you at compile-time if you pass wrong
arguments or not enough of them.
* <https://hackage.haskell.org/package/text-format text-format> takes a
formatting string with curly braces denoting places where arguments would be
substituted (the arguments themselves are provided via a tuple). If you want to
apply formatting to some of the arguments, you have to use one of the provided
formatters. Like 'printf', it can fail at runtime, but at least the formatters
are first-class (and you can add new ones).
* <https://hackage.haskell.org/package/formatting formatting> takes a
formatting template consisting of pieces of strings interleaved with
formatters; this ensures that arguments always match their placeholders.
'formatting' provides lots of formatters and generally seems to be the most
popular formatting library here. Unfortunately, at least in my experience
writing new formatters can be awkward and people sometimes have troubles
understanding how 'formatting' works.
* <https://hackage.haskell.org/package/fmt fmt> (i.e. this library) provides
formatters that are ordinary functions, and a bunch of operators for
concatenating formatted strings; those operators also do automatic conversion.
There are some convenience formatters which aren't present in 'formatting'
(like ones for formatting maps, lists, converting to base64, etc).
Some find the operator syntax annoying, while others like it.
Koji scratch build:
https://koji.fedoraproject.org/koji/taskinfo?taskID=96949695
--
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
https://bugzilla.redhat.com/show_bug.cgi?id=2166239
1 year