Microsoft Research Cambridge runs a PhD student internship programme is mainly for graduate students in mid-PhD. This is not an absolute requirement; for example, post-PhD is certainly possible. It has an annual cycle, with applications due by end Feb. The internship itself is for 12 weeks, usually over the summer, but the precise timing is flexible. You don't need to be an EU citizen.
Nowadays internships typically need to be focused on one of the lab's big projects, and that mostly doesn't include GHC. MSRC internship opportunities are advertised here
What is an internship?
An internship is a paid post at Microsoft Research in Cambridge (MSRC). You get to work on a project agreed, usually in advance, with your MSRC sponsor. Both parties benefit. You get to work in a leading-edge research lab, with fantastic people floating around all the time. We get the benefit of your hard work, and perhaps the start of a collaborative relationship.
In principle, Microsoft owns any intellectual property you generate, but this isn't relevant for an open-source project like GHC. You're also strongly encouraged to publish your work as a paper, often written jointly with your sponsor.
Who is eligible?
Internships are aimed primarily at students currently studying for a PhD. It's not a cast-iron requirement, but if you are pre-PhD you'd need to argue that you were rather exceptional in some way.
Past internships on Haskell and GHC
Here are some past projects (in approximate date order):
2014: Joachim Breitner made foldl a good consumer wrt. list fusion
2013: Jan Stolarek worked on Cmm optimizations and added new primops
2013: Richard Eisenberg implemented closed type families
2010: David Terei worked on the LLVM back end
2008: Thomas Schilling worked on the GHC API, and Scion