Opened 13 years ago

Last modified 4 years ago

#88 new enhancement

unified and extensible annotations

Reported by: waldmann@… Owned by: none
Priority: normal Milestone:
Version: Keywords:
Cc: Meta Owner:
State: discussion Section: N/A or multiple
Related Tickets:

Description (last modified by ijones)

We have several annotations in current Haskell: deriving, pragmas {-# #-}, {-! !-} (DrIFT), haddock… These are ad-hoc, and not extensible by the programmer.

There are better ways:

For me the important features are

  • An annotation is allowed basically at any declaration,
  • and programmers can define their own annotations,
  • and annotations can also have values.
  • Also, they have a retention policy saying whether they should be visible at compile time or at run time, where compile time is for tools/preprocessors, and visibility at run time is helpful for reflection. (Would need some support from Data.Generics or thereabouts.)

I have brought this proposal up on the mailing list and there was one response.

Change History (8)

comment:1 Changed 13 years ago by ijones

component: HaskellPrimeProposal
Description: modified (diff)

comment:2 Changed 13 years ago by ijones

Description: modified (diff)

comment:3 Changed 13 years ago by ijones

Type: taskenhancement

comment:4 Changed 13 years ago by ijones

adopt: maybe
Owner: changed from ijones to none

comment:5 Changed 13 years ago by john@…

topic: Annotations

comment:6 Changed 13 years ago by john@…

Priority: majorminor

comment:7 Changed 4 years ago by Herbert Valerio Riedel

Milestone:

moving non-milestoned many year old legacy tickets out of the way

comment:8 Changed 4 years ago by Herbert Valerio Riedel

Priority: minornormal

Set default priority (as this confuses Trac otherwise)

Note: See TracTickets for help on using tickets.