joeyh at
The reddit thread is gold on this one:
https://www.reddit.com/r/haskell/comments/2yqwgi/type_directed_spell_system_development/
A denotational semantics of spells! -- Faucelme
And if you make your spells form a Lie Algebra, you can have different groups use entirely different magic systems but they'll still interact properly -- Hrothen
Make your spells a nonlinear Lie group defined by a high-dimensional tangent Lie algebra. Hard mode. -- cynicalkane