Cabal hooks
Isaac Jones
ijones at syntaxpolice.org
Thu Jan 13 00:32:12 EST 2005
Ross Paterson <ross at soi.city.ac.uk> writes:
> On Tue, Jan 11, 2005 at 02:33:52PM +0200, Krasimir Angelov wrote:
>> Isn't it simpler to change the hooks type to something like:
>>
>> PackageDescription -> IO PackageDescription
>>
>> where the argument is the original description and the result is the
>> possible updated one? This avoids the need of merging and simplifies
>> the library code.
>
> It replaces the need for merging with the need to check that they haven't
> changed the fields they weren't supposed to.
That's not too bad actually; definitely easier than merging, and
conceptually simpler than defining either an
AbstractPackageDescription (so we can actually tell when they've
over-ridden a field) or a new buildinfo type.
Though the advantage of the buildinfo type is that the inability to
over-ride is enforced by the typechecker.
> Other alternatives:
> - have the prehooks return a type other than PackageDescription,
> containing only the fields they're allowed to override. That means
> a different parser for buildinfo files.
> - introduce a variant of writePackageDescription that only writes the
> fields they're allowed to override (or only writes non-empty fields).
This second one is also quite easy and not a bad idea in general.
peace,
isaac
More information about the Libraries
mailing list