anchor.diff:  (*
       matchCast is responsible for matching expressions
   *)
  -let rec matchCast (tmp_id:int) (e:BasicExpression<Keyword, Var, Literal, Position, TypeInference.TypeAnnotation>) (self:string) (prefix:List<Instruction>) 
  +let rec matchCast (tmp_id:int) (e:BasicExpression<Keyword, Var, Literal, Position, TypeInference.Type>) (self:string) (prefix:List<Instruction>) 
                     (ctxt:ConcreteExpressionContext) (typeConstraint) =
     match e with
     | Keyword(Custom k, _, ti) -> 
  
positive.code:   | i -> 
      failwithf "Code generation error @ %A" i.DebugInformation
    
  let rec createElementInner (ctxt:ConcreteExpressionContext) (expectedType:BasicExpression<Keyword, Var, Literal, Position, unit>) (e:BasicExpression<Keyword, Var, Literal, Position, TypeInference.TypeAnnotation>) = 
      match e with
      | Keyword(Custom k, _, ti) 
      | Application(Regular,(Keyword(Custom k, _, ti)) :: [], _, _)
  
negative.code: ﻿module CodeGenerator
  
  open TypeInference
  open System
  open Utilities
  open ParserMonad
  