snippet lang {-# LANGUAGE ${0:OverloadedStrings} #-} snippet haddock {-# OPTIONS_HADDOCK ${0:hide} #-} 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} -- -- ${0:Description} -- snippet imp import ${0:Data.Text} snippet import import ${0:Data.Text} snippet import2 import ${1:Data.Text} (${0:head}) snippet impq import qualified ${1:Data.Text} as ${0:T} snippet importq import qualified ${1:Data.Text} as ${0:T} snippet inst instance ${1:Monoid} ${2:Type} where ${0} snippet type type ${1:Type} = ${0:Type} snippet data data ${1:Type} = ${2:$1} ${0:Int} snippet newtype newtype ${1:Type} = ${2:$1} ${0:Int} snippet class class ${1:Class} a where ${0} 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 = ${0:undefined} snippet fn ${1:fn} :: ${2:a} -> ${3:a} $1 ${4} = ${0:undefined} snippet fn2 ${1:fn} :: ${2:a} -> ${3:a} -> ${4:a} $1 ${5} = ${0:undefined} snippet ap ${1:map} ${2:fn} ${0:list} snippet do do snippet λ \\${1:x} -> ${0:expression} snippet \ \\${1:x} -> ${0:expression} snippet (\ (\\${1:x} -> ${0:expression}) snippet <- ${1:a} <- ${0:m a} snippet ← ${1:a} <- ${0:m a} snippet -> ${1:m a} -> ${0:a} snippet → ${1:m a} -> ${0:a} snippet tup (${1:a}, ${0:b}) snippet tup2 (${1:a}, ${2:b}, ${0:c}) snippet tup3 (${1:a}, ${2:b}, ${3:c}, ${0:d}) snippet rec ${1:Record} { ${2:recFieldA} = ${3:undefined} , ${4:recFieldB} = ${0:undefined} } snippet case case ${1:something} of ${2} -> ${0} snippet let let ${1} = ${2} in ${3} snippet where where ${1:fn} = ${0:undefined}