diff --git a/misc_docs/syntax/language_type_parameter.mdx b/misc_docs/syntax/language_type_parameter.mdx
new file mode 100644
index 000000000..a10f66f79
--- /dev/null
+++ b/misc_docs/syntax/language_type_parameter.mdx
@@ -0,0 +1,56 @@
+---
+id: "type-parameter"
+keywords: ["type", "parameter", "generics", "placeholder"]
+name: "'a"
+summary: "This is a `type parameter`."
+category: "languageconstructs"
+---
+
+Types may be declared with [type parameters](/docs/manual/latest/type#type-parameter-aka-generic) (also known as _generics_ in other languages) to create generalized versions of those types.
+
+### Example with one type parameter
+
+
+
+```res
+type point2D<'a> = ('a, 'a)
+
+let intPoint: point2D = (1, 2)
+let floatPoint: point2D = (1.0, 2.0)
+```
+
+```js
+var intPoint = [1, 2];
+var floatPoint = [1.0, 2.0];
+```
+
+
+
+### Example with multiple type parameters
+
+
+
+```res
+type either<'a, 'b> = This('a) | That('b)
+
+let value1: either = This(123)
+let value2: either = That("Hello")
+```
+
+```js
+var value1 = {
+ TAG: /* This */ 0,
+ _0: 123,
+};
+
+var value2 = {
+ TAG: /* That */ 1,
+ _0: "Hello",
+};
+```
+
+
+
+### References
+
+- [Type parameters](/docs/manual/latest/type#type-parameter-aka-generic)