-3) Exp1 followed by (+,-) 2 conflicts:
-In both these cases Exp1 could be reduced together with another Exp1 and a comparative operator to an Exp, but just as in the above case this would be very bad for operator priority, so shifting is right here.
+Additions which comes from the extension:
+
+typing rules
+++++++++++++
+
+[EFunc]
+
+(t is used for types, T is the context, and + is used for in)
+
+T+ i (es) : t <= i(ts):t in T & T+ es:ts
+
+The functioncall of i returns t if i is in the context with returntype t and the types of the argument expressions matches those in the parameter list
+
+[SReturn]
+
+T+ return e <= e:t & ret(t) in T
+
+return typechecks if e returns the same type as the current context
+
+[Func]
+
+T+ t i (ds) ss <= T,novariables,ret(t),ds => T' & T'+ss & last(ss) => return:t
+
+the function i typechecks if the body typechecks in the context where all other variables has been removed and the return type and paramters has been added and that the last statement is a return with the right type
+
+semantic rules
+++++++++++++
+
+
+(v is used for values, e for expressions, s for statements, c is the context)
+