let constructInitialPredicates predFile =
  let readAndAddPredicates filename =
    let doParse inchan =
      let _ = VampyreErrormsg.startFile filename in
      let lexbuf = Lexing.from_channel inchan in
      let _ = VampyreErrormsg.theLexbuf := lexbuf in
      Inputparse.main Inputflex.token lexbuf 
    in
    ignore (Message.msg_string Message.Normal "Reading in seed predicates...");
    try
      let inchan = open_in filename
      in
      let a = doParse inchan
      in
        ignore (Message.msg_string Message.Normal "Seed predicates read.\n") ;        
        List.iter (fun a -> Message.msg_string Message.Normal (Predicate.toString a)) a ;
        Message.msg_string Message.Normal ("Read "^(string_of_int (List.length a))^" predicates");
        a
    with
      Sys_error _ -> (Message.msg_string Message.Error ("Cannot find predicate information in "^filename^".\n"); [])
    | VampyreErrormsg.Error -> (Message.msg_string Message.Error ("Error raised in reading seed predicates.\n"); [])
  in
  if (predFile = ""then
    (* Nothing to do *)
    []
  else
    readAndAddPredicates predFile