type Foo = int -> int라 두고

let f x = x + 1이면

f는 당연히 int -> int타입으로 나오지 Foo타입으론 안나옴

let f : Foo = fun x -> x + 1

명시적으로 선언해도 우리 똑똑한 컴파일러 성님께서 위랑 똑같이 인식함

let f : Foo =
let foo x = x + 1
foo

이래야 Foo로 인식함 위같이해도 쓰는데 문제는 없긴한데
Foo로 안나오면 alias를 쓰는 의미가 없음


그래서 type Foo = Foo of (int -> int) 같이 쓰기도 하더라