it turns out to be tricky to extend the pattern teatment to case expression. it is a decision point to think about wether or not to pursue a deep separation between prog and preterm
revamp the parser and the syntactic structure, now it is more clear
need to implement  a desugaring module
weird issue with pattern matching
what could be more embarrassing than a faulty test case...
finishing restructure front end, the preprocess still look messy though
now the distance between program and lambda term are bigger.
simplify the pattern logic
fix a bug delayed by laziness
fix a bug in case expression....
trying
still match, let and if
need to take a rest
feels like goint in a rabbit hole
begin to handle function def dependency
finished a version of graph algorithm, it is fun doing imperative program in haskell
finished a unit test, seems to work fine
finished constructing dependent graph
unit testing dep analysis, seems working fine
cm