Eliminating bugs with dependent Haskell (experience report) | Synapse