let check log w = 
    let timeout = Wp_parameters.Timeout.get () in
    let stdout = Buffer.create 80 in
    let goal = Why.goal L_why w in
    let args = [| "--type-only" ; goal|] in 
    Log.command log "why" args;
    Task.command ~timeout ~stdout "why" args 
    >>? Log.output log stdout
    >>= fun res -> 
      if res = 0 then Task.return Valid else Task.return Invalid