module.exports = `snippet lang
	{-# LANGUAGE \${1:OverloadedStrings} #-}
snippet info
	-- |
	-- Module      :  \${1:Module.Namespace}
	-- Copyright   :  \${2:Author} \${3:2011-2012}
	-- License     :  \${4:BSD3}
	--
	-- Maintainer  :  \${5:email@something.com}
	-- Stability   :  \${6:experimental}
	-- Portability :  \${7:unknown}
	--
	-- \${8:Description}
	--
snippet import
	import           \${1:Data.Text}
snippet import2
	import           \${1:Data.Text} (\${2:head})
snippet importq
	import qualified \${1:Data.Text} as \${2:T}
snippet inst
	instance \${1:Monoid} \${2:Type} where
		\${3}
snippet type
	type \${1:Type} = \${2:Type}
snippet data
	data \${1:Type} = \${2:\$1} \${3:Int}
snippet newtype
	newtype \${1:Type} = \${2:\$1} \${3:Int}
snippet class
	class \${1:Class} a where
		\${2}
snippet module
	module \`substitute(substitute(expand('%:r'), '[/\\\\]','.','g'),'^\\%(\\l*\\.\\)\\?','','')\` (
	)	where
	\`expand('%') =~ 'Main' ? "\\n\\nmain = do\\n  print \\"hello world\\"" : ""\`

snippet const
	\${1:name} :: \${2:a}
	\$1 = \${3:undefined}
snippet fn
	\${1:fn} :: \${2:a} -> \${3:a}
	\$1 \${4} = \${5:undefined}
snippet fn2
	\${1:fn} :: \${2:a} -> \${3:a} -> \${4:a}
	\$1 \${5} = \${6:undefined}
snippet ap
	\${1:map} \${2:fn} \${3:list}
snippet do
	do
		
snippet λ
	\\\${1:x} -> \${2}
snippet \\
	\\\${1:x} -> \${2}
snippet <-
	\${1:a} <- \${2:m a}
snippet ←
	\${1:a} <- \${2:m a}
snippet ->
	\${1:m a} -> \${2:a}
snippet →
	\${1:m a} -> \${2:a}
snippet tup
	(\${1:a}, \${2:b})
snippet tup2
	(\${1:a}, \${2:b}, \${3:c})
snippet tup3
	(\${1:a}, \${2:b}, \${3:c}, \${4:d})
snippet rec
	\${1:Record} { \${2:recFieldA} = \${3:undefined}
				, \${4:recFieldB} = \${5:undefined}
				}
snippet case
	case \${1:something} of
		\${2} -> \${3}
snippet let
	let \${1} = \${2}
	in \${3}
snippet where
	where
		\${1:fn} = \${2:undefined}
`;
