Canvas (2D context) drawing library created with a functional influence