Our paper has been accepted for the 2015 Mathematics of Program Construction Conference:

Polynomial Functors Constrained by Regular Expressions

http://dept.cs.williams.edu/~byorgey/pub/type-matrices.pdfIt's based on some blog posts from a couple of years ago and shows how to define a tree type in a language like Haskell where the leaves of the tree are constrained to match a regular expression. A basic example that many are familiar with is the type of lists where the elements alternate between two types. The picture corresponds to an example of a binary tree with regular expression b*1a* where 1 is the type with just one inhabitant so it functions as a "hole". These types have the property that it's completely impossible to build a tree that fails to satisfy the constraint.

As a side effect it also shows how you can think of Conor McBride's Jokers and Clowns paper as really being about divided differences (ie. (f(x)-f(y))/(x-y)) applied to types, even though you can't literally divide types:

https://personal.cis.strath.ac.uk/conor.mcbride/Dissect.pdfSadly it's hard to find a programming language that can truly automate this process, especially as it involves matrices whose entries are types. Brent and I both tried independently with Agda, but even with dependent types we got stuck. But that doesn't stop you using the paper to hand craft the appropriate type. (I guess Template Haskell would work fine but that's cheating.)