diff --git a/internal/core/adt/doc.go b/internal/core/adt/doc.go
index ba251b5..26c978e 100644
--- a/internal/core/adt/doc.go
+++ b/internal/core/adt/doc.go
@@ -45,7 +45,7 @@
 // it refers. If the copied value itself contains references we can distinguish
 // two different cases. References that refer to values within the copied
 // reference (not regarding selectors) will henceforth point to the copied node.
-// References that point to outside the referened value will keep refering to
+// References that point to outside the referened value will keep referring to
 // their original value.
 //
 //      a: b: {
diff --git a/internal/core/convert/go.go b/internal/core/convert/go.go
index 98f168e..8aeca32 100644
--- a/internal/core/convert/go.go
+++ b/internal/core/convert/go.go
@@ -117,7 +117,7 @@
 	switch f.Type.Kind() {
 	case reflect.Ptr, reflect.Map, reflect.Chan, reflect.Interface, reflect.Slice:
 		// Note: it may be confusing to distinguish between an empty slice and
-		// a nil slice. However, it is also surprizing to not be able to specify
+		// a nil slice. However, it is also surprising to not be able to specify
 		// a default value for a slice. So for now we will allow it.
 		isOptional = true
 	}
@@ -149,7 +149,7 @@
 	switch f.Type.Kind() {
 	case reflect.Ptr, reflect.Map, reflect.Chan, reflect.Interface, reflect.Slice:
 		// Note: it may be confusing to distinguish between an empty slice and
-		// a nil slice. However, it is also surprizing to not be able to specify
+		// a nil slice. However, it is also surprising to not be able to specify
 		// a default value for a slice. So for now we will allow it.
 		isOmitEmpty = true
 
diff --git a/internal/core/eval/closed.go b/internal/core/eval/closed.go
index c909b43..fcfa52a 100644
--- a/internal/core/eval/closed.go
+++ b/internal/core/eval/closed.go
@@ -63,7 +63,7 @@
 //    }
 //
 // At the point of evaluating `a`, the struct is not yet closed. However,
-// descending into `d` will trigger the inclusion of defintions which in turn
+// descending into `d` will trigger the inclusion of definitions which in turn
 // causes the struct to be closed. At this point, it is important to know that
 // `b` originated from an embedding, as otherwise `e` may not be allowed.
 //
@@ -319,7 +319,7 @@
 	return false
 }
 
-// verifyDefintion reports whether f is a valid member for any of the fieldSets
+// verifyDefinition reports whether f is a valid member for any of the fieldSets
 // with the same closeID.
 func (n *acceptor) verifyDefinition(ctx *adt.OpContext, closeID uint32, f adt.Feature) (ok bool) {
 	for _, o := range n.fields {
diff --git a/internal/core/eval/eval.go b/internal/core/eval/eval.go
index 28fe99b..409eda3 100644
--- a/internal/core/eval/eval.go
+++ b/internal/core/eval/eval.go
@@ -1068,7 +1068,7 @@
 // addStruct collates the declarations of a struct.
 //
 // addStruct fulfills two additional pivotal functions:
-//   1) Implement vertex unification (this happends through De Bruijn indices
+//   1) Implement vertex unification (this happens through De Bruijn indices
 //      combined with proper set up of Environments).
 //   2) Implied closedness for definitions.
 //
