Здесь уже есть много отличных ответов, я просто хочу добавить к разговору еще один способ размышления об этом.
'->' означает функцию.
'a ->' b - это функция, которая берет a и возвращает a b
('a *' b) -> ('c *' d) - функция который принимает кортеж типа ('a,' b) и возвращает кортеж ('c,' d). Например, int / string возвращает float / char.
То, где это становится интересным, находится в каскадном случае 'a ->' b -> 'c. Это функция, которая принимает 'a и возвращает функцию (' b -> 'c), или функцию, которая принимает' b -> 'c.
Так что если вы напишите: let fxyz = ()
Типом будет f: 'a ->' b -> 'c -> unit, поэтому, если вы применили только первый параметр, результат будет карри функция 'b ->' c -> '.
Oleg Sych describes how to do this here: Understanding T4: Preprocessed Text Templates. Note that it looks like you'll need Visual Studio 2010 to generate a preprocessed Text Template, but you'll be able to host the preprocessed Text Template wherever you like - including within your WinForms application.