Modules
This is the main module in this application, it implements a mutex as a GenServer with a notification system to be able to await lock releases.
This module defines a struct containing the key(s) locked with all the
locking functions in Mutex.
Reports a key that could not be locked.
Reports a lock that could not be released or given away.