**Can someone explain to me how the following line compiles?**

```
[1 .. 10] |> List.map string

```

**I expected the following function signature to be in the place of the string.**

('T -> 'U) -> 'T list -> 'U list

**I read the above signature as the following:**

List.map takes a function as input (i.e. ('T -> 'U) ) and yields another function as output (i.e. 'T list -> 'U list).

So how does the type "string" satisfy the required signature for performing a map operation?

NOTE:

I am two months into my journey of learning F#. Also note that I am a LOB developer and NOT a computer scientist.