Question: I am new to Laravel and have just started learning about views, routes, migrations, etc. I tried to include the Font Awesome CSS library using the `link` statement, but that didn't work. I found an answer on Stack Overflow that used npm but got an error running `npm run dev` that was marked as the solved answer. I also tried to use `{{ asset() }}` as well as several other functions but none of those worked. 

What should I do?

Answer: 
`a: ?string` is a [Maybe type](https://flow.org/en/docs/types/primitives/#toc-maybe-types) - actually `string | null | void` in this case.

`a?: string` is an [optional property](https://flow.org/en/docs/types/primitives/#toc-optional-object-properties)/[paramerter](https://flow.org/en/docs/types/primitives/#toc-optional-function-parameters) - `string | void`

The difference between them is that maybe type can also be (in addition to the type itself) `null` or `void`, and optional parameter only `void`.

When calling function with optional or maybe parameters `function foo(a?: string)` or `function(a: ?string)` - in both cases parameter can be omitted.

Another difference is in object properties - only optional properties can be omitted:

```
type WithOptional = {
  foo?: string;
}
type WithMaybe = {
  foo: ?string;
}

const a: WithOptional = {}; // OK
const b: WithMaybe = {}; // Error

```
`a?: string` is an [optional parameter](https://flow.org/en/docs/types/functions/#optional-parameters-). From the docs:

> 
> Optional parameters will accept missing, `undefined`, or matching types. But they will not accept `null`.
> 
> 
> 

`a: ?string` is a [maybe type](https://flow.org/en/docs/types/maybe/). From the docs:

> 
> It’s common for JavaScript code to introduce “optional” values so that you have the option of leaving out the value or passing null instead.
> 
> 
> ...
> 
> 
> Maybe types accept the provided type as well as `null` or `undefined`. So ?number would mean `number`, `null`, or `undefined`.
> 
> 
> 

So the chief difference appears to be that you can use `null` for a maybe type, but not for an optional parameter.