: ! Haskell OO, , ADT.
List<Foo> Java Foo a => [a] Haskell: forall a . Foo a => [a]. a , , Foo .
Java: , , , Foo. Haskell , . , - , !
... , , , , , 1 - bar. , ! IO() - , ( , ).
xs :: [IO ()]
xs = [bar Bar1, bar Bar2]
, , Haskell:
{-
data AFoo = forall a. Foo a => AFoo a
xs :: [AFoo]
xs = [AFoo Bar1, AFoo Bar2]
main = mapM_ (\(AFoo f) -> bar f) xs
: acknoledge, OO , Haskell. (, chunksOf 50, GADTs). Haskell , , , , " ...", OO, "" Haskell.
1 , , " " .. Java. Haskell Typeable . , .