matchCon :: Expression -> Expression -> (AltCon,[Var],Expr Var) -> Compile Expression
matchCon object inner (con,vars,exp) = do
  case con of
    DataAlt con -> matchData object inner vars exp con
    LitAlt lit  -> matchLit object inner vars exp lit
    DEFAULT     -> compileExp exp
matchCon :: Expression -> Expression -> (AltCon,[Var],Expr Var) -> Compile Expression
matchCon object inner (con,vars,exp) = do
  case con of
    DataAlt con -> matchData object inner vars exp con
    LitAlt lit  -> matchLit object inner vars exp lit
    DEFAULT     -> compileExp exp
matchCon object inner (con,vars,exp) = do
  case con of
    DataAlt con -> matchData object inner vars exp con
    LitAlt lit  -> matchLit object inner vars exp lit
    DEFAULT     -> compileExp exp