anchor.diff:                      )
   
                   GLSLType.Struct(name, newFields, offset), largestAlign, offset
  +                
  +            | GLSLType.DynamicArray _ ->
  +                failwith "[GLSL] Images cannot be part of a UniformBuffer"
   
               | GLSLType.Image _ ->
                   failwith "[GLSL] Images cannot be part of a UniformBuffer"
  
positive.code:                 | GLSLType.Array(len, elem,_) -> sprintf "%s[%d]" (toString elem) len
                  | GLSLType.Image img -> imageName img
                  | GLSLType.Sampler sam -> samplerName sam
                      
  
      [<AutoOpen>]
  
negative.code:                             | GLSLSampler t -> GLSLType.Sampler t
                      | _ -> failwithf "[GLSL] bad intrinsic type: %A" a
  
              | CType.CPointer(_,e) -> GLSLType.DynamicArray (ofCType e)
  
  
  module LayoutStd140 =
  