ã¡ãªã¼ã¯ãªã¹ãã¹ ã¯ããã¯ãªã¹ãã¹ã¤ãã§ãã æ¥æ¬ã®ã«ããã«ã¯ã¯ãªã¹ãã¹é ã«ãªãã¨ç«¶ã£ã¦ã¢ã³ã¢ã³ãã ãã¨è¨ãã¾ã1ã®ã§ãä»å¹´ã®ã¯ãªã¹ãã¹ã¯ãä¸äººã®æ¹ãæ¯éã¢ã³ã¢ã³ãã¾ãããã ã¢ã³ã¢ã³? ã¢ã³ã¢ã³ã¨è¨ãã°ããã¡ããghcã®ANNãã©ã°ãã§ããã Template Haskellããã§ãè¦ãäºãåºæ¥ãæ§ã«ãªã£ã¦ç¾å³ã¿å¢ãã¦ããã¨æãã®ã§ãè²ã ãªæããè¦ãã¦ã¿ã¾ãããã ANNãã©ã°ã? ANNãã©ã°ãã¯ãå¤ãåãã¢ã¸ã¥ã¼ã«ã«æ³¨éãå ¥ããçºã®ãã©ã°ãã§ãã module Foo where {-# ANN module ("annotation" :: String) #-} -- ã¢ã¸ã¥ã¼ã«ã«å¯¾ãã注éãimportã®åã«ã¯æ¸ããªãã£ã½ããä¸ä¾¿â¦â¦ data Foo = Foo {-# ANN type Foo (2 :: Int) #-} -- åã«å¯¾ãã注é {-# ANN type F
{{#tags}}- {{label}}
{{/tags}}