The other option is to wrap the thing decorated in a doc string
@fancy_source_needing_decorator def foo(s): """ put some haskell or DSL stuff in here """
The other option is to wrap the thing decorated in a doc string
Then you don't have to reparse the source, etc etc, but it still gets packaged as a function.