Denotational Design

..

Denotational Design is a strong approach to software design applicable to ML languages like Haskell, Elm, F# and OCaml.

I was first introduced to Denotaional Design when I watched a talk by Conal Elliot:

https://www.youtube.com/watch?v=bmKYiUOEo2A (slides)

More references: