Fundamental Components of Deep Learning: A category-theoretic approach | Synapse