I removed a leftover comment (commit a34dc8b5ae10d0e2a7240690e57e24312bd62498)
I think the list comprehensions were much too big. I think readability is much better when using traditional for-loops (commit e1c006e213f26fb6dd9cf406b6e7b849350f6bc7).
Not sure if I like the type annotations (function signature is much harder to read imho). I just left them but I'm not really keen on expanding the use inside this library.
For #12