matchLit :: Expression -> Expression -> t -> Expr Var -> Literal -> Compile Expression
matchLit object inner vars exp lit =
  case lit of
    MachInt i -> do
      e <- compileExp exp
      return (Conditional (StrictEqual (Integer (fromIntegral i))
                                       (object))
                          e
                          inner)
matchLit :: Expression -> Expression -> t -> Expr Var -> Literal -> Compile Expression
matchLit object inner vars exp lit =
  case lit of
    MachInt i -> do
      e <- compileExp exp
      return (Conditional (StrictEqual (Integer (fromIntegral i))
                                       (object))
                          e
                          inner)
matchLit object inner vars exp lit =
  case lit of
    MachInt i -> do
      e <- compileExp exp
      return (Conditional (StrictEqual (Integer (fromIntegral i))
                                       (object))
                          e
                          inner)