deniok: (ухмыляюсь)
[personal profile] deniok
Все-таки оставили:
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 ($)
($) :: (a -> b) -> a -> b
> :t undefined
undefined :: a

Date: 2016-06-17 09:27 pm (UTC)
From: [identity profile] migmit.livejournal.com
Буэээ.

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

Date: 2016-06-17 10:47 pm (UTC)
From: [identity profile] deni-ok.livejournal.com
А настоящий тип в стандартном языке - тот, который возвращает :type. То есть, если не подключен -XMagicHash, дающий пользователю доступ к unboxed/unlifted миру, то у нас все представления времени исполнения стандартные
type * = TYPE PtrRepLifted
Зачем тащить весть этот полиморфизм по RuntimeRep эти расширения в уютненький lifted мир? (Я знаю, что они говорят про то, что MagicHash не меняет семантику, но тем не менее он по факту изолирует один мир от другого.)

Profile

deniok: (Default)
deniok

April 2017

S M T W T F S
      1
23 45678
9101112131415
16171819202122
23242526272829
30      

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 25th, 2017 02:52 pm
Powered by Dreamwidth Studios