generated at
rank-2 type
rank-1 typeな関数をfirst class objectとして扱う関数
HaskellではRankNTypes拡張が必要
PureScriptならdefaultで使用できる


hs
{-# LANGUAGE RankNTypes #-} foo' :: (forall a. [a] -> Int) -> Int runST :: (forall s. ST s a) -> a f4 :: Int -> (forall a. a -> a)
引数の関数が forall で囲われている