Structuring F# Programs with Abstract Data Types [Presentation on Vimeo]

I'm hoping this presentation about structuring functional programs could generate some interesting discussion here :) I gave this talk at the New York City F# meetup not too long ago.

Synopsis: A question many people who are new to functional programming ask is, "what does a functional program look like?" Of course, they're not asking about the appearance of individual functions. Instead they are asking what the structure of a functional program should look like, in the abstract. And further, how to go about building one. This talk presents a powerful, composable, and general means of building well-structured functional programs, specifically in F#. Presented is a singular, simple functional 'design pattern' that can be applied recursively to architect principled F# programs. Like any pattern, it's applicability is not total. However, for those looking start architecting beautiful functional programs, frameworks, and engines in F#, this is a great first approach to consider.

Check it out here.

Slides and examples are also available here.