function! Indent_level(lnum) 
    return indent(a:lnum) / &shiftwidth
endfunction

function! Fold(lnum)
	let l:c = Indent_level(a:lnum)
	let l:n = Indent_level(a:lnum + 1)
	let l:p = Indent_level(a:lnum - 1)

	if l:n > l:c
		return '>' . l:n
	endif

	if l:n < l:c
		return '<' . l:c
	endif

	return l:c
endfunction

setlocal foldmethod=expr
setlocal foldexpr=Fold(v:lnum)