본인 하스켈 씹초짜라 하는 질문임
sequence, length, head 타입 보니까
sequence :: (Traversable t, Monad m) => t (m a) -> m (t a)
length :: Foldable t => t a -> Int
head :: [a] -> a
이렇게 되어 있던데 얘네가 맞물리려면
sequence :: [[Int] -> Int] -> [Int] -> [Int]
length :: [Int] -> Int
head :: [Int] -> Int
이런식으로 타입클래스나 임의의 타입이 구체적인 타입으로 정해져야하잖아
이런 과정을 뭐라고 부름? 그냥 타입추론임?
type application
function application은 값을 적용하는거고 type application은 타입을 적용하는거라고 보면 됨.
id :: forall a. a -> a 면 id 1 은 사실 id @Int 1 이고 @Int는 Int라는 타입을 id에 적용하는 문법임. 하스켈에서 직접 쓰려면 익스텐션 필요하고, 보통은 그냥 추론됨
우리말로 하면 타입 적용이라고 하면 되나
님이 말하는것 자체는 instantiation 이라고 하는게 더 맞을것 같음