HacFreiburg2017/ListOfProjects

From HaskellWiki
< HacFreiburg2017
Revision as of 14:33, 4 August 2017 by AlexanderThiemann (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Beginner Projects

ghc/haddock (Alex B.)

Revamp the haddock type-class specializer

For convenient display of type-class instances haddock inserts the instance head into the type-class methods type signatures. However in the current implementation haddock does no alpha-conversion on type variables if they are not bound by forall. See https://github.com/haskell/haddock/issues/654 for an example.

This is an easy starter ticket. Changes would be pretty local `rename` (see https://github.com/haskell/haddock/blob/master/haddock-api/src/Haddock/Interface/Specialize.hs#L229) and could be done in a few hours. If you are interested in this task talk to Alex Biehl.

Handle `pattern` exports

The PatternSynonyms extension introduced `pattern` exports which can be used to export single constructors of a data type without the data type itself. Currently when haddock sees a name in an export list it tries to find its corresponding declaration. From an ASTs viewpoint single data constructors do not have a declaration. Instead they are nested in its owning data declaration. See https://github.com/haskell/haddock/issues/653 for an example.

A fix would try to beef up `findDecl` to handle the case of a data constructor name by returning the owning data declaration (see https://github.com/haskell/haddock/blob/master/haddock-api/src/Haddock/Interface/Create.hs#L701). `mkExportDecl` then would prepare the constructor for rendering. If you are interested in this task talk to Alex Biehl.

Finish --show-interface

When debugging it is commonly needed to look into the generated haddock-interface files. https://github.com/haskell/haddock/pull/645 laid the groundwork for such a feature. It adds a command line parameter which dumps an interface file to json. If you are interested in this task talk to Alex Biehl.

Qua-Kit (Artem)

https://github.com/achirkin/qua-kit

Writing Documentation for Haskell Packages (David, Franz)

Spock (Alex T.)

yarn2nix / yarn-lock

@Profpatsch (twitter), Profpatsch (#freenode)

I’m writing a parser for yarn.lock files (megaparsec); they are parsed into a multi-keyed map, decycled and then put into nix files. Git dependencies are another WIP, since a prefetch pass is needed.