12月
6
GHC言語拡張勉強会 -Type application-
TypeApplications #1
イベントの説明
概要
Glasgow Haskell Compiler (以下 GHC) には、様々な言語拡張機能が存在します。
この勉強会では "Glasgow Haskell Compiler User's Guide" (以下 "GHC User's Guide") をベースに、 主に Type application に関する言語拡張の理解を深めることを目的としています。
目的
GHC 言語拡張の Type application に関する拡張の理解:
TypeApplications
備考 (2019-12-01 現在)
-
ScopedTypeVariables
: 関連する内容は取扱います -
AllowAmbiguousTypes
: 要検討対象 -
PartialTypeSignatures
: 検討対象 -
Typed Holes: 検討対象
-
Kind に関する内容: Kind 関係の言語拡張を後日取扱う際に、改めて振り返る予定です。そのため、あっさりした扱いになる可能性が高いです。
想定する参加者
- Haskell (GHC) のソースコードにおいて
f @t e
という形式を見たことがある方 - "GHC User's Guide" の 'GHC Language Features' を読んでいない方
進め方
主に Discord のグループDM (10人まで) の音声通話と画面共有を用いて、"GHC User's Guide" (GHC 8.8.1) の PDF などを管理者が読み進めます。
その他、連絡事項や相談内容があれば、Discord のテキストチャットや connpass のイベント案内にてお伝え致します。
第01回の内容
"GHC User's Guide" (GHC 8.8.1 に準拠):
'9.19. Visible type application': TypeApplications
-
'3.2.1. Language':
ghc-proposals
の "#15: Type-level type applications" の実装, 対象外 -
'9.19.1 Inferred vs. specified type variables'
-
'4.7 GHCi commands':
:type +v <expr>
: (注意) 下記のghc-proposals
#48: "Clean up printing of foralls" によって無くなる予定のコマンド -
'6.1.6. Verbosity options':
-
関連
-
"Thinking with Types -Type-Level Programming in Haskell-" (Sandy Maguire, Leanpub) の4章
-
原論文:
-
ghc-devs
:- "VisibleTypeApplication and AllowAmbiguousTypes": 上記論文で
AllowAmbiguousTypes
を自動的に有効にする旨の注釈が付記されているが、実際はそうなっていない理由に関わるスレッド
- "VisibleTypeApplication and AllowAmbiguousTypes": 上記論文で
-
ghc-wiki-mirror
-
ghc-proposals
-
Accepted
-
#26: "Explicit specificity in type variable binders": 推論させる型変数を明示的に記述することができるための記法, 次回以降
-
#31: "Type Applications in Patterns", 下記 request #291 にて継続して議論中の内容あり, 対象外
-
#48: "Clean up printing of foralls":
forall
で量化された変数の表示および:type
の表示の変更 -
#50: "Binding type variables in lambda-expressions, 下記 request #238 にて一部修正と新規の言語拡張追加に関する議論あり, 対象外
-
-
request:
-
#218: "-XApplyingVia: 対象外
- 参考: Note [Newtype-deriving instances]:
ghc/compiler/typecheck/TcGenDeriv
, GND/DerivingVia が内部で行なっていることについて
- 参考: Note [Newtype-deriving instances]:
-
#238: Introduce -XTypeAbstractions, limiting -XScopedTypeVariables: 上掲 #50: "Binding type variables in lambda-expressions の一部修正と追加の言語拡張の提案, 対象外
-
#291: "Simplify scoping for type applications in patterns", 上掲 #31 "Type Applications in Patterns" の merge 後に継続して議論中, 対象外
-
-
-
ghc
(2019-12-09 追記: branch をghc-8.8.1-release
に修正しました)-
Issues:
label: TypeApplications
-
Note [VarBndrs, TyCoVarBinders, TyConBinders, and visibility]: 変数の推論・指定と visible について
-
Note [Default method type signatures must align]:
DefaultSignatures
に関して内部で行なっていることについて, 対象外- Note [Default methods in instances]: 上記の詳細(?)
-
testsuite/tests/
:TypeApplications
専用のディレクトリが存在しないため、必要に応じて適宜参照するかも
-
注意事項
内容について
- 主催者は Type applications に関する内容に 精通しているわけではありません
- "GHC User's Guide" などにおいて、「目的」欄に記述していない言語拡張に関して言及されていることがあります。それらの言語拡張について後に取扱うことを予定している場合は、その 言語拡張に関連する内容は流し読み します。
進め方について
- 毎回模範的に準備して進めるつもりはありません。読みながら内容を理解していくというスタンスです。
- 模範的なプランがあり、それに基づいて進行するわけではありません (場当たり的になると思います)
- 切りが良いと判断した場合は、早めに終える ことがあります。 切りが悪いと判断した場合は、切りが良いと判断できるところに到達するまで 延長 することがあります。
日時
-
毎週金曜日 22:00 ~ 23:30
-
取扱う内容や範囲次第により、年越し後も継続します
資料 資料をもっと見る/編集する
資料が投稿されると、最新の3件が表示されます。