ref: 1ae6af7661efaedd3b32e6e3be714d7b093deff6
vim/snippets/haskell.snippets
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}