It would be great if the functions were documented in a way to show what these gates do and why they exist anyway. Not everybody has some pre education on quantum computing, right?
My coding followed a specific talk which didn't go at all into why these particular gates are useful.
Once I grok that, I'll improve the code.