summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorVladislav Zavialov <vlad.z.4096@gmail.com>2020-06-13 23:28:11 +0300
committerVladislav Zavialov <vlad.z.4096@gmail.com>2020-06-14 14:14:49 +0300
commitf86ccecf5e352fb14375ff012a308b9b77463245 (patch)
tree33c6a18a63e6b91ed81f198106f0e4918ac45b4f /compiler
parenta31218f7737a65b6333ec7905e88dc094703f025 (diff)
downloadhaskell-wip/known-nat-docs.tar.gz
User's Guide: KnownNat evidence is Naturalwip/known-nat-docs
This bit of documentation got outdated after commit 1fcede43d2b30f33b7505e25eb6b1f321be0407f
Diffstat (limited to 'compiler')
-rw-r--r--compiler/GHC/Tc/Instance/Class.hs8
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/GHC/Tc/Instance/Class.hs b/compiler/GHC/Tc/Instance/Class.hs
index 43c2092c70..aec5c85e20 100644
--- a/compiler/GHC/Tc/Instance/Class.hs
+++ b/compiler/GHC/Tc/Instance/Class.hs
@@ -259,12 +259,12 @@ Note [KnownNat & KnownSymbol and EvLit]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A part of the type-level literals implementation are the classes
"KnownNat" and "KnownSymbol", which provide a "smart" constructor for
-defining singleton values. Here is the key stuff from GHC.TypeLits
+defining singleton values. Here is the key stuff from GHC.TypeNats
class KnownNat (n :: Nat) where
natSing :: SNat n
- newtype SNat (n :: Nat) = SNat Integer
+ newtype SNat (n :: Nat) = SNat Natural
Conceptually, this class has infinitely many instances:
@@ -291,10 +291,10 @@ Also note that `natSing` and `SNat` are never actually exposed from the
library---they are just an implementation detail. Instead, users see
a more convenient function, defined in terms of `natSing`:
- natVal :: KnownNat n => proxy n -> Integer
+ natVal :: KnownNat n => proxy n -> Natural
The reason we don't use this directly in the class is that it is simpler
-and more efficient to pass around an integer rather than an entire function,
+and more efficient to pass around a Natural rather than an entire function,
especially when the `KnowNat` evidence is packaged up in an existential.
The story for kind `Symbol` is analogous: