let translate_program p = 
  List.map
    (function
        CTTdeclFunction (gs,ct,id,args,body) ->
          IL1declFunction(gs,ct,id,args,translate_statement body)
      |        CTTdeclVariable (gs,ct,id,init) ->
          IL1declVariable(gs,ct,id,Option.map translate_initializer init))
    p