FORALL使用して1次のシグネチャを持つ関数があります:、この<a href="https://github.com/kosmikus/SSGEP/blob/master/LectureNotes.pdf">paper</a>で
vreplicate :: forall a n . SNatI n => a -> Vec a n
この署名とforall
を持っていないものの違いは何ですか。
vreplicate :: SNatI n => a -> Vec a n
?私は、forall
がないと暗黙のうちに、全ての型変数に名前をつけるのにはforall
があることを暗示しているという印象を受けました。
私はあなたと同じ印象です。紙が数学的に重い場合は、明示的な表記法を使用して明示的に表示しているだけかもしれません。 – Carcigenicate
@Carcigenicate実際には、いいえ、コンパイルしようとすると違いがあります。 'ScopedTypeVariables'を使うと' forall'とそれ以外のエラーで動作します。あなたが興味を持っている場合のコード:https://gist.github.com/anonymous/b288970d38595be68229 – Ana