12
Ai đó có thể giải thích tại sao mã sau đây làm cho GHC 8.0.1 lặp lại mãi mãi khi biên dịch hay là lỗi này?GHC 8.0.1 bị treo. Lỗi giải thích hoặc biên dịch?
{-# 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 _ =()
Tôi không biết, nhưng tài liệu về 'TypeFamilyDependencies' khiến tôi lo sợ họ không sẵn sàng cho thời gian chính. Họ có những hạn chế không tự nhiên mà không ngồi ngay với tôi; Tôi sẽ không bị sốc nếu các nhà phát triển bỏ lỡ một điểm. – dfeuer
Nếu vòng lặp mãi mãi đó chắc chắn là một lỗi – jberryman