adds struct instructions
correct constant types
update opperand type
adds an example of generating structs
modified scheme types to ignore address space
adds a function pointer example
refactor generalised LLVM related code