GHC拡張
Haskell98やHaskell2010の仕様を拡張した機能を使える
プラグマ{-# LANGUAGE HogeHoge #-}で指定する
code:hs
{-# LANGUAGE OverloadedStrings #-} module Main where
--
分類もされている
起動時に設定する
$ ghci -XNoImplicitPrelude -XStrict --make Main.hs
-Xの後ろに読み込む拡張名を続ける
-XNoのあとに無効にする拡張名を続ける
起動後に読み込む
有効にする
:set -XImplicitPrelude
無効にする
:set -XNoImplicitPrelude
:unset -XImplicitPrelude
$ ghc --supported-languages
一覧見れる
noXXXも表示されるので、単にwcしても倍ぐらいになる
拡張全体の大まかな分類
(Ordinary) Extensions
一般的なGHC拡張
それぞれの拡張に対してEnabledとDisabled用のものがある
雑に言うと、↓の2つに含まれないもの全て
そのproject内で使われている全ての拡張を一覧する
GHC拡張とは別にある
cabalは他のコンパイラでも使われるので
参考
GHC拡張全体の概要
拡張の大別
拡張が有効になるフロー