У меня есть этот фрагмент кода в ML:
local
fun unfolder( [] , n ) = []
| unfolder( l::ls, n ) = (n, l) :: unfolder( ls, n )
in
fun flat list = unfolder(list, 1)
end;
выдает ошибку:
unexpected exception (bug?) in SML/NJ: EA [EA]
raised at: ../../MLRISC/x86/mltree/x86.sml:417.32-417.34
../compiler/Basics/stats/stats.sml:198.40
../compiler/Basics/stats/stats.sml:198.40
../compiler/Basics/stats/stats.sml:198.40
../compiler/TopLevel/interact/evalloop.sml:44.55
но когда я изменяю its (n, l) to (n, l:int)
, он работает, а когда на (n, l:'a)
, может кто-нибудь объяснить, почему полиморфный тип не работает, заранее спасибо