2013-08-11

yorool_gui: (лысый)
2013-08-11 06:10 pm

А мужики то и не знали

Оказывается в Хаскеле давным давно есть полноценный полиморфизм как в объектных языках. Стал разбираться с ixset и обнаружил. А я-то мучился, как без виртуальных функций жить:

{-# LANGUAGE ExistentialQuantification, StandaloneDeriving #-}
module Main where
data Polymorph = forall b . (Show b) => Polymorph b
deriving instance Show Polymorph
main = do
  let polymorph = [Polymorph "String", Polymorph (1::Int), Polymorph (0.5::Double)]
  putStrLn $ show polymorph