let from_file (file_name: string)
  (config: config) (statistic: statistic) (state: state) : context =
  let context =
    create config statistic state
  in

  let in_channel =
    open_in file_name
  in

  let rec read_literals () =
    try
      let line =
        input_line in_channel
      in
      let literal =
        Read_darwin.to_literal line
      in
        ignore (add context literal 0 false: element);
        read_literals ()
    with
      | End_of_file ->
          ()
  in
    read_literals ();
    close_in in_channel;
    context