g (BoolExpr _ True) = loadP (LDC TRUE) >>= \instr-> tell [instr]
     g (BoolExpr _ False) = loadP (LDC FALSE) >>= \instr-> tell [instr]
     g (Op2Expr _ e1 op e2) = g e1 >>| g e2 >>| tell [Instr (op2ins op) [] ""]
+    g (Op1Expr _ UnNegation e) = g e >>| tell [Instr "not" [] ""]
+    g (Op1Expr _ UnMinus e) = g e >>| tell [Instr "neg" [] ""]
+    g (EmptyListExpr _) = abort "Shit, empty list expr"
+    g (TupleExpr p (e1,e2)) = abort "How to deal with tuples?"
+    g (FunExpr _ k es fs) = mapM g es >>| jump "bra" k >>= \instr-> tell [instr]
 
 op2ins :: Op2 -> String
 op2ins op = case op of