snippet doc
	/// ${0}
snippet comment
	// ${0}
snippet let
	let ${1} = ${0}
snippet lit
	[<Literal>]
	let ${1} = ${0}
snippet rec
	type ${1} = { ${0} }
snippet arec
	{| ${0} |}
snippet fn
	let ${1} =
		${0}
snippet fnr
	let rec ${1} =
		${0}
snippet lam
	(fun ${1} -> ${0})
snippet mod
	module ${1} =
		${0}
snippet for
	for ${1} in ${2} do
		${0}
snippet if
	if ${1} then
		${2}
snippet ife
	if ${1} then
		${2}
	else
		${0}
snippet ifee
	if ${1} then
		${2}
	elif ${3} then
		${4}
	else
		${0}
snippet eif
	elif ${1} then
		${0}
snippet el
	else
		${0}
snippet try
	try
		${1}
	with ${0}
snippet match
	match ${1} with
	| ${2} -> ${0}
snippet |
	| ${1} -> ${0}
snippet p
	|> ${0}
snippet pr
	printfn "${1}" ${0}
snippet pri
	printfn \$"${0}"
snippet amap
	|> Array.map (fun ${1} -> ${0})
snippet lmap
	|> List.map (fun ${1} -> ${0})
snippet smap
	|> Seq.map (fun ${1} -> ${0})
snippet atap
	|> Array.map (fun x -> printfn "%A" x; x) // tap
snippet ltap
	|> List.map (fun x -> printfn "%A" x; x) // tap
snippet stap
	|> Seq.map (fun x -> printfn "%A" x; x) // tap
snippet main
	[<EntryPoint>]
	let main argv =
		${0}
		0