A composable way to build algorithmic transformations in F#