En GHCI, ¿por qué el tipo de flecha de funciones `: Kind (->)` incluye signos de interrogación `(->) :: ?? ->?? -> *`? [duplicar

StackOverflow https://stackoverflow.com/questions/5359707

  •  27-10-2019
  •  | 
  •  

Pregunta

Posible duplicado:
Haskell tipo extraño: tipo de (->) es ?? ->?? -> *

En GHCI (versión 7.0.2), si pido el tipo de tipo de función, el resultado tiene signos de interrogación:

Prelude> :kind (->)
(->) :: ?? -> ? -> *

¿Por qué el tipo incluye signos de interrogación en lugar de solo asteriscos? * -> * -> *? ¿Qué significan los signos de interrogación? ¿Por qué otros tipos solo usan asteriscos?

Prelude> :kind (,)
(,) :: * -> * -> *
¿Fue útil?

Solución

los ? y ?? Los tipos se refieren a las extensiones de GHC, específicamente tipos de unboxed. http://hackage.haskell.org/trac/ghc/wiki/intermediatetypes tiene un diagrama que muestra relaciones entre los tipos extendidos ? (todos los tipos posibles), # (tipos sin caja), ?? (Tipos de unboxed en caja o normales: "Mínimo límite superior de # y *"), (#) (tuplas sin caja, que solo se pueden usar en un pequeño número de contextos). (El tipo estándar * se refiere a tipos en caja normales).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top