Skip to main content Skip to navigation

Finnbar Keating

Hi, I'm Finnbar (they/them), a PhD student supervised by Dr Gihan Mudalige (2020-2024). My work considers the use of functional programming (particularly Haskell) in low-level code, as to verify it more easily and thus prevent errors in contexts where they are particularly costly.

I also did my undergraduate degree (MEng Computer Science, first-class) here at Warwick (2016-2020).

Research Interests

My PhD work focuses on working with the abstraction of memory in low-level languages - storage locations which contain some information and can be mutated as part of program execution - in pure functional languages such as Haskell. While Haskell can work with memory from lower level languages like C, you have to explicitly order memory accesses by writing your code in an imperative style; this is not ideal in a pure functional language.

As such, we look at alternatives for working with memory in a more functional style. My current plan is to use ideas from functional reactive programming - which allows you to declare how data sources affect each other - to observe some memory cell and perform operations on related memory cells when that cell changes. This means that you do not have to specify an order of execution, just relationships between memory operations. An example of existing work in this area is the Copilot language, which partially explores this idea by adding declarative runtime checks written in Haskell to existing C code.

My general research interests focus around effect systems (particularly graded monads), functional reactive programming, type-level programming and foreign function interfaces.

Publications

Keating, Finnbar and Gale, Michael B. (2021)

Graded Monads and Type-Level Programming for Dependence Analysis. (pdf)

To be published in Haskell Symposium '21. Will be available at DOI 10.1145/3471874.3472981.

Conferences and Workshops

Date Conference - Location Contribution
2021
Aug 2021 Haskell Symposium '21 - Online (South Korea) Talk (video, slides coming soon)
April 2021 Midlands Graduate School 2021 - Online (Sheffield) Attended
March 2021 BCTCS 2021 - Online (Liverpool) Talk (slides with speaker notes, abstract)
2020
December 2020 WPCCS 2020 - Online (Warwick) Attended
2018-2019 (as undergraduate)
December 2019 WPCCS 2019 - Warwick Attended
September 2018 S-REPLS 10 - Birkbeck, University of London Attended

Teaching

I have taught on the following modules. This has involved teaching in labs and marking coursework.

  • Functional Programming (CS141): 2019-20 (as an undergraduate), 2020-21
  • Compiler Design (CS325): 2020-22 (only teaching labs)
  • Formal Systems Development (CS412): 2021-22

Other Interests

I play trombone (grade 8) and bass trombone, playing in Warwick Big Band and Wind Orchestra before the pandemic. (I am hoping to get back to playing music in a group once it is safe to do so!)

I have also been involved in the running of Warwick Tabletop Games and Roleplaying Society for the past three years, taking a variety of positions in the Tabletop Exec (Comms Officer 2018-19, Secretary 2019-20, President 2020-21 and now Web Admin 2021-22).

This has involved the organisation of most of their special events in my time as an Exec member - everything from megagames (one of which won an SU award) to two online charity streams (Tabletop Radio 2020 and 2021, which raised £600 and £2048 respectively for LGBT+ charities) and even an escape room. These have involved organising teams of event runners, use of technical skills in both streaming setups and building bespoke software for events, and using a kazoo to raise a surprising amount of money1.

1 Perhaps most surprisingly of all, none of this money was on the condition that I stopped playing kazoo.

Contact me

Email: f.keating [at] warwick.ac.uk