Quand je rentre commande :t
dans GHCi Je vois le type polymorphes:Comment imprimer le type de fonction (ou valeur) polymorphe dans ghci avec des règles de type par défaut appliquées?
ghci> :t 42
42 :: Num t => t
ghci> :t div
div :: Integral a => a -> a -> a
Mais après avoir fait ces fonctions évalue je vois en raison des règles en défaut de type. Y a-t-il une commande ou une capacité à observer dans ghci comment le type sera changé après que les règles de défaut de type aient été appliquées selon le rapport de Haskell et/ou l'implémentation de ghc?
Comment voyez-vous le résultat des règles par défaut de type? ': t 42 \' div \ '2' montre' Integral a => a', ainsi que les résultats de let-bindings, etc. –
@ n.m. Je parlais du résultat réel. Comme '2^100 \' div \ '2' affiche' 633825300114114700748351602688' parce que le type par défaut est 'Integer'. Même si 'ghci' dit que le type de cette constante est polymorphe, en réalité c'est spécifique et je veux voir quel type monomorphe est utilisé. – Shersh
@Shersh C'est juste GHCi. Le REPL choisit un type ('Integer', dans ce cas) car il doit afficher quelque chose. Dans le code "réel", il sera polymorphe jusqu'à ce que le contexte prenne un type. –