Кишки наружу

Jun 18, 2016 00:17

Все-таки оставили:
GHCi> :i ($) ($) :: forall (r :: GHC.Types.RuntimeRep) a (b :: TYPE r). (a -> b) -> a -> b -- Defined in `GHC.Base' infixr 0 $ GHCi> :i undefined undefined :: forall (r :: GHC.Types.RuntimeRep) (a :: TYPE r). GHC.Stack.Types.HasCallStack => a -- Defined in `GHC.Err' Хорошо хоть
> :t ( Read more... )

haskell, ghc 8

Leave a comment

Comments 2

migmit June 17 2016, 21:27:26 UTC
Буэээ.

А второе - это не "хорошо хоть", а ещё большее "буэээ". Это именно то, что меня так раздражает в Scala: документация порой нагло врёт, и нужно предпринимать дополнительные действия, чтобы выяснить настоящий тип того или иного значения.

Reply

deni_ok June 17 2016, 22:47:15 UTC
А настоящий тип в стандартном языке - тот, который возвращает :type. То есть, если не подключен -XMagicHash, дающий пользователю доступ к unboxed/unlifted миру, то у нас все представления времени исполнения стандартные

type * = TYPE PtrRepLifted
Зачем тащить весть этот полиморфизм по RuntimeRep эти расширения в уютненький lifted мир? (Я знаю, что они говорят про то, что MagicHash не меняет семантику, но тем не менее он по факту изолирует один мир от другого.)

Reply


Leave a comment

Up