add DisjunctionCaseBlock, NullCaseBlock
add Optional pattern match
add match option return
add patternmatch return ver.
referctoring