Hello Ravi,
> Right now I have only a intro level knowledge of haskell but I still
> want to contribute to the project under gsoc.
>
> [snip]
>
> To be able to contribute the project with code I will need to
> familiarize myself more with haskell. I am confident that I will be
> able to do it before the actual coding period starts and contribute
> with whatever I am capable of in the meantime and build the project
> using my previous experience.
>
> I'm sure you are very busy but I was wondering if you you could
> please provide me any pointers on what you are looking in potential
> applicants. Or are there other starter tasks to test applicant's
> skills?
Thanks for your interest in working with Brick!
A couple of things come to mind:
FYI, as the Brick author I'm not actually signed up to be a mentor for
GSOC. The listed mentor is Roman Joost:
https://summer.haskell.org/ideas.html#brick-widgets
However, I am happy to review proposals once you have something
concrete. The content on the above page provides a starting point. But I
think the key is that some experience with Brick and TUI applications
will probably be necessary to generate a specific GSOC proposal. You
might consider contacting Roman to discuss your situation. I've CC'd
Roman on this message.
As far as Haskell experience is concerned, the following will be
necessary to successfully implement any Brick extensions for GSOC:
* Comfort with basic Haskell logistics including package structure,
modules, Cabal files, dependency versioning, Hackage, Haddock API
documentation, and the 'cabal' tool itself
* Comfort with language constructs used heavily in the Brick library and
its demonstration programs: pure functions, monads and monad
transformers, lists, algebraic data types, record constructors,
polymorphism generally, type variables, operator sections, partial
application / closures, user-defined operators, lenses, and probably
other things I am forgetting.
* Comfort with the Brick library itself: idioms, types, naming
conventions, organization, concepts, and the specifics of the API (the
Brick User Guide is a good place to start for this once you have the
above items nailed down).
* Comfort with the Vty library
I hope this helps provide some clarity on where you might need to invest
your energy!
Thanks,
--
Jonathan Daugherty