diff --git a/docfx.json b/docfx.json
index 1023f6453b50f..bfce39b76d833 100644
--- a/docfx.json
+++ b/docfx.json
@@ -203,6 +203,8 @@
"docs/visual-basic/language-reference/error-messages/**/**.md": "vb-diagnostics"
},
"titleSuffix": {
+ "docs/fsharp/tutorials/**/**.md": "F#",
+ "docs/fsharp/language-reference/**/**.md": "F#",
"docs/core/additional-tools/**.md": ".NET Core",
"docs/core/build/**.md": ".NET Core",
"docs/core/deploying/**.md": ".NET Core",
@@ -213,6 +215,10 @@
"docs/core/tools/**.md": ".NET Core CLI",
"docs/core/tutorials/**.md": ".NET Core",
"docs/core/versions/**.md": ".NET Core"
+ },
+ "ms.custom": {
+ "docs/fsharp/tutorials/**/**.md": "seodec18",
+ "docs/fsharp/language-reference/**/**.md": "seodec18"
}
},
"dest": "_site",
diff --git a/docs/fsharp/language-reference/abstract-classes.md b/docs/fsharp/language-reference/abstract-classes.md
index 6fad2282c234c..5b48e11043f06 100644
--- a/docs/fsharp/language-reference/abstract-classes.md
+++ b/docs/fsharp/language-reference/abstract-classes.md
@@ -1,5 +1,5 @@
---
-title: Abstract Classes (F#)
+title: Abstract Classes
description: Learn about F# abstract classes, which leave some or all members unimplemented and represent common functionality of a diverse set of object types.
ms.date: 05/16/2016
---
@@ -54,4 +54,4 @@ Area of Circle: 78.539816
- [Classes](classes.md)
- [Members](members/index.md)
- [Methods](members/methods.md)
-- [Properties](members/Properties.md)
+- [Properties](members/Properties.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/access-control.md b/docs/fsharp/language-reference/access-control.md
index 9f2238b1d1dc6..8b43fa77b22a8 100644
--- a/docs/fsharp/language-reference/access-control.md
+++ b/docs/fsharp/language-reference/access-control.md
@@ -1,5 +1,5 @@
---
-title: Access Control (F#)
+title: Access Control
description: Learn how to control access to programming elements, such as types, methods, and functions, in the F# programming language.
ms.date: 05/16/2016
---
@@ -49,4 +49,4 @@ The following code tests the accessibility of the types created in `Module1.fs`.
## See also
- [F# Language Reference](index.md)
-- [Signatures](signatures.md)
+- [Signatures](signatures.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/active-patterns.md b/docs/fsharp/language-reference/active-patterns.md
index 1a9d99bfc0bae..a4d4d41b8e541 100644
--- a/docs/fsharp/language-reference/active-patterns.md
+++ b/docs/fsharp/language-reference/active-patterns.md
@@ -1,5 +1,5 @@
---
-title: Active Patterns (F#)
+title: Active Patterns
description: Learn how to use active patterns to define named partitions that subdivide input data in the F# programming language.
ms.date: 05/16/2016
---
@@ -125,4 +125,4 @@ Hello, George!
## See also
- [F# Language Reference](index.md)
-- [Match Expressions](match-expressions.md)
+- [Match Expressions](match-expressions.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/arrays.md b/docs/fsharp/language-reference/arrays.md
index 836c0f5b31189..d51d716f145c0 100644
--- a/docs/fsharp/language-reference/arrays.md
+++ b/docs/fsharp/language-reference/arrays.md
@@ -1,5 +1,5 @@
---
-title: Arrays (F#)
+title: Arrays
description: Learn how to create and use arrays in the F# programming language.
ms.date: 05/16/2016
---
@@ -412,4 +412,4 @@ The module [`Array.Parallel`](https://msdn.microsoft.com/library/60f30b77-5af4-4
## See also
- [F# Language Reference](index.md)
-- [F#; Types](fsharp-types.md)
+- [F# Types](fsharp-types.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/assertions.md b/docs/fsharp/language-reference/assertions.md
index 72e9bebd9557f..8cf91f169fab4 100644
--- a/docs/fsharp/language-reference/assertions.md
+++ b/docs/fsharp/language-reference/assertions.md
@@ -1,5 +1,5 @@
---
-title: Assertions (F#)
+title: Assertions
description: Learn how to use the 'assert' expression as a debugging feature for testing expressions in the F# programming language.
ms.date: 05/16/2016
---
@@ -34,4 +34,4 @@ The following code example illustrates the use of the `assert` expression.
## See also
-- [F# Language Reference](index.md)
+- [F# Language Reference](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/asynchronous-workflows.md b/docs/fsharp/language-reference/asynchronous-workflows.md
index 4f092e330c684..36562dbb51068 100644
--- a/docs/fsharp/language-reference/asynchronous-workflows.md
+++ b/docs/fsharp/language-reference/asynchronous-workflows.md
@@ -1,5 +1,5 @@
---
-title: Asynchronous Workflows (F#)
+title: Asynchronous Workflows
description: Learn about support in the F# programming language for performing computations asynchronously, which execute without blocking execution of other work.
ms.date: 05/16/2016
---
@@ -63,4 +63,4 @@ The `runAll` function launches three asynchronous workflows in parallel and wait
- [F# Language Reference](index.md)
- [Computation Expressions](computation-expressions.md)
-- [Control.Async Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.async-class-%5bfsharp%5d)
+- [Control.Async Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.async-class-%5bfsharp%5d)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/attributes.md b/docs/fsharp/language-reference/attributes.md
index 29053876bf8eb..c3256ab400e47 100644
--- a/docs/fsharp/language-reference/attributes.md
+++ b/docs/fsharp/language-reference/attributes.md
@@ -1,5 +1,5 @@
---
-title: Attributes (F#)
+title: Attributes
description: Learn how F# Attributes enable metadata to be applied to a programming construct.
ms.date: 05/16/2016
---
@@ -85,6 +85,7 @@ Although you do not usually need to specify the attribute target explicitly, val
| type |
+
```
[]
type MyStruct =
@@ -99,4 +100,4 @@ Although you do not usually need to specify the attribute target explicitly, val
## See also
-- [F# Language Reference](index.md)
+- [F# Language Reference](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/basic-types.md b/docs/fsharp/language-reference/basic-types.md
index 51b35d0f96610..ef9eff8cd1e6a 100644
--- a/docs/fsharp/language-reference/basic-types.md
+++ b/docs/fsharp/language-reference/basic-types.md
@@ -1,5 +1,5 @@
---
-title: Basic Types (F#)
+title: Basic Types
description: Discover the fundamental basic types that are used in the F# language.
ms.date: 07/09/2018
---
@@ -33,4 +33,4 @@ This topic lists the basic types that are defined in the F# language. These type
## See also
-- [F# Language Reference](index.md)
+- [F# Language Reference](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/byrefs.md b/docs/fsharp/language-reference/byrefs.md
index fc5b939cc5b3d..a56bafca204a1 100644
--- a/docs/fsharp/language-reference/byrefs.md
+++ b/docs/fsharp/language-reference/byrefs.md
@@ -1,9 +1,8 @@
---
-title: Byrefs (F#)
+title: Byrefs
description: Learn about byref and byref-like types in F#, which are used for low-level programming.
ms.date: 09/02/2018
---
-
# Byrefs
F# has two major feature areas that deal in the space of low-level programming:
@@ -240,4 +239,4 @@ let test () =
()
```
-This prevents you from getting different results depending on if you compile with optimizations on or off.
+This prevents you from getting different results depending on if you compile with optimizations on or off.
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/caller-information.md b/docs/fsharp/language-reference/caller-information.md
index 836488255fb8b..998d6b318d734 100644
--- a/docs/fsharp/language-reference/caller-information.md
+++ b/docs/fsharp/language-reference/caller-information.md
@@ -1,5 +1,5 @@
---
-title: Caller information (F#)
+title: Caller information
description: Describes how to use Caller Info Argument Attributes to obtain caller information from a method.
ms.date: 04/25/2017
---
@@ -66,6 +66,6 @@ The following chart shows the member names that are returned when you use the Ca
## See also
-- [Attributes](attributes.md)
-- [Named arguments](parameters-and-arguments.md#named-arguments)
-- [Optional parameters](parameters-and-arguments.md#optional-parameters)
+- [Attributes](attributes.md)
+- [Named arguments](parameters-and-arguments.md#named-arguments)
+- [Optional parameters](parameters-and-arguments.md#optional-parameters)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/casting-and-conversions.md b/docs/fsharp/language-reference/casting-and-conversions.md
index b6a98bfea2e8b..57e934b2a27e7 100644
--- a/docs/fsharp/language-reference/casting-and-conversions.md
+++ b/docs/fsharp/language-reference/casting-and-conversions.md
@@ -1,5 +1,5 @@
---
-title: Casting and Conversions (F#)
+title: Casting and Conversions
description: Learn how the F# programming language provides conversion operators for arithmetic conversions between various primitive types.
ms.date: 05/16/2016
---
@@ -111,4 +111,4 @@ For more information about type tests, see [Match Expressions](match-Expressions
## See also
-- [F# Language Reference](index.md)
+- [F# Language Reference](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/classes.md b/docs/fsharp/language-reference/classes.md
index bbf8cae95e7ee..35963d528d453 100644
--- a/docs/fsharp/language-reference/classes.md
+++ b/docs/fsharp/language-reference/classes.md
@@ -1,5 +1,5 @@
---
-title: Classes (F#)
+title: Classes
description: Learn how F# Classes are types that represent objects that can have properties, methods, and events.
ms.date: 05/16/2016
---
@@ -131,4 +131,4 @@ Structures are also useful for small aggregates of data, but they differ from cl
- [F# Language Reference](index.md)
- [Members](members/index.md)
- [Inheritance](inheritance.md)
-- [Interfaces](interfaces.md)
+- [Interfaces](interfaces.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/code-quotations.md b/docs/fsharp/language-reference/code-quotations.md
index db835848d28c0..30e23a51761be 100644
--- a/docs/fsharp/language-reference/code-quotations.md
+++ b/docs/fsharp/language-reference/code-quotations.md
@@ -1,5 +1,5 @@
---
-title: Code Quotations (F#)
+title: Code Quotations
description: Learn about F# code quotations, a language feature that enables you to generate and work with F# code expressions programmatically.
ms.date: 05/16/2016
---
@@ -96,4 +96,4 @@ The code in the other active pattern branches just regenerates the same expressi
## See also
-- [F# Language Reference](index.md)
+- [F# Language Reference](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/compiler-directives.md b/docs/fsharp/language-reference/compiler-directives.md
index 79acb69197d4e..6410e10193f5d 100644
--- a/docs/fsharp/language-reference/compiler-directives.md
+++ b/docs/fsharp/language-reference/compiler-directives.md
@@ -1,5 +1,5 @@
---
-title: Compiler Directives (F#)
+title: Compiler Directives
description: Learn about F# language preprocessor directives, conditional compilation directives, line directives, and compiler directives.
ms.date: 05/16/2016
---
@@ -64,4 +64,4 @@ For interpreter (fsi.exe) directives, see [Interactive Programming with F#](../t
## See also
- [F# Language Reference](index.md)
-- [Compiler Options](compiler-options.md)
+- [Compiler Options](compiler-options.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/compiler-options.md b/docs/fsharp/language-reference/compiler-options.md
index 0608dc0849c1e..0266a6ee34100 100644
--- a/docs/fsharp/language-reference/compiler-options.md
+++ b/docs/fsharp/language-reference/compiler-options.md
@@ -1,5 +1,5 @@
---
-title: Compiler Options (F#)
+title: Compiler Options
description: Use F# compiler command-line options to control the compilation of your F# apps and libraries.
ms.date: 12/10/2018
---
@@ -65,8 +65,7 @@ The following table shows compiler options listed alphabetically. Some of the F#
## Related articles
-
|Title|Description|
|-----|-----------|
|[F# Interactive Options](fsharp-interactive-options.md)|Describes command-line options supported by the F# interpreter, fsi.exe.|
-|[Project Properties Reference](/visualstudio/ide/reference/project-properties-reference)|Describes the UI for projects, including project property pages that provide build options.|
+|[Project Properties Reference](/visualstudio/ide/reference/project-properties-reference)|Describes the UI for projects, including project property pages that provide build options.|
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/computation-expressions.md b/docs/fsharp/language-reference/computation-expressions.md
index 2612040f22f3b..33b529a1648c4 100644
--- a/docs/fsharp/language-reference/computation-expressions.md
+++ b/docs/fsharp/language-reference/computation-expressions.md
@@ -1,5 +1,5 @@
---
-title: Computation Expressions (F#)
+title: Computation Expressions
description: Learn how to create convenient syntax for writing computations in F# that can be sequenced and combined using control flow constructs and bindings.
ms.date: 07/27/2018
---
@@ -396,4 +396,4 @@ type Microsoft.FSharp.Linq.QueryBuilder with
- [F# Language Reference](index.md)
- [Asynchronous Workflows](asynchronous-workflows.md)
- [Sequences](https://msdn.microsoft.com/library/6b773b6b-9c9a-4af8-bd9e-d96585c166db)
-- [Query Expressions](query-expressions.md)
+- [Query Expressions](query-expressions.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/conditional-expressions-if-then-else.md b/docs/fsharp/language-reference/conditional-expressions-if-then-else.md
index b5f277b1f13ec..fe757c645b618 100644
--- a/docs/fsharp/language-reference/conditional-expressions-if-then-else.md
+++ b/docs/fsharp/language-reference/conditional-expressions-if-then-else.md
@@ -1,5 +1,5 @@
---
-title: "Conditional Expressions: if... then...else (F#)"
+title: "Conditional Expressions: if... then...else"
description: Learn how to write conditional expressions in F# to execute different branches of code.
ms.date: 05/16/2016
---
@@ -34,4 +34,4 @@ You are only 9 years old and already learning F#? Wow!
## See also
-- [F# Language Reference](index.md)
+- [F# Language Reference](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/copy-and-update-record-expressions.md b/docs/fsharp/language-reference/copy-and-update-record-expressions.md
index 18fb081b27bcb..dbbccba4a2f8e 100644
--- a/docs/fsharp/language-reference/copy-and-update-record-expressions.md
+++ b/docs/fsharp/language-reference/copy-and-update-record-expressions.md
@@ -1,5 +1,5 @@
---
-title: Copy and Update Record Expressions (F#)
+title: Copy and Update Record Expressions
description: Learn how to write a 'copy and update record expression' that copies an existing record, updates specified fields, and returns the updated record.
author: ChrSteinert
ms.date: 06/04/2016
@@ -31,4 +31,4 @@ If you were to update only on field of that record you could use the *copy and u
## See also
- [Records](records.md)
-- [F# Language Reference](index.md)
+- [F# Language Reference](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/delegates.md b/docs/fsharp/language-reference/delegates.md
index 62eec90263613..932a738cba7ea 100644
--- a/docs/fsharp/language-reference/delegates.md
+++ b/docs/fsharp/language-reference/delegates.md
@@ -1,5 +1,5 @@
---
-title: Delegates (F#)
+title: Delegates
description: Learn how to work with delegates in F#.
ms.date: 05/16/2016
---
@@ -42,4 +42,4 @@ ccccc
- [F# Language Reference](index.md)
- [Parameters and Arguments](parameters-and-arguments.md)
-- [Events](members/events.md)
+- [Events](members/events.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/discriminated-unions.md b/docs/fsharp/language-reference/discriminated-unions.md
index 3049868adf7b5..33efbafe9c0c6 100644
--- a/docs/fsharp/language-reference/discriminated-unions.md
+++ b/docs/fsharp/language-reference/discriminated-unions.md
@@ -1,5 +1,5 @@
---
-title: Discriminated Unions (F#)
+title: Discriminated Unions
description: Learn how to use F# discriminated unions.
ms.date: 05/16/2016
---
@@ -169,4 +169,4 @@ The following attributes are commonly seen in discriminated unions:
## See also
-- [F# Language Reference](index.md)
+- [F# Language Reference](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/enumerations.md b/docs/fsharp/language-reference/enumerations.md
index a972e9b672c66..986b0fdaaae2d 100644
--- a/docs/fsharp/language-reference/enumerations.md
+++ b/docs/fsharp/language-reference/enumerations.md
@@ -1,5 +1,5 @@
---
-title: Enumerations (F#)
+title: Enumerations
description: Learn how to use F# enumerations in place of literals to make your code more readable and maintainable.
ms.date: 05/16/2016
---
@@ -47,4 +47,4 @@ Additionally, cases for enums are always emitted as `public`. This is so that th
## See also
- [F# Language Reference](index.md)
-- [Casting and Conversions](casting-and-conversions.md)
+- [Casting and Conversions](casting-and-conversions.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/exception-handling/exception-types.md b/docs/fsharp/language-reference/exception-handling/exception-types.md
index 10b6231718e5a..8d77761367490 100644
--- a/docs/fsharp/language-reference/exception-handling/exception-types.md
+++ b/docs/fsharp/language-reference/exception-handling/exception-types.md
@@ -1,5 +1,5 @@
---
-title: Exception Types (F#)
+title: Exception Types
description: Learn how to define and use F# exception types.
ms.date: 05/16/2016
---
@@ -35,4 +35,4 @@ The exception type that you define with the `exception` keyword in F# is a new t
- [Exception Handling](index.md)
- [Exceptions: the `raise` Function](the-raise-function.md)
-- [Exception Hierarchy](https://msdn.microsoft.com/library/z4c5tckx.aspx)
+- [Exception Hierarchy](https://msdn.microsoft.com/library/z4c5tckx.aspx)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/exception-handling/index.md b/docs/fsharp/language-reference/exception-handling/index.md
index 53411791a3b80..3269551e74865 100644
--- a/docs/fsharp/language-reference/exception-handling/index.md
+++ b/docs/fsharp/language-reference/exception-handling/index.md
@@ -1,5 +1,5 @@
---
-title: Exception Handling (F#)
+title: Exception Handling
description: Learn the basics of exception handling in F# and find links to exception handling expressions and functions.
ms.date: 05/16/2016
---
@@ -7,13 +7,11 @@ ms.date: 05/16/2016
This section contains information about exception handling support in the F# language.
-
## Exception Handling Basics
Exception handling is the standard way of handling error conditions in the .NET Framework. Thus, any .NET language must support this mechanism, including F#. An *exception* is an object that encapsulates information about an error. When errors occur, exceptions are raised and regular execution stops. Instead, the runtime searches for an appropriate handler for the exception. The search starts in the current function, and proceeds up the stack through the layers of callers until a matching handler is found. Then the handler is executed.
In addition, as the stack is unwound, the runtime executes any code in `finally` blocks, to guarantee that objects are cleaned up correctly during the unwinding process.
-
## Related Topics
|Title|Description|
@@ -23,4 +21,4 @@ In addition, as the stack is unwound, the runtime executes any code in `finally`
|[Exceptions: The `try...finally` Expression](the-try-finally-expression.md)|Describes the language construct that enables you to execute clean-up code as the stack unwinds when an exception is thrown.|
|[Exceptions: the `raise` Function](the-raise-Function.md)|Describes how to throw an exception object.|
|[Exceptions: The `failwith` Function](the-failwith-function.md)|Describes how to generate a general F# exception.|
-|[Exceptions: The `invalidArg` Function](the-invalidArg-function.md)|Describes how to generate an invalid argument exception.|
+|[Exceptions: The `invalidArg` Function](the-invalidArg-function.md)|Describes how to generate an invalid argument exception.|
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/exception-handling/the-failwith-function.md b/docs/fsharp/language-reference/exception-handling/the-failwith-function.md
index d1f42b87e9b74..0c6f7e2e73c2d 100644
--- a/docs/fsharp/language-reference/exception-handling/the-failwith-function.md
+++ b/docs/fsharp/language-reference/exception-handling/the-failwith-function.md
@@ -1,5 +1,5 @@
---
-title: "Exceptions: The failwith Function (F#)"
+title: "Exceptions: The failwith Function"
description: Learn how the 'failwith' function generates an F# exception.
ms.date: 05/16/2016
---
@@ -27,4 +27,4 @@ The exception that is generated by `failwith` is a `System.Exception` exception,
- [Exception Types](exception-types.md)
- [Exceptions: The `try...with` Expression](the-try-with-expression.md)
- [Exceptions: The `try...finally` Expression](the-try-finally-expression.md)
-- [Exceptions: the `raise` Function](the-raise-function.md)
+- [Exceptions: the `raise` Function](the-raise-function.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/exception-handling/the-invalidArg-function.md b/docs/fsharp/language-reference/exception-handling/the-invalidArg-function.md
index 7ad491afb0b3d..b4cd602d2c078 100644
--- a/docs/fsharp/language-reference/exception-handling/the-invalidArg-function.md
+++ b/docs/fsharp/language-reference/exception-handling/the-invalidArg-function.md
@@ -1,5 +1,5 @@
---
-title: "Exceptions: The invalidArg Function (F#)"
+title: "Exceptions: The invalidArg Function"
description: Learn how the F# 'invalidArg' function generates an argument exception.
ms.date: 05/16/2016
---
@@ -36,4 +36,4 @@ System.ArgumentException: Month parameter out of range.
- [Exceptions: The `try...with` Expression](the-try-with-expression.md)
- [Exceptions: The `try...finally` Expression](the-try-finally-expression.md)
- [Exceptions: the `raise` Function](the-raise-function.md)
-- [Exceptions: The `failwith` Function](the-failwith-function.md)
+- [Exceptions: The `failwith` Function](the-failwith-function.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/exception-handling/the-raise-function.md b/docs/fsharp/language-reference/exception-handling/the-raise-function.md
index a42016ca873ca..a32930f033d8e 100644
--- a/docs/fsharp/language-reference/exception-handling/the-raise-function.md
+++ b/docs/fsharp/language-reference/exception-handling/the-raise-function.md
@@ -1,5 +1,5 @@
---
-title: "Exceptions: the raise Function (F#)"
+title: "Exceptions: the raise Function"
description: Learn how the F# 'raise' function is used to indicate that an error or exceptional condition has occurred.
ms.date: 05/16/2016
---
@@ -34,4 +34,4 @@ The `raise` function can also be used to raise .NET exceptions, as shown in the
- [Exceptions: The `try...with` Expression](the-try-with-expression.md)
- [Exceptions: The `try...finally` Expression](the-try-finally-expression.md)
- [Exceptions: The `failwith` Function](the-failwith-function.md)
-- [Exceptions: The `invalidArg` Function](the-invalidArg-function.md)
+- [Exceptions: The `invalidArg` Function](the-invalidArg-function.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/exception-handling/the-try-finally-expression.md b/docs/fsharp/language-reference/exception-handling/the-try-finally-expression.md
index 6e0eb8e085728..1a3b776ef0de3 100644
--- a/docs/fsharp/language-reference/exception-handling/the-try-finally-expression.md
+++ b/docs/fsharp/language-reference/exception-handling/the-try-finally-expression.md
@@ -1,5 +1,5 @@
---
-title: "Exceptions: The try...finally Expression (F#)"
+title: "Exceptions: The try...finally Expression"
description: Learn how the F# 'try...finally' expression enables you to execute clean-up code even if a block of code throws an exception.
ms.date: 05/16/2016
---
@@ -44,4 +44,4 @@ In the context of computation expressions, including sequence expressions and as
## See also
- [Exception Handling](index.md)
-- [Exceptions: The `try...with` Expression](the-try-with-expression.md)
+- [Exceptions: The `try...with` Expression](the-try-with-expression.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/exception-handling/the-try-with-expression.md b/docs/fsharp/language-reference/exception-handling/the-try-with-expression.md
index 2e1e89795a346..050923e0be1cf 100644
--- a/docs/fsharp/language-reference/exception-handling/the-try-with-expression.md
+++ b/docs/fsharp/language-reference/exception-handling/the-try-with-expression.md
@@ -1,5 +1,5 @@
---
-title: "Exceptions: The try...with Expression (F#)"
+title: "Exceptions: The try...with Expression"
description: Learn how to use the F# 'try...with' expression for exception handling.
ms.date: 05/16/2016
---
@@ -54,4 +54,4 @@ The following code examples illustrate the use of the various exception handler
- [Exception Handling](index.md)
- [Exception Types](exception-types.md)
-- [Exceptions: The `try...finally` Expression](the-try-finally-expression.md)
+- [Exceptions: The `try...finally` Expression](the-try-finally-expression.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/fixed.md b/docs/fsharp/language-reference/fixed.md
index 26deeceb3c280..3e8be238ac433 100644
--- a/docs/fsharp/language-reference/fixed.md
+++ b/docs/fsharp/language-reference/fixed.md
@@ -1,9 +1,9 @@
---
-title: The Fixed Keyword (F#)
+title: The fixed keyword
description: Learn how you can 'pin' a local onto the stack to prevent collection with the F# 'fixed' keyword.
ms.date: 04/24/2017
---
-# The Fixed Keyword
+# The fixed keyword
F# 4.1 introduces the `fixed` keyword, which allows you to "pin" a local onto the stack to prevent it from being collected or moved during garbage-collection. It is used for low-level programming scenarios.
diff --git a/docs/fsharp/language-reference/flexible-types.md b/docs/fsharp/language-reference/flexible-types.md
index bff608439f3f6..d363c33fb4446 100644
--- a/docs/fsharp/language-reference/flexible-types.md
+++ b/docs/fsharp/language-reference/flexible-types.md
@@ -1,5 +1,5 @@
---
-title: Flexible Types (F#)
+title: Flexible Types
description: Learn how to use F# flexible type annotation, which indicates that a parameter, variable, or value has a type that is compatible with a specified type.
ms.date: 05/16/2016
---
@@ -64,4 +64,4 @@ In F#, as in other object-oriented languages, there are contexts in which derive
## See also
- [F# Language Reference](index.md)
-- [Generics](generics/index.md)
+- [Generics](generics/index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/functions/do-bindings.md b/docs/fsharp/language-reference/functions/do-bindings.md
index 2a4c96488a5bf..79f2cc7ad9f06 100644
--- a/docs/fsharp/language-reference/functions/do-bindings.md
+++ b/docs/fsharp/language-reference/functions/do-bindings.md
@@ -1,5 +1,5 @@
---
-title: do Bindings (F#)
+title: do Bindings
description: Learn how an F# 'do' binding is used to execute code without defining a function or value.
ms.date: 05/16/2016
---
@@ -25,4 +25,4 @@ Attributes can be applied to a top-level `do` binding. For example, if your prog
## See also
- [F# Language Reference](../index.md)
-- [Functions](index.md)
+- [Functions](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/functions/entry-point.md b/docs/fsharp/language-reference/functions/entry-point.md
index 1e1e46eef25e8..c0cd7cff41634 100644
--- a/docs/fsharp/language-reference/functions/entry-point.md
+++ b/docs/fsharp/language-reference/functions/entry-point.md
@@ -1,5 +1,5 @@
---
-title: Entry Point (F#)
+title: Entry Point
description: Learn how to set the entry point to an F# program that is compiled as an executable file, where execution formally starts.
ms.date: 05/16/2016
---
@@ -39,4 +39,4 @@ When a program has no **EntryPoint** attribute that explicitly indicates the ent
## See also
- [Functions](index.md)
-- [let Bindings](let-bindings.md)
+- [let Bindings](let-bindings.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/functions/external-functions.md b/docs/fsharp/language-reference/functions/external-functions.md
index 8199a27b9cec0..a2ad58123d427 100644
--- a/docs/fsharp/language-reference/functions/external-functions.md
+++ b/docs/fsharp/language-reference/functions/external-functions.md
@@ -1,5 +1,5 @@
---
-title: External Functions (F#)
+title: External Functions
description: Learn about the F# language support for calling functions in native code.
ms.date: 05/16/2016
---
@@ -44,4 +44,4 @@ Interoperability with native code is referred to as *platform invoke* and is a f
## See also
-- [Functions](index.md)
+- [Functions](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/functions/index.md b/docs/fsharp/language-reference/functions/index.md
index 7d190667745bd..a221456c450f1 100644
--- a/docs/fsharp/language-reference/functions/index.md
+++ b/docs/fsharp/language-reference/functions/index.md
@@ -1,5 +1,5 @@
---
-title: Functions (F#)
+title: Functions
description: Learn about functions in F# and how F# supports common functional programming constructs.
ms.date: 05/16/2016
---
@@ -199,4 +199,4 @@ You can overload methods of a type but not functions. For more information, see
## See also
- [Values](../values/index.md)
-- [F# Language Reference](../index.md)
+- [F# Language Reference](../index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/functions/inline-functions.md b/docs/fsharp/language-reference/functions/inline-functions.md
index 38ac670ddd229..d4729f4cfb226 100644
--- a/docs/fsharp/language-reference/functions/inline-functions.md
+++ b/docs/fsharp/language-reference/functions/inline-functions.md
@@ -1,5 +1,5 @@
---
-title: Inline Functions (F#)
+title: Inline Functions
description: Learn how to use F# inline functions that are integrated directly into the calling code.
ms.date: 05/16/2016
---
@@ -37,4 +37,4 @@ This means that the function accepts any type that supports a conversion to **fl
- [Functions](index.md)
- [Constraints](../generics/constraints.md)
-- [Statically Resolved Type Parameters](../generics/statically-resolved-type-parameters.md)
+- [Statically Resolved Type Parameters](../generics/statically-resolved-type-parameters.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/functions/lambda-expressions-the-fun-keyword.md b/docs/fsharp/language-reference/functions/lambda-expressions-the-fun-keyword.md
index 6be7f04d65aed..7292d07b0dd97 100644
--- a/docs/fsharp/language-reference/functions/lambda-expressions-the-fun-keyword.md
+++ b/docs/fsharp/language-reference/functions/lambda-expressions-the-fun-keyword.md
@@ -1,5 +1,5 @@
---
-title: "Lambda Expressions: The fun Keyword (F#)"
+title: "Lambda Expressions: The fun Keyword"
description: Learn how to use the F# 'fun' keyword to define a lambda expression, which is an anonymous function.
ms.date: 05/16/2016
---
@@ -42,4 +42,4 @@ Lambda expressions are especially useful when you want to perform operations on
## See also
-- [Functions](index.md)
+- [Functions](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/functions/let-bindings.md b/docs/fsharp/language-reference/functions/let-bindings.md
index c4d04beaa8ddb..8c0396e2b6d9c 100644
--- a/docs/fsharp/language-reference/functions/let-bindings.md
+++ b/docs/fsharp/language-reference/functions/let-bindings.md
@@ -1,5 +1,5 @@
---
-title: let Bindings (F#)
+title: let Bindings
description: Learn how to use an F# 'let' binding, which associates an identifier with a value or function.
ms.date: 05/16/2016
---
@@ -111,4 +111,4 @@ For more information on modules and access control, see [Modules](../modules.md)
## See also
- [Functions](index.md)
-- [`let` Bindings in Classes](../members/let-bindings-in-classes.md)
+- [`let` Bindings in Classes](../members/let-bindings-in-classes.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/functions/recursive-functions-the-rec-keyword.md b/docs/fsharp/language-reference/functions/recursive-functions-the-rec-keyword.md
index 171bd2dc07005..d9846083f8ded 100644
--- a/docs/fsharp/language-reference/functions/recursive-functions-the-rec-keyword.md
+++ b/docs/fsharp/language-reference/functions/recursive-functions-the-rec-keyword.md
@@ -1,5 +1,5 @@
---
-title: "Recursive Functions: The rec Keyword (F#)"
+title: "Recursive Functions: The rec Keyword"
description: Learn how the F# 'rec' keyword is used with the 'let' keyword to define a recursive function.
ms.date: 05/16/2016
---
@@ -45,4 +45,4 @@ The following example shows two mutually recursive functions.
## See also
-- [Functions](index.md)
+- [Functions](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/generics/automatic-generalization.md b/docs/fsharp/language-reference/generics/automatic-generalization.md
index 9f3f79b26540c..95c80e655daf7 100644
--- a/docs/fsharp/language-reference/generics/automatic-generalization.md
+++ b/docs/fsharp/language-reference/generics/automatic-generalization.md
@@ -1,5 +1,5 @@
---
-title: Automatic Generalization (F#)
+title: Automatic Generalization
description: Learn how F# automatically generalizes the arguments and types of functions so that they work with multiple types when possible.
ms.date: 05/16/2016
---
@@ -96,4 +96,4 @@ let floatLists = arrayOf10Lists
- [Type Inference](../type-inference.md)
- [Generics](index.md)
- [Statically Resolved Type Parameters](statically-resolved-type-parameters.md)
-- [Constraints](constraints.md)
+- [Constraints](constraints.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/generics/constraints.md b/docs/fsharp/language-reference/generics/constraints.md
index 0c6615c673ec5..16b8c0596c3b7 100644
--- a/docs/fsharp/language-reference/generics/constraints.md
+++ b/docs/fsharp/language-reference/generics/constraints.md
@@ -1,5 +1,5 @@
---
-title: Constraints (F#)
+title: Constraints
description: Learn about F# constraints that apply to generic type parameters to specify the requirements for a type argument in a generic type or function.
ms.date: 05/16/2016
---
@@ -112,4 +112,4 @@ class end
## See also
- [Generics](index.md)
-- [Constraints](constraints.md)
+- [Constraints](constraints.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/generics/index.md b/docs/fsharp/language-reference/generics/index.md
index bf61ddc3dc4fb..06044b1dbecd4 100644
--- a/docs/fsharp/language-reference/generics/index.md
+++ b/docs/fsharp/language-reference/generics/index.md
@@ -1,5 +1,5 @@
---
-title: Generics (F#)
+title: Generics
description: Learn how to use F# generic functions and types, which enable you to write code that works with a variety of types without repeating code.
ms.date: 05/16/2016
---
@@ -93,4 +93,4 @@ There are two kinds of type parameters that can be used in F# programs. The firs
- [Statically Resolved Type Parameters](statically-resolved-type-parameters.md)
- [Generics in the .NET Framework](~/docs/standard/generics/index.md)
- [Automatic Generalization](automatic-generalization.md)
-- [Constraints](constraints.md)
+- [Constraints](constraints.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/generics/statically-resolved-type-parameters.md b/docs/fsharp/language-reference/generics/statically-resolved-type-parameters.md
index 263004036585e..5e84cefdd3be5 100644
--- a/docs/fsharp/language-reference/generics/statically-resolved-type-parameters.md
+++ b/docs/fsharp/language-reference/generics/statically-resolved-type-parameters.md
@@ -1,5 +1,5 @@
---
-title: Statically Resolved Type Parameters (F#)
+title: Statically Resolved Type Parameters
description: Learn how to use an F# statically resolved type parameter, which is replaced with an actual type at compile time instead of at run time.
ms.date: 05/16/2016
---
@@ -85,4 +85,4 @@ let inline replace (a: ^a) (f: ^b): ^a0 when (CFunctor or ^b): (static member r
- [Type Inference](../type-inference.md)
- [Automatic Generalization](automatic-generalization.md)
- [Constraints](constraints.md)
-- [Inline Functions](../functions/inline-functions.md)
+- [Inline Functions](../functions/inline-functions.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/import-declarations-the-open-keyword.md b/docs/fsharp/language-reference/import-declarations-the-open-keyword.md
index 361f580e116ef..11cbeb391154e 100644
--- a/docs/fsharp/language-reference/import-declarations-the-open-keyword.md
+++ b/docs/fsharp/language-reference/import-declarations-the-open-keyword.md
@@ -1,5 +1,5 @@
---
-title: "Import Declarations: The open Keyword (F#)"
+title: "Import Declarations: The open Keyword"
description: Learn about F# import declarations and how they specify a module or namespace whose elements you can reference without using a fully qualified name.
ms.date: 05/16/2016
---
@@ -64,4 +64,4 @@ Some modules, records, or union types may specify the `RequireQualifiedAccess` a
- [# Language Reference](index.md)
- [Namespaces](namespaces.md)
-- [Modules](modules.md)
+- [Modules](modules.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/inheritance.md b/docs/fsharp/language-reference/inheritance.md
index dcec71e01d674..4fdec6a3fb248 100644
--- a/docs/fsharp/language-reference/inheritance.md
+++ b/docs/fsharp/language-reference/inheritance.md
@@ -1,5 +1,5 @@
---
-title: Inheritance (F#)
+title: Inheritance
description: Learn how to specify F# inheritance relationships using the 'inherit' keyword.
ms.date: 05/16/2016
---
@@ -88,4 +88,4 @@ When you are creating object hierarchies, consider using a discriminated union i
## See also
- [Object Expressions](object-expressions.md)
-- [F# Language Reference](index.md)
+- [F# Language Reference](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/interfaces.md b/docs/fsharp/language-reference/interfaces.md
index 207525f204a90..82725d513fb9a 100644
--- a/docs/fsharp/language-reference/interfaces.md
+++ b/docs/fsharp/language-reference/interfaces.md
@@ -1,5 +1,5 @@
---
-title: Interfaces (F#)
+title: Interfaces
description: Learn how F# Interfaces specify sets of related members that other classes implement.
ms.date: 05/16/2016
---
@@ -89,4 +89,4 @@ Interfaces can inherit from one or more base interfaces.
- [F# Language Reference](index.md)
- [Object Expressions](object-expressions.md)
-- [Classes](classes.md)
+- [Classes](classes.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/keyword-reference.md b/docs/fsharp/language-reference/keyword-reference.md
index 7394e6ce77a73..3d5cebf1bacf9 100644
--- a/docs/fsharp/language-reference/keyword-reference.md
+++ b/docs/fsharp/language-reference/keyword-reference.md
@@ -1,5 +1,5 @@
---
-title: Keyword Reference (F#)
+title: Keyword Reference
description: Find links to information about all of the F# language keywords.
ms.date: 05/16/2016
---
@@ -129,4 +129,4 @@ The following tokens are reserved as keywords for future expansion of the F# lan
- [F# Language Reference](index.md)
- [Symbol and Operator Reference](symbol-and-operator-reference/index.md)
-- [Compiler Options](compiler-options.md)
+- [Compiler Options](compiler-options.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/lazy-computations.md b/docs/fsharp/language-reference/lazy-computations.md
index e286c0331f85c..6ed0e09adbbf7 100644
--- a/docs/fsharp/language-reference/lazy-computations.md
+++ b/docs/fsharp/language-reference/lazy-computations.md
@@ -1,5 +1,5 @@
---
-title: Lazy Computations (F#)
+title: Lazy Computations
description: Learn how F# lazy computations can improve the performance of your apps and libraries.
ms.date: 05/16/2016
---
@@ -30,4 +30,4 @@ Lazy evaluation, but not the `Lazy` type, is also used for sequences. For more i
## See also
- [F# Language Reference](index.md)
-- [LazyExtensions module](https://msdn.microsoft.com/library/86671f40-84a0-402a-867d-ae596218d948)
+- [LazyExtensions module](https://msdn.microsoft.com/library/86671f40-84a0-402a-867d-ae596218d948)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/lists.md b/docs/fsharp/language-reference/lists.md
index 937854b77e814..fe6e81bc743ae 100644
--- a/docs/fsharp/language-reference/lists.md
+++ b/docs/fsharp/language-reference/lists.md
@@ -1,5 +1,5 @@
---
-title: Lists (F#)
+title: Lists
description: Learn about F# lists, an ordered, immutable series of elements of the same type.
ms.date: 05/16/2016
---
@@ -441,4 +441,4 @@ For information about additional operations on lists, see the library reference
- [F# Types](fsharp-types.md)
- [Sequences](sequences.md)
- [Arrays](arrays.md)
-- [Options](options.md)
+- [Options](options.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/literals.md b/docs/fsharp/language-reference/literals.md
index 7fcb2c321f0f7..612cb99f5a5dd 100644
--- a/docs/fsharp/language-reference/literals.md
+++ b/docs/fsharp/language-reference/literals.md
@@ -1,5 +1,5 @@
---
-title: Literals (F#)
+title: Literals
description: Learn about the literal types in the F# programming language.
ms.date: 05/16/2016
---
@@ -88,4 +88,4 @@ let exampleSSN = 123_456_7890
## See also
-- [Core.LiteralAttribute Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/core.literalattribute-class-%5bfsharp%5d)
+- [Core.LiteralAttribute Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/core.literalattribute-class-%5bfsharp%5d)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/loops-for-in-expression.md b/docs/fsharp/language-reference/loops-for-in-expression.md
index 3a7b61ec00d36..4c83281e086c2 100644
--- a/docs/fsharp/language-reference/loops-for-in-expression.md
+++ b/docs/fsharp/language-reference/loops-for-in-expression.md
@@ -1,5 +1,5 @@
---
-title: "Loops: for...in Expression (F#)"
+title: "Loops: for...in Expression"
description: See how the F# for...in expression looping construct is used to iterate over the matches of a pattern in an enumerable collection.
ms.date: 05/16/2016
---
@@ -131,4 +131,4 @@ Number of elements in list1: 5
- [F# Language Reference](index.md)
- [Loops: `for...to` Expression](loops-for-to-expression.md)
-- [Loops: `while...do` Expression](loops-while-do-expression.md)
+- [Loops: `while...do` Expression](loops-while-do-expression.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/loops-for-to-expression.md b/docs/fsharp/language-reference/loops-for-to-expression.md
index a7162fbc230f7..02e0086136c31 100644
--- a/docs/fsharp/language-reference/loops-for-to-expression.md
+++ b/docs/fsharp/language-reference/loops-for-to-expression.md
@@ -1,5 +1,5 @@
---
-title: "Loops: for...to Expression (F#)"
+title: "Loops: for...to Expression"
description: See how the F# for...to expression is used to iterate in a loop over a range of values of a loop variable.
ms.date: 05/16/2016
---
@@ -35,4 +35,4 @@ The output of the previous code is as follows.
- [F# Language Reference](index.md)
- [Loops: `for...in` Expression](loops-for-in-expression.md)
-- [Loops: `while...do` Expression](loops-while-do-expression.md)
+- [Loops: `while...do` Expression](loops-while-do-expression.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/loops-while-do-expression.md b/docs/fsharp/language-reference/loops-while-do-expression.md
index 6d84b925d037c..c880fde826567 100644
--- a/docs/fsharp/language-reference/loops-while-do-expression.md
+++ b/docs/fsharp/language-reference/loops-while-do-expression.md
@@ -1,5 +1,5 @@
---
-title: "Loops: while...do Expression (F#)"
+title: "Loops: while...do Expression"
description: See how the while...do expression is used to perform iterative execution (looping) while a specified test condition is true.
ms.date: 05/16/2016
---
@@ -36,4 +36,4 @@ Found a 10!
- [F# Language Reference](index.md)
- [Loops: `for...in` Expression](loops-for-in-expression.md)
-- [Loops: `for...to` Expression](loops-for-to-expression.md)
+- [Loops: `for...to` Expression](loops-for-to-expression.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/match-expressions.md b/docs/fsharp/language-reference/match-expressions.md
index 6d04c04269132..e7e2b5796bd4e 100644
--- a/docs/fsharp/language-reference/match-expressions.md
+++ b/docs/fsharp/language-reference/match-expressions.md
@@ -1,5 +1,5 @@
---
-title: Match expressions (F#)
+title: Match expressions
description: Learn how the F# match expression provides branching control that is based on the comparison of an expression with a set of patterns.
ms.date: 04/19/2018
---
@@ -76,6 +76,6 @@ foo() // returns 42
## See also
-- [F# Language Reference](index.md)
-- [Active Patterns](active-patterns.md)
-- [Pattern Matching](pattern-matching.md)
+- [F# Language Reference](index.md)
+- [Active Patterns](active-patterns.md)
+- [Pattern Matching](pattern-matching.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/members/constructors.md b/docs/fsharp/language-reference/members/constructors.md
index 35f78990fb17c..725499a9e2a8c 100644
--- a/docs/fsharp/language-reference/members/constructors.md
+++ b/docs/fsharp/language-reference/members/constructors.md
@@ -1,5 +1,5 @@
---
-title: Constructors (F#)
+title: Constructors
description: Learn how to define and use constructors in F# to create and initialize class and structure objects.
ms.date: 05/16/2016
---
@@ -86,4 +86,4 @@ In addition to specifying code for creating objects, static `let` and `do` bindi
## See also
-- [Members](index.md)
+- [Members](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/members/do-bindings-in-classes.md b/docs/fsharp/language-reference/members/do-bindings-in-classes.md
index 24cfacd0c17ae..378b9e4d7a5f9 100644
--- a/docs/fsharp/language-reference/members/do-bindings-in-classes.md
+++ b/docs/fsharp/language-reference/members/do-bindings-in-classes.md
@@ -1,5 +1,5 @@
---
-title: do Bindings in Classes (F#)
+title: do Bindings in Classes
description: Learn how to use an F# 'do' binding in a class definition, which performs actions when the object is constructed or when the type is first used.
ms.date: 05/16/2016
---
@@ -44,4 +44,4 @@ Initializing object 1 2 2 4 8 16
- [Classes](../classes.md)
- [Constructors](constructors.md)
- [`let` Bindings in Classes](let-bindings-in-classes.md)
-- [`do` Bindings](../functions/do-Bindings.md)
+- [`do` Bindings](../functions/do-Bindings.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/members/events.md b/docs/fsharp/language-reference/members/events.md
index fa73f9f9cbcd2..fb65720a3746c 100644
--- a/docs/fsharp/language-reference/members/events.md
+++ b/docs/fsharp/language-reference/members/events.md
@@ -1,5 +1,5 @@
---
-title: Events (F#)
+title: Events
description: Learn how F# events enable you to associate function calls with user actions, which are important in GUI programming.
ms.date: 05/16/2016
---
@@ -176,4 +176,4 @@ Application.Run(appForm)
- [Lambda Expressions: The `fun` Keyword](../functions/lambda-expressions-the-fun-keyword.md)
- [Control.Event Module](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.event-module-%5bfsharp%5d)
- [Control.Event<'T> Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.event%5b%27t%5d-class-%5bfsharp%5d)
-- [Control.Event<'Delegate,'Args> Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.event%5b%27delegate%2c%27args%5d-class-%5bfsharp%5d)
+- [Control.Event<'Delegate,'Args> Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.event%5b%27delegate%2c%27args%5d-class-%5bfsharp%5d)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/members/explicit-fields-the-val-keyword.md b/docs/fsharp/language-reference/members/explicit-fields-the-val-keyword.md
index b893a0358e7aa..1c9e2e9589a98 100644
--- a/docs/fsharp/language-reference/members/explicit-fields-the-val-keyword.md
+++ b/docs/fsharp/language-reference/members/explicit-fields-the-val-keyword.md
@@ -1,5 +1,5 @@
---
-title: "Explicit Fields: The val Keyword (F#)"
+title: "Explicit Fields: The val Keyword"
description: Learn about the F# 'val' keyword, which is used to declare a location to store a value in a class or structure type without initializing the type.
ms.date: 05/16/2016
---
@@ -67,4 +67,4 @@ When the keywords `member val` appear together in a type definition, it is a def
- [Properties](properties.md)
- [Members](index.md)
-- [`let` Bindings in Classes](let-bindings-in-classes.md)
+- [`let` Bindings in Classes](let-bindings-in-classes.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/members/index.md b/docs/fsharp/language-reference/members/index.md
index 867ec53c87185..0a20b6e5f3ba3 100644
--- a/docs/fsharp/language-reference/members/index.md
+++ b/docs/fsharp/language-reference/members/index.md
@@ -1,5 +1,5 @@
---
-title: Members (F#)
+title: Members
description: Learn about object members in the F# programming language.
ms.date: 05/16/2016
---
@@ -7,18 +7,16 @@ ms.date: 05/16/2016
This section describes members of F# object types.
-
## Remarks
+
*Members* are features that are part of a type definition and are declared with the `member` keyword. F# object types such as records, classes, discriminated unions, interfaces, and structures support members. For more information, see [Records](../records.md), [Classes](../classes.md), [Discriminated Unions](../discriminated-Unions.md), [Interfaces](../interfaces.md), and [Structures](../structures.md).
Members typically make up the public interface for a type, which is why they are public unless otherwise specified. Members can also be declared private or internal. For more information, see [Access Control](../access-Control.md). Signatures for types can also be used to expose or not expose certain members of a type. For more information, see [Signatures](../signatures.md).
Private fields and `do` bindings, which are used only with classes, are not true members, because they are never part of the public interface of a type and are not declared with the `member` keyword, but they are described in this section also.
-
## Related Topics
-
|Topic|Description|
|-----|-----------|
|[`let` Bindings in Classes](let-bindings-in-classes.md)|Describes the definition of private fields and functions in classes.|
@@ -29,4 +27,4 @@ Private fields and `do` bindings, which are used only with classes, are not true
|[Constructors](constructors.md)|Describes special functions that initialize objects of a type.|
|[Operator Overloading](../operator-overloading.md)|Describes the definition of customized operators for types.|
|[Events](events.md)|Describes the definition of events and event handling support in F#.|
-|[Explicit Fields: The `val` Keyword](explicit-fields-the-val-keyword.md)|Describes the definition of uninitialized fields in a type.|
+|[Explicit Fields: The `val` Keyword](explicit-fields-the-val-keyword.md)|Describes the definition of uninitialized fields in a type.|
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/members/indexed-properties.md b/docs/fsharp/language-reference/members/indexed-properties.md
index 8ec520497c261..08ff7eacb28ad 100644
--- a/docs/fsharp/language-reference/members/indexed-properties.md
+++ b/docs/fsharp/language-reference/members/indexed-properties.md
@@ -1,5 +1,5 @@
---
-title: Indexed Properties (F#)
+title: Indexed Properties
description: Learn about indexed properties in F#, which allow for array-like access to ordered data.
ms.date: 10/17/2018
---
@@ -62,4 +62,4 @@ The following code demonstrates the use of an indexed property with multiple ind
## See also
-- [Members](index.md)
+- [Members](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/members/let-bindings-in-classes.md b/docs/fsharp/language-reference/members/let-bindings-in-classes.md
index 77634bdc4e2bb..faf78ea505bb6 100644
--- a/docs/fsharp/language-reference/members/let-bindings-in-classes.md
+++ b/docs/fsharp/language-reference/members/let-bindings-in-classes.md
@@ -1,5 +1,5 @@
---
-title: let Bindings in Classes (F#)
+title: let Bindings in Classes
description: Learn how to define private fields and private functions for F# classes by using 'let' bindings in the class definition.
ms.date: 05/16/2016
---
@@ -47,4 +47,4 @@ You can also define private fields in a class by using a member definition and a
- [Members](index.md)
- [`do` Bindings in Classes](do-bindings-in-classes.md)
-- [`let` Bindings](../functions/let-bindings.md)
+- [`let` Bindings](../functions/let-bindings.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/members/methods.md b/docs/fsharp/language-reference/members/methods.md
index 3cdc83feadee1..8ce04a64b8c8d 100644
--- a/docs/fsharp/language-reference/members/methods.md
+++ b/docs/fsharp/language-reference/members/methods.md
@@ -1,5 +1,5 @@
---
-title: Methods (F#)
+title: Methods
description: Learn how an F# method is a function associated with a type that are used to expose and implement the functionality and behavior of objects and types.
ms.date: 05/16/2016
---
@@ -113,4 +113,4 @@ The following example contains a type that has examples of fields, private funct
## See also
-- [Members](index.md)
+- [Members](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/members/properties.md b/docs/fsharp/language-reference/members/properties.md
index 44104c409ff0f..8fc5e889c0f1e 100644
--- a/docs/fsharp/language-reference/members/properties.md
+++ b/docs/fsharp/language-reference/members/properties.md
@@ -1,5 +1,5 @@
---
-title: Properties (F#)
+title: Properties
description: Learn about F# properties, which are members that represent values associated with an object.
ms.date: 05/16/2016
---
@@ -140,4 +140,4 @@ Properties can be abstract. As with methods, `abstract` just means that there is
## See also
- [Members](index.md)
-- [Methods](methods.md)
+- [Methods](methods.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/modules.md b/docs/fsharp/language-reference/modules.md
index a77b0d8e8d18a..b50dd571c33bb 100644
--- a/docs/fsharp/language-reference/modules.md
+++ b/docs/fsharp/language-reference/modules.md
@@ -1,5 +1,5 @@
---
-title: Modules (F#)
+title: Modules
description: Learn how an F# module is a grouping of F# code, such as values, types, and function values, in an F# program.
ms.date: 04/24/2017
---
@@ -128,6 +128,6 @@ This capability is also possible in [Namespaces](namespaces.md) with F# 4.1.
## See also
-- [F# Language Reference](index.md)
-- [Namespaces](namespaces.md)
-- [F# RFC FS-1009 - Allow mutually referential types and modules over larger scopes within files](https://github.com/fsharp/fslang-design/blob/master/FSharp-4.1/FS-1009-mutually-referential-types-and-modules-single-scope.md)
+- [F# Language Reference](index.md)
+- [Namespaces](namespaces.md)
+- [F# RFC FS-1009 - Allow mutually referential types and modules over larger scopes within files](https://github.com/fsharp/fslang-design/blob/master/FSharp-4.1/FS-1009-mutually-referential-types-and-modules-single-scope.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/namespaces.md b/docs/fsharp/language-reference/namespaces.md
index 51bd4fde325de..5043d933e5cdc 100644
--- a/docs/fsharp/language-reference/namespaces.md
+++ b/docs/fsharp/language-reference/namespaces.md
@@ -1,5 +1,5 @@
---
-title: Namespaces (F#)
+title: Namespaces
description: Learn how an F# namespace allows you to organize code into areas of related functionality by enabling you to attach a name to a grouping of program elements.
ms.date: 12/08/2018
---
@@ -119,4 +119,4 @@ This feature is also available for top-level [Modules](modules.md).
- [F# Language Reference](index.md)
- [Modules](modules.md)
-- [F# RFC FS-1009 - Allow mutually referential types and modules over larger scopes within files](https://github.com/fsharp/fslang-design/blob/master/FSharp-4.1/FS-1009-mutually-referential-types-and-modules-single-scope.md)
+- [F# RFC FS-1009 - Allow mutually referential types and modules over larger scopes within files](https://github.com/fsharp/fslang-design/blob/master/FSharp-4.1/FS-1009-mutually-referential-types-and-modules-single-scope.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/object-expressions.md b/docs/fsharp/language-reference/object-expressions.md
index f61b5180c8028..ba775cd451554 100644
--- a/docs/fsharp/language-reference/object-expressions.md
+++ b/docs/fsharp/language-reference/object-expressions.md
@@ -1,5 +1,5 @@
---
-title: Object Expressions (F#)
+title: Object Expressions
description: Learn how to use F# object expressions when you want to avoid the extra code and overhead required to create a new, named type.
ms.date: 05/16/2016
---
@@ -36,4 +36,4 @@ You use object expressions when you want to avoid the extra code and overhead th
## See also
-- [F# Language Reference](index.md)
+- [F# Language Reference](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/operator-overloading.md b/docs/fsharp/language-reference/operator-overloading.md
index d9fa82abceae7..9ebf6f7ce116c 100644
--- a/docs/fsharp/language-reference/operator-overloading.md
+++ b/docs/fsharp/language-reference/operator-overloading.md
@@ -1,5 +1,5 @@
---
-title: Operator Overloading (F#)
+title: Operator Overloading
description: Learn how to overload arithmetic operators in a class or record type and at the global level in F#.
ms.date: 05/16/2016
---
@@ -151,4 +151,4 @@ The keyword `inline` is often used with global operators, which are often small
## See also
-- [Members](members/index.md)
+- [Members](members/index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/options.md b/docs/fsharp/language-reference/options.md
index bd365f2fa8fed..92e9595fd9c55 100644
--- a/docs/fsharp/language-reference/options.md
+++ b/docs/fsharp/language-reference/options.md
@@ -1,5 +1,5 @@
---
-title: Options (F#)
+title: Options
description: Learn how to use F# option types when an actual value might not exist for a named value or variable.
ms.date: 05/16/2016
---
@@ -62,4 +62,4 @@ Options can be converted to lists or arrays. When an option is converted into ei
## See also
- [F# Language Reference](index.md)
-- [F# Types](fsharp-types.md)
+- [F# Types](fsharp-types.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/parameters-and-arguments.md b/docs/fsharp/language-reference/parameters-and-arguments.md
index ba22d857c722b..07f34b833e3ff 100644
--- a/docs/fsharp/language-reference/parameters-and-arguments.md
+++ b/docs/fsharp/language-reference/parameters-and-arguments.md
@@ -1,5 +1,5 @@
---
-title: Parameters and Arguments (F#)
+title: Parameters and Arguments
description: Learn about F# language support for defining parameters and passing arguments to functions, methods, and properties.
ms.date: 05/16/2016
---
@@ -202,4 +202,4 @@ true
## See also
-- [Members](members/index.md)
+- [Members](members/index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/pattern-matching.md b/docs/fsharp/language-reference/pattern-matching.md
index 04398a1663507..2723f4e254258 100644
--- a/docs/fsharp/language-reference/pattern-matching.md
+++ b/docs/fsharp/language-reference/pattern-matching.md
@@ -1,5 +1,5 @@
---
-title: Pattern Matching (F#)
+title: Pattern Matching
description: Learn how patterns are used in F# to compare data with logical structures, decompose data into constituent parts, or extract information from data.
ms.date: 05/16/2016
---
@@ -199,4 +199,4 @@ The following example uses the null pattern and the variable pattern.
- [Match Expressions](match-expressions.md)
- [Active Patterns](active-patterns.md)
-- [F# Language Reference](index.md)
+- [F# Language Reference](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/query-expressions.md b/docs/fsharp/language-reference/query-expressions.md
index 5a4d1703048a0..7b99a936f3601 100644
--- a/docs/fsharp/language-reference/query-expressions.md
+++ b/docs/fsharp/language-reference/query-expressions.md
@@ -1,5 +1,5 @@
---
-title: Query Expressions (F#)
+title: Query Expressions
description: Learn about query expression support for LINQ in the F# programming language.
ms.date: 05/16/2016
---
@@ -2426,4 +2426,4 @@ end
- [F# Language Reference](index.md)
- [Linq.QueryBuilder Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/linq.querybuilder-class-%5bfsharp%5d)
-- [Computation Expressions](Computation-Expressions.md)
+- [Computation Expressions](Computation-Expressions.md)
\ No newline at end of file
diff --git a/docs/fsharp/language-reference/records.md b/docs/fsharp/language-reference/records.md
index 7c2bc078692cc..edf9490c2ae31 100644
--- a/docs/fsharp/language-reference/records.md
+++ b/docs/fsharp/language-reference/records.md
@@ -1,5 +1,5 @@
---
-title: Records (F#)
+title: Records
description: Learn how F# records represent simple aggregates of named values, optionally with members.
ms.date: 05/16/2016
---
@@ -122,4 +122,4 @@ If you need reference equality for records, add the attribute `[ =
- [F# Language Reference](index.md)
- [Compiler Directives](compiler-directives.md)
-- [Code Formatting Guidelines](code-formatting-guidelines.md)
+- [Code Formatting Guidelines](code-formatting-guidelines.md)
\ No newline at end of file
diff --git a/docs/fsharp/tutorials/asynchronous-and-concurrent-programming/async.md b/docs/fsharp/tutorials/asynchronous-and-concurrent-programming/async.md
index 306e3d3fa3dc1..9017e9d5e6798 100644
--- a/docs/fsharp/tutorials/asynchronous-and-concurrent-programming/async.md
+++ b/docs/fsharp/tutorials/asynchronous-and-concurrent-programming/async.md
@@ -1,5 +1,5 @@
---
-title: Async Programming in F#
+title: Async Programming
description: Learn how F# async programming is accomplished via a language-level programming model that is easy to use and natural to the language.
ms.date: 06/20/2016
---
@@ -211,4 +211,4 @@ And that’s it!
* [Async Workflows on MSDN](https://msdn.microsoft.com/library/dd233250.aspx)
* [Asynchronous Sequences for F#](https://fsprojects.github.io/FSharp.Control.AsyncSeq/library/AsyncSeq.html)
-* [F# Data HTTP Utilities](https://fsharp.github.io/FSharp.Data/library/Http.html)
+* [F# Data HTTP Utilities](https://fsharp.github.io/FSharp.Data/library/Http.html)
\ No newline at end of file
diff --git a/docs/fsharp/tutorials/fsharp-interactive/index.md b/docs/fsharp/tutorials/fsharp-interactive/index.md
index acb6d5161bba9..3a7ca209397b0 100644
--- a/docs/fsharp/tutorials/fsharp-interactive/index.md
+++ b/docs/fsharp/tutorials/fsharp-interactive/index.md
@@ -94,4 +94,4 @@ test
|Title|Description|
|-----|-----------|
|[F# Interactive Options](../../language-reference/fsharp-interactive-options.md)|Describes command-line syntax and options for the F# Interactive, fsi.exe.|
-|[F# Interactive Library Reference](https://msdn.microsoft.com/visualfsharpdocs/conceptual/fsharp-interactive-library-reference)|Describes library functionality available when executing code in F# interactive.|
+|[F# Interactive Library Reference](https://msdn.microsoft.com/visualfsharpdocs/conceptual/fsharp-interactive-library-reference)|Describes library functionality available when executing code in F# interactive.|
\ No newline at end of file
diff --git a/docs/fsharp/tutorials/type-providers/creating-a-type-provider.md b/docs/fsharp/tutorials/type-providers/creating-a-type-provider.md
index 50739348bfa1d..d48b29a2a41ba 100644
--- a/docs/fsharp/tutorials/type-providers/creating-a-type-provider.md
+++ b/docs/fsharp/tutorials/type-providers/creating-a-type-provider.md
@@ -1,5 +1,5 @@
---
-title: "Tutorial: Create a Type Provider (F#)"
+title: "Tutorial: Create a Type Provider"
description: Learn how to create your own F# type providers in F# 3.0 by examining several simple type providers to illustrate the basic concepts.
ms.date: 05/16/2016
---
@@ -1131,4 +1131,4 @@ You can often debug type providers most easily by using fsc.exe on a test script
## See also
- [Type Providers](index.md)
-- [The Type Provider SDK](https://github.com/fsprojects/FSharp.TypeProviders.SDK)
+- [The Type Provider SDK](https://github.com/fsprojects/FSharp.TypeProviders.SDK)
\ No newline at end of file
diff --git a/docs/fsharp/tutorials/type-providers/index.md b/docs/fsharp/tutorials/type-providers/index.md
index fe287cb14a652..06eba7cfc78d7 100644
--- a/docs/fsharp/tutorials/type-providers/index.md
+++ b/docs/fsharp/tutorials/type-providers/index.md
@@ -35,4 +35,4 @@ Where necessary, you can [create your own custom type providers](creating-a-type
- [Tutorial: Create a Type Provider](creating-a-type-provider.md)
- [F# Language Reference](../../language-reference/index.md)
-- [Visual F#](../../index.md)
+- [Visual F#](../../index.md)
\ No newline at end of file
diff --git a/docs/fsharp/tutorials/type-providers/troubleshooting-type-providers.md b/docs/fsharp/tutorials/type-providers/troubleshooting-type-providers.md
index bad79b0ddca93..76489536bd34a 100644
--- a/docs/fsharp/tutorials/type-providers/troubleshooting-type-providers.md
+++ b/docs/fsharp/tutorials/type-providers/troubleshooting-type-providers.md
@@ -20,4 +20,4 @@ If you encounter a problem when you work with type providers, you can review the
## See also
-- [Type Providers](index.md)
+- [Type Providers](index.md)
\ No newline at end of file
diff --git a/docs/fsharp/tutorials/type-providers/type-provider-security.md b/docs/fsharp/tutorials/type-providers/type-provider-security.md
index b95dd3d778db9..41d1c9f21af1a 100644
--- a/docs/fsharp/tutorials/type-providers/type-provider-security.md
+++ b/docs/fsharp/tutorials/type-providers/type-provider-security.md
@@ -23,4 +23,4 @@ If you decide to change the trust setting directly in Visual Studio, perform the
## See also
-- [Type Providers](index.md)
+- [Type Providers](index.md)
\ No newline at end of file
|