多相関数を第一級で取り扱う

2019年12月07日に投稿 • カテゴリ:プログラミング言語 • タグ:HaskellGHC拡張GHC多相関数

今回は,GHC拡張の一つ RankNTypes の紹介をしようと思う.もうちょっとちゃんとまとめたのをいつか Haskell-jp かどっかに投稿したいと思ってる …

続きを読む

type family を使って再帰的 ADT をオープンにする

2019年11月17日に投稿 • カテゴリ:プログラミング • タグ:HaskellGHCGHC拡張

元ネタは Trees that grow . Haskell では代数的データ型 (ADT) を使ってプログミングに使うデータ構造を定義し,その構造を操作するこ …

続きを読む

リテラルをコンパイラ時にチェックする

2019年10月28日に投稿 • カテゴリ:フレームワーク • タグ:HaskellGHCリテラルGHC拡張

Haskell はいくつかのリテラルで型クラスを使用したオーバーロードを許容している.例えば,Haskell で 1 と書いた場合,この型 …

続きを読む

Local Do と型クラス

2019年07月27日に投稿 • カテゴリ:プログラミング言語 • タグ:HaskellGHCGHC拡張do構文型クラス

現在, GHC に 線形型の提案 がされていて活発に議論されている.プロトタイプも ここ から利用可能だ. Docker イメージも利用 …

続きを読む

Call Arity と融合変換

2019年07月26日に投稿 • カテゴリ:プログラミング言語 • タグ:HaskellGHC融合変換コンパイラ最適化

GHC は,最適化のため Call Arity と呼ばれるコード解析を行っている.この解析で,自由変数が何個引数を持っていいかを判定 …

続きを読む

GHC の線形型プロトタイプのお試し環境を作る

2019年06月28日に投稿 • カテゴリ:プログラミング言語 • タグ:Haskell線形型GHCDocker

現在, GHC に 線形型の追加提案 が出ている.その提案に合わせて,プロトタイプも公開されている.内容はあまり詳しく追 …

続きを読む

GHC で LLVM を通したビルドを行う

2019年05月17日に投稿 • カテゴリ:環境構築 • タグ:HaskellGHCLLVMmacOSHomebrew

GHC で LLVM を通してビルドをしたかったので,設定した.その備忘録.

macOS で LLVM を GHC が使えるようにする

GHC が対応してる LLVM の …

続きを読む

GHC IO モナドの中身

2019年05月17日に投稿 • カテゴリ:プログラミング言語 • タグ:HaskellGHCIO

Haskell の IO モナドって,中身どうなってたんだろと気になってて,ちょっと調べてみた.そのメモ.

IO モナドと RealWorld

まずは基本 …

続きを読む

STG Version 2.5 の動作

2019年04月19日に投稿 • カテゴリ:プログラミング言語 • タグ:Haskell抽象機械GHC

先日 STG の動作について説明する機会があったんだが,ちゃんと説明できなかった.で,ちょっとこれじゃまずいって思 …

続きを読む

Functor / Applicative / Monad が表すもの

2019年04月13日に投稿 • カテゴリ:直感 • タグ:HaskellGHCGHC拡張標準ライブラリ

https://kazu-yamamoto.hatenablog.jp/entry/2019/04/11/111238 の記事に触発されて,ちょっと書く気になった.こちらも面白い記事なので,ぜひ参照してほしい …

続きを読む