Type synonym impossible to fully apply in type application

オープン
#4,531 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
領域
compilers

調査の方向性

Start with the try.purescript reproduction and compare the annotation form y with the type application form z in PureScript 0.15.13. Investigate how type synonyms and kind inference are handled for type applications; done means z type-checks like y while the existing G example continues to work.

索引モデルが issue の本文から書いたものです。

説明

type: bug

Description

Possible kind inference funkiness going on with synonyms in type applications.

Using the same type expression in an annotation vs a type application works differently.

To Reproduce

try purescript

module Main where
import Prelude
import Type.Proxy (Proxy(..))

-- `i` will be determined when `x` is concrete
type F :: forall i . Row i -> Row i
type F x = ()

-- type checks; `i ~ Type`
y :: Proxy (F (() :: Row Type))
y = Proxy

-- fails:
--   Type synonym Main.F is partially applied.
--   Type synonyms must be applied to all of their type arguments.
z :: Proxy (F (() :: Row Type))
z = Proxy @(F (() :: Row Type))

type G = F (() :: Row Type)
-- also works
g :: Proxy G
g = Proxy @G

Expected behavior

z would also pass type checking.

PureScript version

0.15.13

主要言語
Haskell
スター
8.9k
フォーク
575
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

purescript/purescript のほかの issue

purescript/purescript の issue をすべて見る

似ている issue

Haskell の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。