12
次のコードがGHC 8.0.1をコンパイル時に永久にループさせる理由、またはこれがバグである理由を説明できますか?GHC 8.0.1がハングします。説明またはコンパイラのバグ?
{-# LANGUAGE TypeFamilyDependencies #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE AllowAmbiguousTypes #-}
main = return $ f (Just 'c')
data D1 x
data D2
type family TF x = t | t -> x
type instance TF (D1 x, a) = Maybe (TF (x, a))
type instance TF (D2,()) = Char
f :: TF (x, a) ->()
f _ =()
私には分かりませんが、 'TypeFamilyDependencies'のドキュメントは、彼らがプライムタイムの準備ができていないことを恐れています。彼らは私と一緒に座っていない不自然な制限があります。開発者がスポットを逃した場合、私はショックを受けません。 – dfeuer
それが永遠にループするならば、間違いなくバグです – jberryman