When I look up answers for things such as "What is a free monad", I see a lot of fleeting references to category theory in the answers.
With everyday imperative languages like C#, it feels that deeper understanding is linked to understanding what the compiler, CLR etc. are doing to your code.
With Haskell it seems like maths is the key the deeper understanding.
Is that an accurate assessment?
Would learning category theory help make learning about the mechanics of these data / execution structures a lot easier?
The long answer - read this blog! Declarative languages and category theory go largely hand in hand.
http://bartoszmilewski.com/